首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java中仅由{ }包袱的代码块的执行原理

2013-12-13 
java中仅由{ }包裹的代码块的执行原理今天写代码练手,发现了一个奇怪的问题。程序代码如下所示main方法上面

java中仅由{ }包裹的代码块的执行原理
今天写代码练手,发现了一个奇怪的问题。程序代码如下所示
main方法上面的一部分是由大括号包裹起来的,可以无障碍的顺利执行,现在可知代码块不是static的
我想请问各方大侠,这种直接由{ }包裹的无名代码块的执行原理,这代码块为何可以执行?
public class NodeTest {
Node node1=new Node("Monday");
Node node2=new Node("Tuesday");
Node node3=new Node("Wenseday");
Node node4=new Node("Friday");

{
node1.next=node2;
node2.next=node3;
System.out.println(node1.next.next.date);
System.out.println("-------------");

node1.next=node4;
node4.next=node2;
System.out.println(node1.next.next.next.date);
System.out.println("-----------------");

node4.next=node3;
node3.next=null;
System.out.println(node1.next.next.date);

}

public static void main(String[] args) {
NodeTest nt=new NodeTest();
}
}

class Node{
String date;
Node next;
public Node(String date){
this.date=date;
}
}
[解决办法]
楼上不要误导,静态代码块是有static关键字的。
比如:

static{
System.out.println("aaa");
}


而直接有大括号括起来的是在构建对象时会调用的,如

public class Test {

{
System.out.println("aaa");
}

public static void main(String[] args) {
new Test();
}
}


[解决办法]
http://yuyiming.iteye.com/blog/1260767

热点排行