[code="java"]
static{
System.out.println("java静态块。。。");
}
[/code]
以上这个静态块是在什么加载的?
还有就是以下这个是什么意思,为什么编译和运行都没问题?
[code="java"]
{
System.out.println("啥子意思嘛。。。");
}
[/code]
[color=blue][b]
static{}语句块,一般在该类被加载入JVM时,被执行并仅执行一次。
{}是普通的语句块,
[/b][/color]
参考下这篇文章:[url]http://www.iteye.com/topic/208187[/url]
[color=blue][b]{}编程技巧,用的不多。static{}还经常用[/b][/color]
[quote] static{
System.out.println("java静态块。。。");
} [/quote]
这个是静态块!
作用:一般用来加载或存放一些固定的数据,初始化功能
在类实例化的时候就会执行,比如 new 的时候!
第一个static的意思是让你理解static的意思,它在什么时候执行的。
比如:这样一个类
[code="java"]
public class Sun {
static{
System.out.println("static ....");
}
public static void main (String[] args){
System.out.println("main ....");
}
}
[/code]
那么其中的static考的就是它的执行位置。和main方法哪个先执行。那么打出来的结果是在main方法前执行的。
第二个也就是个普通的初始化语句块。比如:
[code="java"]
public class Sun {
{
System.out.println("static ....");
}
public static void main (String[] args){
System.out.println("main ....");
}
}
[/code]
这时候如果执行的话,static是不会打印出来的。那么在main方法中实例一个类对象这样就能看到输出的语句了。
public class Sun {
{
System.out.println("static ....");
}
public static void main (String[] args){
Sun s = new Sun();
System.out.println("main ....");
}
}
[/code]
就是说一句块初始化了。
[quote]static{
System.out.println("java静态块。。。");
} [/quote]
这个是静态块,获取类实例的时候乎会执行,只执行一次。
[quote] {
System.out.println("啥子意思嘛。。。");
} [/quote]
这个就是一个不同的block,没有什么意义。