一、java基本数据类型
1、java基本数据类型可分四类八中
第一类:整形:byte、short、int、long
第二类:浮点型:float(单精度) 、double(双精度)
第三类:逻辑类型:boolean(只包含:True或False)
第四类:字符型:char
所占字节:
boolean(布尔型) :1/8
byte(字节类型):1
char(字符型):2 一个字符能存储一个中文汉字
short(短整型):2
long(长整型):8
int(整形):4
float(单精度):浮点类型 4
double(双精度类型):8
【java中默认中的整形类型是Int类型,如果需要定义为float类型,则要在数值后面加上"l"或"L";默认的浮点型也是双精度浮点,如果需要定义为Float型,则需要在数值后加上“f”或“F”】
基础知识:
一个字节等位8位,一个字长等于256个数,就是-128至127一共256,kB就是kBytes(kBytes就是字节意思),1Byte(字节) = 8bit(比特)
一个汉字就是两个字节,占用两个字节,
一个字母或者一个阿拉伯数字就是一个字节,占用一个字节
一般讲大小写是用Byte,大写的“B”,讲网络的速率使用bit,小写“b”
二、基本数据之间转换
1、基本数据类型自动转换
当容量小的数据类型于容量大的数据类型运算时,容量小的数据类型会自动转换至容量大的数据类型:
char,byte,short ==>int ===>long ==>float ==double
char,byte,short之间不会相互转换,他们三者在计算时首先转换至int类型
当把任何基本数据类型的值和字符串进行连接运算时(+),基本类型的值将自动回转换至字符串类型
【容量小的可转容量大的,容量大的转容量小的会失去精度】
//java数据之间转换分为基本数据转换和强制转换
//基本数据之间的转换
public class App
{
public static void main( String[] args )
{
//自动转换类型:当容量小的数据类型于容量大的数据类型运算时,容量小的数据类型会自动转换至
// 容量大的数据类型:char,byte,short ==>int ===>long ==>float ==double
int i1 = 11; //整形
short s1 = 12;
int i2 = i1+s1;
float f1 = 13.3F;
float f2 = s1+ i2;
// System.out.println( s3 );
long l = 12L;
float f3 =l;
System.out.println( i2);//输出:23 int
System.out.println( f2);//输出:35.0浮点型 char c1 ='a';//97
c1 = 'A'; //65 aissl码对应数字为65
int i3 = c1+1;
System.out.println(i3); //输出:66 //注意:当char\byte\short之间做运算时,默认的结果显示为int类型
short ss1 = 12;
byte bb1 = 1;
char cc1 = 'a';
// short ss2 = ss1+bb1; //报错,不能转换至short类型
int ii1 = ss1 +bb1;
// short ss2 = ss1+bb1;//报错,不能转换至short类型
System.out.println(ii1);//输出:13
int ii2 =cc1 + bb1;
short ss2 = 11;
// short ss3 = ss1 + bb1;
//强制转换:将容量大的转换为容量小的
//问题:会导致精度的损失
long q1 = 1234L;
//添加强制转换符号()并在括号中添加转换的类型
int m1 = (int)q1;//将长整型转换至整形
System.out.println(m1);
//字符串:String
String k1 = "lcj";
System.out.println(k1); //输出lcj
//字符串和基本数据类型之间的运算:只能用到“+”进行连接,运算结果任然是一个字符串形式
String str = "xiaoluo";
int k3 = 123;
String str01 = str + k3;
System.out.println(str01); //输出:xiaoluo123
}
}