论坛首页 Java版

你猜到底会输出什么?

浏览 6733 次
精华帖 (1) :: 良好帖 (24) :: 新手帖 (14) :: 隐藏帖 (3)
作者 正文
最后更新时间:2008-07-07
congpeixue 写道
使用一个非常量的静态字段只有当类或者接口的确声明了这个字段的时候才时主动调用;
类中声明的字段可能会被子类引用;接口中声明的字段可能会被子接口或者实现了这个接口的类引用。对于子类、子接口和实现了接口的类来说,就就时被动调用--使用它们并不会触发它们的初始化。

此为正解,呵呵,曾经还以为自己多了解java了呢,可是最近在读《深入java虚拟机》,才发现有很多东西自己不明白为什么或者理解错误
   
0 请登录后投票
最后更新时间:2008-07-07
dust_dn 写道
那个static函数算什么??
我是小菜,问一下。。。



是一段静态代码,不是函数
   
0 请登录后投票
最后更新时间:2008-07-07
jvm是这样执行的!!
当调用一个Class中的某一个final常量,这个常量要必须被赋值!!要不在初始化的时候赋值或者在静态区赋值!!当调用这个常量的时候,JVM首先在初始化的时候检查是否有值,如果没有,再去静态区检查,如果是在静态区检查,他会把静态区的语句执行一遍!!!!!
如果你调用的不是常量而是一个其它的,JVM会装载对应的类到内存
   
0 请登录后投票
最后更新时间:2008-07-07
这段代码编译通的过吗?你的文件中出现了两个public关键字!
   
0 请登录后投票
最后更新时间:2008-07-07
@zheng 写道
这段代码编译通的过吗?你的文件中出现了两个public关键字!

什么意思?
   
0 请登录后投票
最后更新时间:2008-07-08
gysh 写道
jvm是这样执行的!!
当调用一个Class中的某一个final常量,这个常量要必须被赋值!!要不在初始化的时候赋值或者在静态区赋值!!当调用这个常量的时候,JVM首先在初始化的时候检查是否有值,如果没有,再去静态区检查,如果是在静态区检查,他会把静态区的语句执行一遍!!!!!
如果你调用的不是常量而是一个其它的,JVM会装载对应的类到内存



3Q
   
0 请登录后投票
最后更新时间:2008-07-08
呃,那本书翻的很一般。think in java上有说的
   
0 请登录后投票
最后更新时间:2008-07-08
  其实有没有必要花时间钻这类型的代码?
  在项目中,一般不会出现这类代码吧?而且就算出现了,那这断代码是不是需要重构?。一般情况下,如果需要初始化,我一般会把初始化语句封装成初始化方法,然后被框架或自已的代码回调。
   
0 请登录后投票
最后更新时间:2008-07-08
1 楼主的问题我能正确理解
2 即使我回答不出来和我回答出来 对工作帮助不大.
3 换了个语言这种模式都不成立,所以不需要关注这些.
4 项目中 遇到这种虚拟机 模棱两可的东西一律改用通俗易懂的 方便各种语言着开发的快速介入
   
0 请登录后投票
最后更新时间:2008-07-08
chbest 写道
1 楼主的问题我能正确理解
2 即使我回答不出来和我回答出来 对工作帮助不大.
3 换了个语言这种模式都不成立,所以不需要关注这些.
4 项目中 遇到这种虚拟机 模棱两可的东西一律改用通俗易懂的 方便各种语言着开发的快速介入

楼上及楼上的楼上正解。
这段代码只是看看而已,没有太实际的用处。有时太依赖某种语言或虚拟机的特色不是好习惯,会给项目交流或代码改造带来不便
   
0 请登录后投票
论坛首页 Java版

跳转论坛:
JavaEye推荐