Java中的构造代码块与静态代码块的特点
2015-08-02 17:37
579 查看
1、静态代码块的执行:
public class StaticTest {
static
{
System.out.println("hello,world!");
System.exit(0);
}
public
static void main(String[] args)
{
System.out.println("main");
}
}
在这段代码中,StaticTest类一加载,首先就执行了static代码块,虽然这里有main函数,只是这段代码的入口,通过Eclipse的断点测试,根本就没有执行到就结束了,这里的main函数就是为了让代码能够执行才有的。
2、构造代码块的执行:
public class StaticTest {
static
{
System.out.println("静态代码块!");
//System.exit(0);
}
{
System.out.println("构造代码块!");
}
public
static void main(String[] args)
{
StaticTest
st = new StaticTest(); //在对象一建立的时候就调用
System.out.println("主函数!");
}
}
在这段代码中,有一个构造代码块,这个代码块是在对象一建立的时候就调用,在函数体中,他的执行时间是看对象是什么时候建立的。
3、总结:静态代码块是在类一被加载的时候就执行,如果在静态代码块中加入System.exit(0);语句,则会直接结束这个程序,不会再执行main函数中的语句。而构造代码块则不同,因为要先建立对象,再调用代码块中的语句,所以main函数是肯定要执行的。
public class StaticTest {
static
{
System.out.println("hello,world!");
System.exit(0);
}
public
static void main(String[] args)
{
System.out.println("main");
}
}
在这段代码中,StaticTest类一加载,首先就执行了static代码块,虽然这里有main函数,只是这段代码的入口,通过Eclipse的断点测试,根本就没有执行到就结束了,这里的main函数就是为了让代码能够执行才有的。
2、构造代码块的执行:
public class StaticTest {
static
{
System.out.println("静态代码块!");
//System.exit(0);
}
{
System.out.println("构造代码块!");
}
public
static void main(String[] args)
{
StaticTest
st = new StaticTest(); //在对象一建立的时候就调用
System.out.println("主函数!");
}
}
在这段代码中,有一个构造代码块,这个代码块是在对象一建立的时候就调用,在函数体中,他的执行时间是看对象是什么时候建立的。
3、总结:静态代码块是在类一被加载的时候就执行,如果在静态代码块中加入System.exit(0);语句,则会直接结束这个程序,不会再执行main函数中的语句。而构造代码块则不同,因为要先建立对象,再调用代码块中的语句,所以main函数是肯定要执行的。
相关文章推荐
- Java反射机制
- ubuntu10.04编译openjdk7
- Spring Namespace扩展
- MyEclipse的导出war包问题
- 文件的上传与下载
- [leetcode-47]Permutations II(java)
- 重学java23种设计模式(8)组合模式
- [leetcode-46]Permutations(java)
- java程序设计之反弹高度
- Eclipse(MyEclipse) 设置默认编码为Utf-8 之最全方法
- 什么是JAVABEAN?
- java验证码代码
- Java的基本数据类型
- Java常用类:String
- Java Performance Optimization
- java程序设计之完数
- 关于javaIDE开发环境JDK,java compiler的问题
- Eclipse(MyEclipse) 自动补全
- java中Scanner和标准输入流的哪一种更高效呢
- Eclipse之CTRL+左键直接进入方法函数Implementation