返回信息流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!”在编译时,会放到内存的常量区中吗?多谢回答
这是一条镜像帖。来源:北邮人论坛 / java / #12940同步于 2010/1/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
请问下面这段代码中Test1类会在编译时被忽略掉吗?
Ecook
2010/1/10镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
多谢你的回答。
那么 类不占内存空间 这句话正确吗?我想如果占的话,那么Test1中的常量应该与这个类绑定在一起的吧,那么这样类就占内存空间了
【 在 fj 的大作中提到: 】
: 感觉会的,没有证据
sogar!多谢大牛。
还有一个问题想请教:含有内部类的类在生成实例时,是先调用外部类的构造函数,然后再调用内部类的构造函数吗?
【 在 greedisgood 的大作中提到: 】
: 这个文件编译后会生成3个独立的.class文件,主类只用了其中一个,另一个不会加到内存里
这仅仅是针对静态内部类才对。
实例化非静态内部类时会隐含一个外部类实例的引用。
【 在 greedisgood 的大作中提到: 】
: 一样,不用到的话不会实例话,没有顺序一说
使用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()
: {
: ...................