代码块
- 普通代码块
- 构造代码块
- 静态块
- 同步代码块
普通代码块
为了在方法里面编写过多的变量,防止变量重复,可以用代码块进行隔离。
package org.lyk.main; public class Main { public static void main(String[] args) { { int num = 3; System.out.println(num); } int num = 3; System.out.println(num); } } |
构造代码块
如果现在将一个代码块写在了一个类里面,那么该代码块成为构造块。
- 构造块优先于构造方法执行
- 如果产生多次对象,那么构造块代码每次都会执行
- 一般说来,构造块无实际意义
package org.lyk.entities; public class Book { private String title; private float price; public Book(String title, float price) { super(); this.title = title; this.price = price; System.out.println("2.构造方法"); } { System.out.println("1. 构造块"); } } |
静态块
如果一个代码块使用了static进行修饰的话,那么就成为静态块。
静态块的使用分为两类:
在非主类使用
静态块优先于构造块执行,不管有多少个实例化对象,静态块只执行一次。其作用是为类中的static变量初始化。
package org.lyk.entities; public class Book { static int totalCount ; private String title; private float price; public Book(String title, float price) { super(); this.title = title; this.price = price; System.out.println("2.构造方法"); } static { System.out.println("1. 静态块"); totalCount=0; } } |
主类中使用
静态块将优先于主方法执行。
package org.lyk.main; public class Main { static { System.out.println("主方法中的静态块"); } public static void main(String[] args) { System.out.println("主方法"); } } |
总结:
代码块在开发中能不用就别用。但如果非要使用,那么唯一好用的就是静态块。