类中成员变量与局部变量的区别,值传递和引用传递的,垃圾对象和匿名对象

成员变量与局部变量的区别

  • 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.对象被重新赋值
    

猜你喜欢

转载自blog.csdn.net/Ariqiao/article/details/89408620