| 查看: 1317 | 回复: 8 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
studyhae木虫 (正式写手)
|
[交流]
【求助】final 属性 已有7人参与
|
||
|
定义类: class aClass{ public final double x; public final double y; public double getXY(){ return x*y; } } 由于属性x,y为final,必须在new类的时候初始化x,y。我的问题是,java编译器在优化的过程中,会将x*y先计算出来吗?就是说getXY()方法,是不是直接返回一个值,而没有进行乘法计算? |
» 猜你喜欢
不自信的我
已经有11人回复
北核录用
已经有3人回复
要不要辞职读博?
已经有6人回复
实验室接单子
已经有3人回复
磺酰氟产物,毕不了业了!
已经有8人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有10人回复
26申博(荧光探针方向,有机合成)
已经有4人回复
论文终于录用啦!满足毕业条件了
已经有26人回复
2026年机械制造与材料应用国际会议 (ICMMMA 2026)
已经有4人回复
Cas 72-43-5需要30g,定制合成,能接单的留言
已经有8人回复
» 本主题相关价值贴推荐,对您同样有帮助:
【小白必看】JAVA快速入门—《Java学习路线图:Java必须知道的300个问题》
已经有273人回复
官方正版,如假包换:金山词霸2012.06.19.012 Final 正式版(无广告清爽版)
已经有56人回复
急切询问:寒假语言培训我是参加英语培训班,还是法语?
已经有10人回复
急救:U盘中毒,文件夹变得很大 (BB不是问题,解决问题可再加!)
已经有12人回复
Thornfighter
木虫 (著名写手)
- 应助: 0 (幼儿园)
- 金币: 3232.9
- 散金: 10
- 红花: 3
- 帖子: 1622
- 在线: 116.1小时
- 虫号: 1140205
- 注册: 2010-11-06
- 性别: GG
- 专业: 计算机软件
★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
微尘、梦想(金币+2): 谢谢回复…… 2011-04-06 15:18:21
小木虫(金币+0.5):给个红包,谢谢回帖交流
微尘、梦想(金币+2): 谢谢回复…… 2011-04-06 15:18:21
|
class aClass{ public final double x; public final double y; public double getXY(){ return x*y; } } 由于属性x,y为final,必须在new类的时候初始化x,y。我的问题是,java编译器在优化的过程中,会将x*y先计算出来吗?就是说getXY()方法,是不是直接返回一个值,而没有进行乘法计算? 一、类成员变量用final修饰需要在声明的时候就赋值,否则将不能通过编译直接报错。可以这样理解,因为在创建对象的时候,如果没有使用构造方法或静态初始化器为成员变量赋值,那么成员变量将被赋默认值(对int类型来说是0),而又由于有final修饰,所以一旦赋值后就不能修改,那这种成员变量将失去使用价值。 二、x*y不会先计算出来,这个你可以在getXY()方法中嵌入一个变量调试一下就知道了! class aClass{ public final double x=10;//使用final修饰成员变量的时候必须赋值 public final double y=100; double test; public double getXY(){ test=x*y;//嵌入test return x*y; } public double getTest() { return test; } } public class Test1 { public static void main(String[] args) { aClass a=new aClass(); System.out.println("before getXY() run,test="+a.getTest()); a.getXY(); System.out.println("after getXY() run, test="+a.getTest()); } } |

5楼2011-04-05 18:18:18












回复此楼