Java中的各种代码块的区别
来源:互联网 发布:阴阳师录屏软件 编辑:程序博客网 时间:2024/05/16 00:32
java中代码块有:局部代码块,构造代码块(初始化块),静态代码块
局部代码块存在于类中方法中比如
class test{ public static void main(String[] args){ { //大括号包裹的局部代码块 int a = 10; } System.out.println(a); //运行报错,访问不到a=10 }}
有上面可以看出来局部代码块限定了变量的生命周期,及早在内存中释放,提高了内存利用率(开发用不到,没啥意义。。。)
构造代码块存在于类中方法外比如
class Student{ private int age; private String name; public Student() { System.out.println("无参构造"); } //无参构造 public Student(int age,String name) { this.name = name; this.age = age; System.out.println("有参构造"); } //有参构造 public int getAge(){ return age; } public void setAge(int age){ this.age=age; } public String getName(){ return name; } public void setName(int name ){ this.name=name; //下面是构造代码块 { System.out.println("我是构造代码块"); }}
在创建学生对象的时候会先执行构造代码块
class Test { Student s1 = new Student(); System.out.println("-----------------"); Student s2 = new Student(18,"小明"); }输出结果:我是构造代码块无参构造-----------我是构造代码块有参构造
由此可见,每创建一次对象就会执行一次构造代码块,优先于构造函数执行
静态代码块 也是在类中方法外,但是多了个static修饰
class Student{ private int age; private String name; public Student() { System.out.println("无参构造"); } //无参构造 public Student(int age,String name) { this.name = name; this.age = age; System.out.println("有参构造"); } //有参构造 public int getAge(){ return age; } public void setAge(int age){ this.age=age; } public String getName(){ return name; } public void setName(int name ){ this.name=name; //下面是构造代码块 { System.out.println("我是构造代码块"); } //下面是静态代码块 static{ System.out.println("我是静态代码块"); }}
class Test { Student s1 = new Student(); System.out.println("-----------------"); Student s2 = new Student(18,"小明"); }输出结果:我是静态代码块我是构造代码块无参构造-----------我是构造代码块有参构造
静态代码块随着类的加载而加载,且只执行一次,用于给类进行初始化,一般用来加载驱动
再看
class Test { public static void main(String []args){ System.out.println("我是主方法"); } Student s1 = new Student(); System.out.println("-----------------"); Student s2 = new Student(18,"小明"); static{ System.out.println("我是主方法静态代码块"); }}输出结果:我是主方法静态代码块我是主方法我是静态代码块我是构造代码块无参构造-----------我是构造代码块有参构造
静态代码块还优先于main方法执行哦~
开发中好像很少遇到用这个知识的 ,小白第一次写博客,很多不会,望见谅。
阅读全文
0 0
- Java中的各种代码块的区别
- Java中的构造代码块、静态代码块、普通代码块的区别
- Java 中的构造方法与构造代码块的区别
- Java 中的构造方法与构造代码块的区别
- java 中的 构造代码块和 静态代码块的区别
- JAVA-各种代码块的演示
- java 中的 各种变量、代码块执行时机
- Java中静态代码块、构造代码块的区别
- Java普通代码块,构造代码块,静态代码块区别,执行顺序的代码实例
- java中普通代码块,静态代码块,构造代码块的区别及代码示例
- Java中四种代码块的区别
- Java中的代码块
- JAVA中的代码块
- Java中的代码块
- Java中的代码块
- java中的代码块
- Java中的代码块
- Java中的代码块
- Android如何控制导航栏单个按键的显隐状态
- StringUtils工具类的常用方法
- BZOJ 1576: [Usaco2009 Jan]安全路经Travel【最短路树】【树链剖分】
- vim常用命令总结 (转)
- MVP之登录
- Java中的各种代码块的区别
- robot framework 中对于有滚动条的页面中元素的处理
- 数据结构之 栈的应用
- Selenium学习笔记(webdriver环境搭建)
- STL容器
- Caffe+VS2015环境配置Cmake过程报错—— The C compiler identification is unknown解决方案
- python整理面试题(1)
- 12.贝叶斯正则化,在线学习,误差分析,销蚀分析
- Yii2中nginx的伪静态