##Java的基本类型与引用类型
Java 的两大数据类型: 基本类型(内置数据类型) 和 引用数据类型
基本类型
八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
1.布尔类型 boolean(未指明多少字节)
2.字符类型 chart(2个字节)
3.浮点类型 float(4个字节),double(8个字节)
4.整数类型 byte(1字节),short(2个字节),int(4个字节), long(8个字节)
补充:BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算
类型转换
1.自动类型转换
char c1='a';//定义一个char类型
int i1 = c1;//char自动类型转换为int
System.out.println("char自动类型转换为int后的值等于"+i1);
char c2 = 'A';//定义一个char类型
int i2 = c2+1;//char 类型和 int 类型计算
System.out.println("char类型和int计算后的值等于"+i2);
2.强制类型转换
int i1 = 123;
byte b = (byte)i1;//强制类型转换为byte
System.out.println("int强制类型转换为byte后的值等于"+b);
引用类型
引用类型指向一个对象(可以通过new xxx()来创建),指向对象的变量是引用变量,如C、C++里面的指针,又如前端里面的浅拷贝,拷贝的是内存地址,改变值时会互相影响,因为指向相同的内存地址。相反地理解,基本类型则类似于前端的深拷贝,赋值互相不影响。引用变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。
1.类,如String
String s1 = "Runoob"; // String 直接创建
String s2 = "Runoob"; // String 直接创建
String s3 = s1; // 相同引用内存地址。
String s4 = new String("Runoob"); // String 对象创建
String s5 = new String("Runoob"); // String 对象创建
注意: String类和StringBuffer,StringBuilder 类的区别介绍
String:适用于少量的字符串操作的情况
StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况
StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况
如定义一个字符串str,后期需要频繁修改字符串str.append(‘xxx’),则建议使用StringBuffer,从而减少性能损耗,使用String,又重复修改str,则会重新创建一个新的字符串来存放,每次都重新开辟了一个内存空间。
因此如果字符串较少的话我们可以使用String 类,如果文件有几百成千个字节,我们提供使用类Stingbuffer 来对字符串进行操作。
2.接口
3.数组
注意:
1.对象、数组都是引用数据类型。
2.所有引用类型的默认值都是null。
3.一个引用变量可以用来引用任何与之兼容的类型。 例子:Site site = new Site(“Runoob”)。