类和对象知识点汇总

类是对某一类事物的抽象描述,而对象用于表示现实中该类事物的个体

局部变量和成员变量区别

区别一:定义的位置不同

定义在类中的变量是成员变量

定义在方法中或者{}语句里面的变量是局部变量

区别二:在内存中的位置不同

成员变量存储在内存的对象中

局部变量存储在栈内存的方法中

区别三:生命周期不同

成员变量随着对象的出现而出现在堆中,随着对象的消失而从堆中消失gc垃圾回收机制

局部变量随着方法的运行而出现在栈中,随着方法的弹栈而消失

区别四:初始化不同

成员变量因为在堆内存中,所有默认的初始化值

局部变量没有默认的初始化值,必须手动的给其赋值才可以使用。

可以在成员变量名前面加上this.来区别成员变量和局部变量

引用数据类型:

类、接口类型、数组类型、枚举类型、注解类型。

引用类型数据和基本类型数据的区别:

基本数据类型在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上。调用函数是函数里的形参 就是复制这些变量的值 以后对形参值的变化 不会影响到原来变量的值

引用数据类型在被创建时,首先要在栈上给其引用(句柄)分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。调用函数 函数里的形参 就是复制这些变量的值的地址 当对形参的值 进行修改的时候 就等于是对 这些变量的值 进行修改~ 所以会影响到原来变量的值

堆主要用来存放对象的,栈主要是用来执行程序的

原文地址:https://www.cnblogs.com/longmingyeyu/p/13067798.html