this的作用:用来区别同名的成员变量与局部变量(this.成员变量)
this 就是0x1234,就是对象
ctrl+alt+s --> generate getters and setters
默认值不同
成员变量,有自己的默认值 false
局部变量,没有默认值,不赋值不能使用
内存位置不同
成员变量,跟随对象进入堆内存存储
局部变量,跟随自己的方法,进入栈内存
生命周期不同
成员变量,跟随对象,在堆中存储,内存等待JVM清理 生命相对较长
局部变量,跟随方法,方法出栈,就消失 生命相对较短
new 类 就是创建一个对象
只要创建对象 内存就分为栈和堆,没有new,只有栈没有堆
当基本类型(包括String)传参时,栈内存中各个方法内的变量互不相关,仅存在一个相互赋值的动作
当引用数据类型时,各个方法内的引用变量指向同一个堆内存中的对象,任何一个引用修改了对象,
其他引用再使用时,均访问修改后变量
栈(方法) 堆(对象) |
|