A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© clz2431 中级黑马   /  2015-12-14 23:33  /  857 人查看  /  2 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

java 中到底是传值还是传地址
1.既是传值,也是传地址,基本数据类型传递的值,引用数据类型传递的地址
2.java只有传值,因为地址值也是值(出去面试说,说这种 支持者是詹姆斯高斯林 java之父)


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

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


局部内部类在访问他所在的方法中的局部变量时,必须用final修饰,为什么?
        因为,局部变量的生命周期是依赖于方法,方法调用完毕后,局部变量就释放了。
        如果此时局部内部类对象还在使用局部变量,就会报错,所以该局部变量必须是final修饰体,
        就是为了延长的局部变量的生命周期,但是JDk1.8取消了这个事情,所以我觉得这是一个bug

2 个回复

倒序浏览
总结的很到位,不错不错,赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞
回复 使用道具 举报
学习重要的是思考、总结,加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马