java数据类型分为基本数据类型和引用数据类型
一、八大基本数据类型(变量名指向具体的数值):
boolean bl = true;//1字节
byte b = 1;//1字节
char c = '2';//2字节,不可转
short s =3;//2字节
int i = 4;//4字节
float f =5;//4字节
double d = 6;//8字节
long l = 7;//8字节
1.数值型
(整数):byte、short、int、long
byte(字节型)
默认值:0
short(短整型)
默认值:0
int(整形)
默认值:0
long(长整型)
默认值:0L
(浮点):float、double
float(单精度浮点型)
默认值:0.0F
double(双精度浮点型)
默认值:0.0
2.字符型
char(字符型)
默认值:‘\u0’
3.布尔类型(boolean):
booolean(布尔型)
默认值:false
具体占用多少字节视情况而定,true和false占1位
或者
数据类型转换
1.转化从低级到高级:byte,short,char(三者同级)—> int —> long—> float —> double
小数优先于整数
2.低级—> 高级:自动类型转换 高级—> 低级:强制类型转换
3.强制类型转换可能找出数据丢失,内存溢出,精度问题,不能对布尔进行转换
4.整形转换为字符型char,都要强制类型转换。
5.整数之间进行转换,不管什么类型,最后都默认为int。除了有long在,就为long
直白解释强制转换:本来就是高级的,想要转成低级的
强制数据转换例子:(高—>低)
强制转换方法:在要转换的字符前要加上(要转换的类型)
运行结果
超过值范围:导致内存溢出就会发生补码
运行结果
自动类型转换例子:(低—>高)
自动转换方法:转换不用加(要转换的数据类型)
自己本身低级,想要变成高级的
运行结果
默认转换大全
package learn; public class WrongCode { public static void main(String[] args) { byte b = 1;//1字节 short s = 2;//2字节 int i = 3;//4字节 long l =4;//8字节 float f = 5F;//4字节 double d = 6;//8字节 //byte转其他类型 short s1 =b; int i1 = b; long l1 =b; float f1 =b; double d1 =b; //short转其他类型 int i2=s; long l2=s; float f2=s; double d2=s; //int转其他类型 long l3 = i; float f3 = i; double d3 = i; //long转其他类型 float f4 =l; double d4 =l; //float转其他类型 double d5 = f; //double转其他类型 } }
强制转换大全
package learn; public class WrongCode { public static void main(String[] args) { byte b = 1;//1字节 short s = 2;//2字节 int i = 3;//4字节 long l =4;//8字节 float f = 5F;//4字节 double d = 6;//8字节 //byte转其他类型 //short转其他类型 byte s2 =(byte)s; //int转其他类型 byte b3 = (byte) i; short s3 = (short) i; //long转其他类型 byte b4 = (byte) l; short s4 = (short) l; int i4= (int) l; //float转其他类型 byte b5 = (byte) f; short s5= (short) f; int i5 = (int) f; long l5 = (long) f; //double转其他类型 byte b6 = (byte) d; short s6 = (short) d; int i6 = (int) d; long l6 = (long) d; float f6 = (float) d; } }
二、 引用数据类型(指向存数据的内存地址):
默认值都为null
1.数组
2.接口
3.类
注意:String类型也属于类(引用数据类型)
String