请问:
请教各位
1,当创建外部类对象的时候 会在堆中为内部类(包括匿名内部类和局部内部类)分配内存空间吗 我的理解:
为内部类分配内存空间 (没有为构造方法分配内存空间) 但外部类没有权限访问内部类对象成员 可以访问构造方法 是因为构造方法实际上静态的 静态方法并不属于对象 属于类所有 利用外部类对象调用内部类构造方法创建内部类对象 如果不是这样 那是怎么分配的呢请各位大哥帮忙指出我的错误 并指正 请说说各位自己的想法 2,final的生命周期超出方法运行的生命周期是什么意思谢谢
请教各位
1,当创建外部类对象的时候 会在堆中为内部类(包括匿名内部类和局部内部类)分配内存空间吗 我的理解:
为内部类分配内存空间 (没有为构造方法分配内存空间) 但外部类没有权限访问内部类对象成员 可以访问构造方法 是因为构造方法实际上静态的 静态方法并不属于对象 属于类所有 利用外部类对象调用内部类构造方法创建内部类对象 如果不是这样 那是怎么分配的呢请各位大哥帮忙指出我的错误 并指正 请说说各位自己的想法 2,final的生命周期超出方法运行的生命周期是什么意思谢谢
解决方案 »
- 静态内部类的问题
- 有点小意外
- Actionform问题求教!
- 请问大家一个问题,现在有一个父类F,里面用ThreadLocal()对象记录了某个资源(比如Connection),然后有很多类extends这个F,其他的类通
- java 进制转换
- 这个语句可以实现嘛??来者有分!!
- 执行时出错:Exception in thread "main" java.lang.NoClassDefFoundError: file
- java判断日期字符是否有效(在线等待答案)
- 请各位指点迷津
- 有谁知道Java8中关于日期时间Period的ofWeeks和ofMonths的不同。
- 下拉列边框,急救!
- JTree CheckBox 问题
会分配内存空间,而且在内部类有一个对封装类的隐含的引用.
关于你的理解中,方法都是在datasegement中,调的时候是从datasegement中调用的.第二个问题请重新描述一下,听不太懂
这句话是什么意思
public class Parcel9 {
public Destinations destiantions(final String dest){
return new Destinations(){
private String label = dest;
public int i = 4;
{
System.out.println(label);
System.out.println(i);
}
public String readLabel(){
return label;
}
public void f(){
System.out.println(i);
}
};
}
public static void main(String[]args){
Parcel9 p = new Parcel9();
Destinations d = p.destiantions("Tasmania");
}
}
如果不为匿名类分配内存空间 那么destiantions方法中return 后就什么都没有了啊 这怎么行呢 谢谢
如果内部类需要从外部类中接受参数,就要求这个参数是终态的。
2.书上说的用final 定义的局部变量相当于一个常量,它的生命周期超出方法运行的生命周期,我们可以在在代码中间加载一个含有final修饰的变量,在这个方法结束后再调用该变量看看,这个变量还存在.说明它的生命周期是长于这个方法的.
楼主要研究底层的东东可以参考sun 的 The Java™ Language Specification