说实话,学了那么久java,还真不知道楼主标题上的问题。
我现在手头上有《深入java虚拟机》,但还没看,我想以后看了会有点眉目吧!
如果楼主想了解这类的支持看看javap命令和我说的书吧
我现在手头上有《深入java虚拟机》,但还没看,我想以后看了会有点眉目吧!
如果楼主想了解这类的支持看看javap命令和我说的书吧
解决方案 »
- java成员变量是放在内存那块地方?
- panel 里面显示网格
- String 和 StringBuffer的区别? equals 和 == 的区别?
- Java是否能控制磁盘访问
- 包访问权限的类的非静态方法声明为public 没有意义!?
- 使用javac命令行如何编译一个目录下的所有.java文件呢?
- 关于inner类的问题
- 请jFresH_MaN(absoluteFresh)进来,谢谢你的帮助!
- 堆异常 内存溢出 求大侠赐教
- java String.matches方法使用的问题?
- 我操作数据库提示“Before start of result set”是怎么回事?
- 哪里可以下载JDK的详细文档
javap我也用过,不过好像跟这个没啥关系吧
这也是java的聪明之处,借此它说一处编译,多处运行。至于java XXX.class的时候,jvm会把字节码转换成相应平台的机器代码来运行。
[parsing completed 156ms]
[loading C:\j2sdk1.4.1_05\jre\lib\rt.jar(java/lang/Object.class)]
[loading C:\j2sdk1.4.1_05\jre\lib\rt.jar(java/lang/String.class)]
[checking Test]
[loading C:\j2sdk1.4.1_05\jre\lib\rt.jar(java/lang/System.class)]
[loading C:\j2sdk1.4.1_05\jre\lib\rt.jar(java/io/PrintStream.class)]
[loading C:\j2sdk1.4.1_05\jre\lib\rt.jar(java/io/FilterOutputStream.class)]
[loading C:\j2sdk1.4.1_05\jre\lib\rt.jar(java/io/OutputStream.class)]
[wrote Test.class]
[total 609ms]
javac -verbose XXX.java由于构造函数是由编译器调用的,因此编译器必须要知道能调用哪个方法.
这是因为有多个构造函数,产生了重载,编译器根据构造函数的参数的类型和个数决定调用哪一个。
顺便问个问题,这里的编译器指的是啥?我觉得有点抽象啊,不大明白
大家讨论地不错,看有没有什么新的想法
我主要是想知道编译java文件到class文件的过程细节
如果只是说编译成二进制文件,那这谁都知道,不知道有没有大侠对这个所谓的二进制文件有什么想法。
我个人觉得编译过程和jvm无关。
只有解释和执行class文件的时候才和jvm挂上钩
嘿嘿,那你得去问问那个神奇的编译器都干了些什么喽!
那这句话“由于构造函数是由编译器调用的,因此编译器必须要知道能调用哪个方法.
”
怎么解释啊?javac调用构造函数?分配内存?