一、Java一共有八大基础类型
分为三类:整型(byte,int,short,long,float,double),字符型(char),布尔型(boolean)。
注意:字符串String不在java的基础类型里面,它是java的引用类型
基本数据类型 | 对应的包装类 |
---|---|
byte(内存8位,无符号位时最大存储255,表数范围:-128~127) | Byte |
short(内存16位,无符号位时最大存储65536,表数范围:-32768~32767) | Short |
int(内存32位,无符号位时最大存储(2^32)-1,表数范围:-2^31~(2^31)-1) | Integer |
long(内存64位,无符号位时最大存储(2^64)-1,表数范围:-2^61~(2^61)-1) | Long |
float(内存32位,数据范围在2^-149~(2^128)-1,直接赋值时必须在数字后加上f或F) | Float |
double(内存64位,数据范围在2^-1074~(2^1024)-1,赋值时可以加d或D也可以不加) | Double |
char(内存16位,存储Unicode字符集,用单引号赋值,因为有ASCLL码对应值,可以参与加减乘除运算和比较大小) | Character |
boolean(数值只有true和false,不能用0代替;其他数值类型不能转换成boolean) | Boolean |
装箱与拆箱
装箱是指由基本数据类型向对应的包装类型转换。例如,int包装成Integer类的对象。
拆箱是指有包装类转换成基本数据类型。例如,把Integer类的对象简化成int。
常见包装类应用(手动装箱与拆箱)
1、实现int和Integer相互转换
Integer类通过构造方法将int装箱,通过intValue()方法进行拆箱。
2、自动装箱与拆箱
Java 1.5之后,Java支持自动装箱和拆箱
包装类的优势
1、带有将基本数据类型作为参数的构造函数
2、typeValue()方法
3、parseType(String str)方法,将字符串转化为基本值,静态方法
4、toString()方法,生成对应字符串
5、hashCode()方法,生成哈希码
6、equals()方法,对同一类的两个对象进行比较
二、四大引用类型
引用类型分为:数组,类,接口,字符串。
数组:其实就是一个容器,存储同一种数据类型的集合;如 int[] a = {1,2,3,4}
类:对象是对事物的抽象,而类是对对象的抽象和归纳;如 public class Person{ ......}
接口:使用interface来定义一个接口,只能定义方法,不能有方法的实现;如public interface personImpl{......}
字符串:是存放数据区(静态区)以Unicode编码的字符集合,如 String a="你好"
基本类型与引用类型的区别:
(1)基本数据类型传值,对形参的修改不会影响实参;
(2)引用类型传引用,形参和实参指向同一个内存地址(同一个对象),所以对参数的修改会影响到实际的对象;
(3)String,
Integer, Double等immutable的类型特殊处理,可以理解为传值,最后的操作不会修改实参对象。