1. java的数据类型
java的数据类型分为基本数据类型和引用类型
基本数据类型:int、double、float、byte、short、char、long、boolean
引用数据类型:类、接口、数组
2. 作为方法参数时的区别
当数据类型作为方法参数时,两种类型在Java中都是以值传递的方式
值传递:是指在调用函数时,将实际参数复制一份传递给函数,这样在函数中修改参数时,不会影响到实际参数
引用传递:是指在调用函数时,将实际参数的地址传递给函数,这样在函数中对参数的修改,将影响到实际参数
当方法中形参发生改变时分为以下3种情况:
1. 基本数据类型
形参改变不会改变实参的值
(因为传递的是栈内存中值copy的副本)
2. 引用数据类型
形参改变会改变实参的值
(这里传递的也是栈内存中值copy的副本,也正因为这一点,所以副本指向的堆内存中的地址相同,所以改变形参时,也会改变堆内存中的值)
3. String字符串
(1) 字符串常量池中的字符串
形参改变不会改变实参的值
(虽然String也是引用类型,但是因为在常量池中不同对象开辟的内存空间不一样,所以栈内存的值copy的副本作为形参改变时,会指向不同的堆内存地址)
(2) new 出来的 String对象 或 StringBuffer、StringBuilder
形参改变会改变实参的值
(因为此时,它们不是存储在字符串常量池中的,和普通引用数据类型存放的方式相同,故改变形参会影响实参的原理也相同)