请大虾帮我看看这程序~~!

xieben 2005-12-25 03:10:27
这个程序看不懂 不是很明白 请大虾帮我分析一下
public class StaticCode
{
static String country;
static
{
country = "china";
System.out.println("StaticCode is loading");
}
}
class TestStaticCode
{
static
{
System.out.println("TestStaticCode is loading");
}
public static void main(String [] args)
{
System.out.println("begin executing main method");
new StaticCode();
new StaticCode();
}
}
...全文
103 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuzl32 2005-12-25
  • 打赏
  • 举报
回复
public class StaticCode
{
static String country;
static
{
country = "china";
System.out.println("StaticCode is loading");
}
}
class TestStaticCode
{
static
{
System.out.println("TestStaticCode is loading");
}
public static void main(String [] args)
{
System.out.println("begin executing main method");
new StaticCode();
new StaticCode();
}
}

说明:
程序运行 -> 装载有static main 方法的类,即TestStaticCode,所以
System.out.println("TestStaticCode is loading"); 先输出
其次进入main方法打印出:
System.out.println("begin executing main method");
最后装载StaticCode,输出:
System.out.println("StaticCode is loading");

对于最后一语句new StaticCode();由于前一句使此类静态域已装载,于是不再输出
f_acme 2005-12-25
  • 打赏
  • 举报
回复
这个问题在《Thinking in Java》中讲的很清楚!
f_acme 2005-12-25
  • 打赏
  • 举报
回复
static标记的语句只会执行一次,第二此new的时候时没有任何动作了。
Deareveryday 2005-12-25
  • 打赏
  • 举报
回复
建议你看看《Java核心技术I》第四章初始化块的内容,里面有几个注释说的就是不用main方法写出“Hello,World”程序。
xieben 2005-12-25
  • 打赏
  • 举报
回复
但是这个程序能执行 而且是正确的
iwlk 2005-12-25
  • 打赏
  • 举报
回复
main()要写在 public 类中
A59229617 2005-12-25
  • 打赏
  • 举报
回复
代码有问题吧!!
main()是不是要写在 public 类中。。。。

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧