1
A
回答
1
其运行时
Foo f
将参照Object
创建的Bar
运行在运行时。
有编译时检查它。 Bar
必须是Foo
这个编译成功
4
如果你编译如下:
int x = 34 + 45;
然后您将分配在编译时进行评估,因为它涉及唯一不变的基本类型的表达式。在其他大多数情况下,包括您的示例,表达式都将在运行时进行评估。
2
我不知道你的疑问到底是什么,但我认为在编译过程中,程序的文本表示被翻译成机器可理解的形式(在Java中是Java字节码)。像分配这样的操作也会发生同样的情况。在运行时,执行这些操作。因此,要精确地回答你的问题,赋值操作既是编译操作又是运行时现象(在两种情况下都采取了某些操作 - 在编译时它们由Java编译器完成,而在运行时则由JVM完成)。
例如,
class Foo { }
class Bar { }
Foo f = new Bar();
这段代码被编译器被拒绝。它会对你大喊,你正试图分配不兼容的类型。
1
它的两个。
编译时间 - 分配在编译时间类型兼容性进行分析,用于注射的代码来执行转换/装箱/拆箱等。即使一些流分析能影响分配,例如变量及其分配可以完全被优化。
运行时间 - 值的实际赋值,即更改变量内存位置中的位数当然会在运行时发生。
相关问题
- 1. 得到在编译时(或运行时)
- 2. C++运行时对象的类型转换或编译时
- 3. 为运行时识别编译时间字符串分配
- 4. 内存分配(C++)编译时间/运行时间?
- 5. 如何在编译或运行时
- 6. 在运行时重新编译对象
- 7. 从Cmake运行编译文件时出现分段错误
- 8. 在编译时运行PublicResXFileCodeGenerator
- 9. 的Xtext运行时编译
- 10. 运行时JavaScript对象分配限制
- 11. 汇编运行时内存分配
- 12. sizeof运算符编译时或运行时间
- 13. 编译时间vs运行时间
- 14. 在运行时编译运行代码
- 15. Eclipse运行时编译?
- 16. 运行时编译SCSS?
- 17. 运行时编译CLR
- 18. 运行时编译C#
- 19. Const编译器/运行时
- 20. 运行时编译顺序
- 21. Tomcat。 Java运行时编译
- 22. C#编译运行时
- 23. Xcode:编译时不运行
- 24. 编译和运行时
- 25. 在编译时或运行时会计算初始化值吗?
- 26. 在其他运行时编译程序集Rreference运行时编译程序集
- 27. Xcode 4.3.1运行Profiler时出现错误编译错误
- 28. 运行theano时的编译问题
- 29. 运行时换出装配在编译时
- 30. 编译时user.agent值与运行时user.agent值不匹配
好的。谢谢Jigar! – Anonymous 2011-02-03 14:33:51