一、java的基本类型
java基本类型主要有八个四类:
第一类 整型:byte short int long
第二类 浮点型: folat double
第三类 字符型:char
第四类 逻辑型:boolean
。实际上,JAVA中还存在另外一种基本类型void,它也有对应的包装类 java.lang.Void,不过我们无法直接对它们进行操作。
第一类 整型:
1. byte
- byte数据类型是8位、有符号的,以二进制补码表示的整数;
- 最小值是-128(-2^7);
- 最大值是127(2^7-1);
- 默认值:0
注:默认值是指系统所给的初始化的值,必须是全局变量,java中,局部变量和静态变量需要初始化,并不适用此规则。
2. short 2字节16位
- 最小值是-32768(-2^15);
- 最大值是32767(2^15 - 1);
- Short数据类型也可以像byte那样节省空间。一个short变量是int型变量所占空间的二分之一
- 默认值是 0
- 最小值是-32768(-2^31);
- 最大值是32767(2^31 - 1);
- 一般地整型变量默认为int类型;
- 默认值是 0
- 最小值是-9,223,372,036,854,775,808(-2^63);
- 最大值是9,223,372,036,854,775,807(2^63 - 1);
- 默认值是 0L
第二类 浮点型:
5. float 4字节32 位
- 取值范围:3.4e-038~3.4e+038;
- 0.0f;
6. double 8字节64位
- 取值范围:1.7e-308~1.7e+308;
- 0.0d;
注意:结尾的"E+数字"表示E之前的数字要乘以10的多少倍。
比如3.4E+038就是3.4×(10)^38 ,3.14E-038就是3.4/(10)^38。
第三类 字符型:
7. char 2字节16位
- 是一个Unicode字符集;
- 最小值是’\u0000’(即为0);
- 最大值是’\uffff’(即为65,535);
- 可以储存一个中文,一个中文两个字节;
- 默认值是 ‘\u0000’(即为0);
第四类 逻辑型:
8 bollean 1/8字节
- 只有两个取值:true和false;
- 默认值是flase;
二、基本类型对应的包装类
包装类都属于引用类型所以所有的包装类的默认值为null
Byte.MIN_VALUE等都是定义好的常量可以直接调用。
基本类型:byte 二进制位数:8
包装类:java.lang.Byte
最小值:Byte.MIN_VALUE=-128
最大值:Byte.MAX_VALUE=127
基本类型:short 二进制位数:16
包装类:java.lang.Short
最小值:Short.MIN_VALUE=-32768
最大值:Short.MAX_VALUE=32767
基本类型:int 二进制位数:32
包装类:java.lang.Integer
最小值:Integer.MIN_VALUE=-2147483648
最大值:Integer.MAX_VALUE=2147483647
基本类型:long 二进制位数:64
包装类:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808
最大值:Long.MAX_VALUE=9223372036854775807
基本类型:float 二进制位数:32
包装类:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45
最大值:Float.MAX_VALUE=3.4028235E38
基本类型:double 二进制位数:64
包装类:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324
最大值:Double.MAX_VALUE=1.7976931348623157E308
基本类型:char 二进制位数:16
包装类:java.lang.Character
最小值:Character.MIN_VALUE=0
最大值:Character.MAX_VALUE=65535
注意::Character.MIN_VALUE,Character.MAX_VALUE 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台
System.out.println("包装类:java.lang.Character");
System.out.println("最小值:Character.MIN_VALUE="+ (int) Character.MIN_VALUE);
System.out.println("最大值:Character.MAX_VALUE="+ (int) Character.MAX_VALUE);
三、基本类型的直接量!
1)整数型直接量(例如7)会被JVM默认为int类型数据,
将int类型数据赋值给float double long会自动转换 (因为int类型数据长度比他们小)
将int类型数据也可以直接赋值给byte,short类型但是不能超过其类型的范围。
2)浮点型字面量(例如7.0)会被JVM默认为double类型数据,转换比它小的数据类型时候要显式转换,否则要声明字面量类型(例如7.0f)
四、基本类型变量和引用变量的区别:
1.基本变量和用用类别在内存的区别:
基本变量在内存中的变量,对应内存所存储的值为实际值
引用类型来说,对应内存所储存的值为其对象的地址。