Class文件问题

q451007453 2014-01-15 12:04:56
有2个类
public class test{
public String test1(){
String pa = test2.test;
}
}




public class test2{
public static final String test ='1234';
}
}

把编译后运行 String pa; 值是会调用test2里面的值

还是在编译的时候已经调用的test2里面的值。
...全文
1536 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mr-稻帅 2014-02-09
  • 打赏
  • 举报
回复
引用 4 楼 solomon5926 的回复:
静态变量在在编译期就完成赋值,调用是运行期才进行的
已正解
sally-wang 2014-02-09
  • 打赏
  • 举报
回复
test2.test在编译的时候就有值了,但这里的String pa只有在调用了 public String test1(){ String pa = test2.test; } 才有值
zlmlczcmlvsaav 2014-02-08
  • 打赏
  • 举报
回复
不懂帮顶!!!
vmrand 2014-02-08
  • 打赏
  • 举报
回复
基本类型和String类型,有个特殊的地方,final限定的常量在编译时会以值的形式替换到调用的地方。 比如final int a = 5; int b = a + 6; 编译的时候会把5替换到a+6这个表达式中,进而直接计算出结果。String也这样处理。
teemai 2014-01-15
  • 打赏
  • 举报
回复
在构造函数未调用之前还没有值,当调用了 public String test1(){ String pa = test2.test; } String pa才有值
solomon5926 2014-01-15
  • 打赏
  • 举报
回复
静态变量在在编译期就完成赋值,调用是运行期才进行的
酷酷啦啦xsx 2014-01-15
  • 打赏
  • 举报
回复
应该是已经调用了吧,后面执行的时候只是解释
rumlee 2014-01-15
  • 打赏
  • 举报
回复
应该是在编译的时候处理的,你反编译一下看看应该就知道了
coolbamboo2008 2014-01-15
  • 打赏
  • 举报
回复
不太明白你的描述 static final String test ='1234';这个可以类名.直接调用的 你说的编译中,我不太明白,你想搞明白的是什么,毕竟编译中发生的事不需要考虑那么多吧

62,614

社区成员

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

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