java 中静态代码和非静态代码块的区别!
来源:互联网 发布:淘宝网王俊凯同款手表 编辑:程序博客网 时间:2024/06/05 19:30
java 中静态代码和非静态代码块的区别!
zhaokongsheng 2012-04-16 20:12:55
相同点:都是在JVM加载类时且在构造方法执行之前执行,在类中都可以定义多个,
一般在代码块中对一些static变量进行赋值。
不同点:静态代码块在非静态代码块之前执行(静态代码块—>非静态代码块—>构造方法)。
静态代码块只在第一次new执行一次,之后不再执行,而非静态代码块在每new
一次就执行一次。非静态代码块可在普通方法中定义(不过作用不大);而静态代码块不行。
例:
//普通类
public class PuTong {
public PuTong(){
System.out.print("默认构造方法!-->");
}
//非静态代码块
{
System.out.print("非静态代码块!-->");
}
//静态代码块
static{
System.out.print("静态代码块!-->");
}
public static void test(){
{
System.out.println("普通方法中的代码块!");
}
}
}
//测试类
public class TestClass {
/**
* 区别两次new静态与非静态代码块执行情况
*/
public static void main(String[] args) {
PuTong c1 = new PuTong();
c1.test();
PuTong c2 = new PuTong();
c2.test();
}
}
/*
运行输出结果是:
静态代码块!-->非静态代码块!-->默认构造方法!-->普通方法中的代码块!
非静态代码块!-->默认构造方法!-->普通方法中的代码块!
*/
一般在代码块中对一些static变量进行赋值。
不同点:静态代码块在非静态代码块之前执行(静态代码块—>非静态代码块—>构造方法)。
静态代码块只在第一次new执行一次,之后不再执行,而非静态代码块在每new
一次就执行一次。非静态代码块可在普通方法中定义(不过作用不大);而静态代码块不行。
例:
//普通类
public class PuTong {
public PuTong(){
System.out.print("默认构造方法!-->");
}
//非静态代码块
{
System.out.print("非静态代码块!-->");
}
//静态代码块
static{
System.out.print("静态代码块!-->");
}
public static void test(){
{
System.out.println("普通方法中的代码块!");
}
}
}
//测试类
public class TestClass {
/**
* 区别两次new静态与非静态代码块执行情况
*/
public static void main(String[] args) {
PuTong c1 = new PuTong();
c1.test();
PuTong c2 = new PuTong();
c2.test();
}
}
/*
运行输出结果是:
静态代码块!-->非静态代码块!-->默认构造方法!-->普通方法中的代码块!
非静态代码块!-->默认构造方法!-->普通方法中的代码块!
*/
0 0
- java 中静态代码和非静态代码块的区别!
- java 中静态代码和非静态代码块的区别!
- java 中静态代码和非静态代码块的区别!
- Java中静态代码块、非静态代码块和构造函数的执行顺序
- 静态代码块和非静态代码块区别
- java中静态和非静态代码块
- Java 静态代码块和非静态代码块
- Java 静态代码块和非静态代码块
- java静态和非静态代码块的执行顺序
- Java中静态代码块、构造代码块的区别
- java中静态代码块,构造代码块,静态代码块的区别
- Java 静态代码块与非静态代码块的区别
- Java静态代码块和静态方法的区别
- Java静态代码块和静态方法的区别
- Java静态代码块和静态方法的区别
- java中静态代码块,非静态代码块的用法 static用法详解
- 举例说明java中静态代码块、非静态代码块、构造函数的执行顺序
- JAVA继承关系中静态代码块、非静态代码块的执行顺序
- sklearn.svm.SVC 参数说明
- Variant 与 内存泄露
- 关于变量定义时初始化的必要性
- Android渐变色画笔 自定义View渐变色
- win7 下 vs2013 + Qt5.7 程序打包
- java 中静态代码和非静态代码块的区别!
- android毛玻璃效果,模糊视图工具类!类 高斯模糊
- 端口转发和端口映射
- ORA-12516: TNS: 监听程序无法找到匹配协议栈的可用句柄解决方法
- [转] Java中创建对象的5种方式
- ES6(一) let和const命令
- XML Schema 学习(随笔一)
- PageReference and ApexPages
- [pta]02-线性结构3 Reversing Linked List (25分)