//执行顺序:(优先级从高到低。)静态代码块>mian方法>构造代码块>构造方法。

其中静态代码块只执行一次。构造代码块在每次创建对象是都会执行。

1 普通代码块

//普通代码块:在方法或语句中出现的{}就称为普通代码块。普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行”
public class CodeBlock01{
public static void main(String[] args){ {
int x=3;
System.out.println("1,普通代码块内的变量x="+x);
} int x=1;
System.out.println("主方法内的变量x="+x); {
int y=7;
System.out.println("2,普通代码块内的变量y="+y);
}
}
} /*
运行结果:
1,普通代码块内的变量x=3
主方法内的变量x=1
2,普通代码块内的变量y=7
*/

2 构造代码块

//构造块:直接在类中定义且没有加static关键字的代码块称为{}构造代码块。构造代码块在创建对象时被调用,每次创建对象都会被调用,并且构造代码块的执行次序优先于类构造函数。

public class CodeBlock02{
{
System.out.println("第一代码块");
} public CodeBlock02(){
System.out.println("构造方法");
} {
System.out.println("第二构造块");
}
public static void main(String[] args){
new CodeBlock02();
new CodeBlock02();
new CodeBlock02(); }
} /*
*
执行结果:
第一代码块
第二构造块
构造方法
第一代码块
第二构造块
构造方法
第一代码块
第二构造块
构造方法
*/

3 静态代码块

//静态代码块:在java中使用static关键字声明的代码块。静态块用于初始化类,为类的属性初始化。每个静态代码块只会执行一次。由于JVM在加载类时会执行静态代码块,所以静态代码块先于主方法执行。
//如果类中包含多个静态代码块,那么将按照"先定义的代码先执行,后定义的代码后执行"。
//注意:1 静态代码块不能存在于任何方法体内。2 静态代码块不能直接访问静态实例变量和实例方法,需要通过类的实例对象来访问。 class Code{
{
System.out.println("Code的构造块");
} static{
System.out.println("Code的静态代码块");
} public Code(){
System.out.println("Code的构造方法");
}
} public class CodeBlock03{
{
System.out.println("CodeBlock03的构造块");
} static{
System.out.println("CodeBlock03的静态代码块");
} public CodeBlock03(){
System.out.println("CodeBlock03的构造方法");
} public static void main(String[] args){
System.out.println("CodeBlock03的主方法");
new Code();
new Code();
new CodeBlock03();
new CodeBlock03();
}
}
/*
CodeBlock03的静态代码块
CodeBlock03的主方法
Code的静态代码块
Code的构造块
Code的构造方法
Code的构造块
Code的构造方法
CodeBlock03的构造块
CodeBlock03的构造方法
CodeBlock03的构造块
CodeBlock03的构造方法
*/

最新文章

  1. CoreAnimation 之CATextLayer
  2. 在ubuntu14.04上部署基于Docker的Gitlab
  3. DNX 版本升级命令
  4. [Cocos2d-x For WP8]Menu菜单
  5. HDU 5724:Chess(博弈 + 状压)
  6. Postfix 发送邮件流程简析
  7. iOS使用AVFoundation实现二维码扫描
  8. BeanUtils.copyProperties与PropertyUtils.copyProperties用法及区别
  9. 【React Native 实战】微信登录
  10. Linux 下mysql忘记root密码解决方法
  11. Total Commander快捷键
  12. asp.net 获取当月的第一天和最后一天示例
  13. Android的FrameLayout使用要注意的问题
  14. EnglishWords----1
  15. poj2185 Milking Grid
  16. JSP/Servlet Web 学习笔记 DayTwo
  17. Java之word导出下载
  18. Part-One
  19. Pupet自动化管理环境部署记录
  20. J2EE开发之三种项目架构

热门文章

  1. Smarty模板的逻辑运算符号稍微做一下总结
  2. 牛客练习赛13 A 幸运数字Ⅰ 【暴力】
  3. 牛客小白月赛1 D 多项式乘法 【循环】
  4. HTML相对路径与绝对路径
  5. maven导入项目时,缺少部分source folder
  6. cookie补充
  7. pt-table-checksum检验主从数据不一致
  8. PyVmomi Clone_VM with CustomizaitonSpec
  9. ScreenOS学习笔记
  10. sqoop job 增量导入