静态代码块并不是优先执行,急!!!!
刚学java不久,这段代码想了半天都没明白,求大神解答,谢谢!
package tes;
public class Otyd {
private static int k=0;
private static Otyd t3;
private static Otyd t1 = new Otyd("t1");
private static Otyd t2 = new Otyd("t2");
private static int n = 99;
private static int i = print("i");
{
print("构造块");
}
static{
print("静态块");
}
public Otyd(String s){
System.out.println(++k+":"+s+" i:"+i+" n:"+n);
}
private static int print(String s){
System.out.println(++k+":"+s+" i:"+i+" n:"+n);
n++;
return i;
}
public static void main(String[] args) {
Otyd n = new Otyd("init");
}
}
运行结果:
1:构造块 i:0 n:0
2:t1 i:0 n:1
3:构造块 i:0 n:1
4:t2 i:0 n:2
5:i i:0 n:99
6:静态块 i:0 n:100
7:构造块 i:0 n:101
8:init i:0 n:102
package tes;
public class Otyd {
private static int k=0;
private static Otyd t3;
private static Otyd t1 = new Otyd("t1");
private static Otyd t2 = new Otyd("t2");
private static int n = 99;
private static int i = print("i");
{
print("构造块");
}
static{
print("静态块");
}
public Otyd(String s){
System.out.println(++k+":"+s+" i:"+i+" n:"+n);
}
private static int print(String s){
System.out.println(++k+":"+s+" i:"+i+" n:"+n);
n++;
return i;
}
public static void main(String[] args) {
Otyd n = new Otyd("init");
}
}
运行结果:
1:构造块 i:0 n:0
2:t1 i:0 n:1
3:构造块 i:0 n:1
4:t2 i:0 n:2
5:i i:0 n:99
6:静态块 i:0 n:100
7:构造块 i:0 n:101
8:init i:0 n:102
...全文
相关推荐
Java静态代码块作用及执行顺序解析
主要介绍了Java静态代码块作用及执行顺序解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Java 普通代码块静态代码块执行顺序(实例讲解)
下面小编就为大家带来一篇Java 普通代码块静态代码块执行顺序(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
java中静态代码块与构造方法的执行顺序判断
对静态代码块以及构造函数的执行先后顺序,一直很迷惑,直到最近看到一段代码,发现终于弄懂了,所以这篇文章主要给大家介绍了关于如何判断java中静态代码块与构造方法的执行顺序的相关资料,需要的朋友可以参考下。
关于Java中静态代码块的执行浅析
主要给大家介绍了关于Java中静态代码块执行的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
Java中的static静态代码块的使用详解
本篇文章介绍了,Java中的static静态代码块的使用详解。需要的朋友参考下


Java SE

