变量只能被赋予两种类型的值,基本类型和引用类型
基本类型的值,按值访问,变量的值是谁就取谁,操作谁
引用类型的值,按引用访问,引用类型存的是值是一个内存地址,内存地址指向堆内存的一个具体对象,内存地址不能随便操作,所以访问和操作的是引用的那个堆里的变量
相同点:
- 不管什么类型,声明变量方式一样
- 传参,都是按值传递 外部定义的变量在调用函数,当作函数参数传递的时候,相当于是一个外部值给函数内部参数复制的过程
区别:
- 变量存引用类型,可以动态添加属性;基本类型不可以
- 变量复制不同:
-
基本类型,复制一模一样的变量,相互独立,存在栈中;
-
引用类型,复制了一模一样的内存地址,存在栈中,这个内存地址指向同一个堆变量,一个变化,影响另一
个;