BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #12940同步于 2010/1/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

请问下面这段代码中Test1类会在编译时被忽略掉吗?

Ecook
2010/1/10镜像同步7 回复
class Test1{ public void print() { System.out.println("Hello World!"); } } class Test2{ public void print() { System.out.println("I am big!"); } } public class Big { public static void main(String args[]) { Test2 iamTest2obj = new Test2(); iamTest2obj.print(); } } 上面的代码中,Test1类中的函数print中的字符串“Hello World!”在编译时,会放到内存的常量区中吗?多谢回答
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
FJ机器人#1 · 2010/1/10
感觉会的,没有证据
Ecook机器人#2 · 2010/1/10
多谢你的回答。 那么 类不占内存空间 这句话正确吗?我想如果占的话,那么Test1中的常量应该与这个类绑定在一起的吧,那么这样类就占内存空间了 【 在 fj 的大作中提到: 】 : 感觉会的,没有证据
greedisgood机器人#3 · 2010/1/11
这个文件编译后会生成3个独立的.class文件,主类只用了其中一个,另一个不会加到内存里
Ecook机器人#4 · 2010/1/11
sogar!多谢大牛。 还有一个问题想请教:含有内部类的类在生成实例时,是先调用外部类的构造函数,然后再调用内部类的构造函数吗? 【 在 greedisgood 的大作中提到: 】 : 这个文件编译后会生成3个独立的.class文件,主类只用了其中一个,另一个不会加到内存里
greedisgood机器人#5 · 2010/1/11
一样,不用到的话不会实例话,没有顺序一说
Aaron12机器人#6 · 2010/1/12
这仅仅是针对静态内部类才对。 实例化非静态内部类时会隐含一个外部类实例的引用。 【 在 greedisgood 的大作中提到: 】 : 一样,不用到的话不会实例话,没有顺序一说
Thinker机器人#7 · 2010/1/13
使用javac进行编译的时候,加上-verbose选项,就能看到: javac -verbose Try.java [parsing started Try.java] [parsing completed 100ms] [search path for source files: .] [search path for class files: /usr/lib/jvm/java-6-sun-1.6.0.15/jre/lib/resources.jar,/usr/lib/jvm/java-6-sun-1.6.0.15/jre/lib/rt.jar,/usr/lib/jvm/java-6-sun-1.6.0.15/jre/lib/sunrsasign.jar,/usr/lib/jvm/java-6-sun-1.6.0.15/jre/lib/jsse.jar,/usr/lib/jvm/java-6-sun-1.6.0.15/jre/lib/jce.jar,/usr/lib/jvm/java-6-sun-1.6.0.15/jre/lib/charsets.jar,/usr/lib/jvm/java-6-sun-1.6.0.15/jre/classes,/usr/lib/jvm/java-6-sun-1.6.0.15/jre/lib/ext/dnsns.jar,/usr/lib/jvm/java-6-sun-1.6.0.15/jre/lib/ext/sunjce_provider.jar,/usr/lib/jvm/java-6-sun-1.6.0.15/jre/lib/ext/localedata.jar,/usr/lib/jvm/java-6-sun-1.6.0.15/jre/lib/ext/sunpkcs11.jar,.] [loading java/lang/Object.class(java/lang:Object.class)] [checking Test1] [loading java/lang/System.class(java/lang:System.class)] [loading java/io/PrintStream.class(java/io:PrintStream.class)] [loading java/lang/String.class(java/lang:String.class)] [loading java/io/FilterOutputStream.class(java/io:FilterOutputStream.class)] [loading java/io/OutputStream.class(java/io:OutputStream.class)] [wrote Test1.class] [checking Test2] [wrote Test2.class] [checking Try] [wrote Try.class] [total 935ms] 【 在 Ecook (Ecook) 的大作中提到: 】 : class Test1{ : public void print() : { : ...................