成员变量与局部变量的区别
- 1.定义的位置不同
-
成员变量:类体以内,方法体以外
-
局部变量:方法的声明上,或者方法体内
- 2.在内存的位置不一样
-
成员变量:在堆区分配内存
-
局部变量:在栈区分配内存
- 3.初始化值不一样
- 成员变量:系统赋予初始值
-
byte short int long: 0
-
float double: 0.0
-
boolean: false
-
char: \u0000
-
引用类型 null
-
局部变量:方法的声明上,或者方法体内
-
没有默认值,必须先声明再赋值再使用
- 4.变量的生命周期不一样
-
生命周期: 变量从创建到销毁全过程
-
成员变量:随着对象的创建而创建,随着垃圾回收器回收对象时销毁
-
局部变量:随着方法的调用而创建,随着方法调用结束而销毁
- 5.当成员变量和局部变量重名的时候,局部变量优先,就近原则
-
如果希望访问成员变量,需要使用this关键字
- 值传递和引用传递
- 1.当方法类型是基本类型的时候满足基本类型的转换
- 2.当一个方法形参是引用类型的时候传递的是地址
- 匿名对象
- 概念:没有名字的对象,本质还是一个对象
- 匿名对象特点
- 1.匿名是对象,照样可以访问成员
- 2.匿名对象只能访问一次,如果需要使用多次,必须使用变量接受
- 3.匿名对象一旦使用一次完毕,立刻成为垃圾对象,等待垃圾回收期在空闲的时候回收,节约内存资源
- 4.匿名对象在JAVA里一般用于访问一次的情况,简化代码,在安卓里节约内存资源
- 垃圾对象
-
垃圾对象就是没有地址引用的对象称为垃圾对象
- 什么情况下会成为垃圾对象?
-
1.当指向某个堆区的空闲的对象被赋值为null时就会变成垃圾对象
-
2.匿名对象第一次使用完毕
-
3.对象所在的方法调用完毕
-
4.对象被重新赋值