黑马程序员技术交流社区

标题: JAVA面试题,你值得拥有 [打印本页]

作者: clz2431    时间: 2015-12-14 23:33
标题: JAVA面试题,你值得拥有
java 中到底是传值还是传地址
1.既是传值,也是传地址,基本数据类型传递的值,引用数据类型传递的地址
2.java只有传值,因为地址值也是值(出去面试说,说这种 支持者是詹姆斯高斯林 java之父)


局部变量和成员变量的区别?
        1、在类中的定义位置不同。
                局部变量:方法中,或者方法形参上。
                成员变量:类中,方法外。
        2、在内存中的存储位置不同。
                局部变量:栈
                成员变量:堆
        3、生命周期不同。
                局部变量:和方法相关。
                成员变量:和对象相关。
        4、初始化值不同。
                局部变量:没有默认值,必须先定义,在赋值,然后才能使用。
                成员变量:有默认值。
                        整型:0
                        浮点型:0.0
                        字符:'\u0000'
                        布尔:false
                        引用类型:null

在内部了的成员方法中,如何使用局部变量,内部类的成员变量以及外部类的成员变量?
                局部变量:直接引用
                内部类成员变量:通过this.的形式调用
                外部类成员变量:通过外部类.this的形式调用
                内部类之所以能使用外部类的成员,是因为内部类能获取到外部类的引用   外部类名.this


局部内部类在访问他所在的方法中的局部变量时,必须用final修饰,为什么?
        因为,局部变量的生命周期是依赖于方法,方法调用完毕后,局部变量就释放了。
        如果此时局部内部类对象还在使用局部变量,就会报错,所以该局部变量必须是final修饰体,
        就是为了延长的局部变量的生命周期,但是JDk1.8取消了这个事情,所以我觉得这是一个bug
作者: 橘猫自由    时间: 2015-12-14 23:34
总结的很到位,不错不错,赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞
作者: rockybull    时间: 2015-12-14 23:52
学习重要的是思考、总结,加油




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2