一.简单数据类型
1.逻辑类型
常量:true,false
变量:使用关键字boolean来声明逻辑变量,声明时也可同时赋值
例:boolean x,ok = true,关闭 = flase;
2.整数类型
①int型
常量:123(十进制),077(八进制),0x3A(十六进制)
变量:用关键字int来声明int型变量,声明时也可同时赋值
例:int a,b = 12;
内存分配4个字节(4B),取值范围:-~-1
②byte型
常量:Java不存在byte型的常量,但可以将一定范围内的int型常量赋值给byte型变量。
变量:使用关键字byte来声明
例:byte x = -12,tom = 28,漂亮 = 18;
内存分配1个字节,占8位,取值范围:-~-1
③short型
常量:Java不存在short型的常量,但可以将一定范围内的int型常量赋值给short型变量。
变量:使用关键字short来声明
例:short x = 12,y;
内存分配2个字节,占16位,取值范围:-~-1
④long型
常量:long型常量使用后缀L来表示(例108L(十进制)、01732(八进制)等)
变量:使用关键字long来声明
例:long width = 21L,height = 2005L,length;
内存分配8个字节,占64位,取值范围:-~-1
3.字符类型
常量:'A','a','?','好'等,用单引号扩起来的Unicode表中的一个字符
变量:使用关键词char来声明
例:char x = 'a'; ———1
char x = 97; ———2
允许1式写成2式,97对应的在Unicode表中的字符是'a'。
另外,有些字符(如回车符)不能通过键盘输入到字符串或程序中,这时就需要使用转义字符常量,例如:
\n(换行),\t(水平制表),\b(退格),\'(单引号),\\(反斜线)等。
例:char ch1 = ' \n ',char2 = ' \" ';
⚠️学过C语言的小伙伴注意了!!与C语言不同的是Java中系统为char类型分配的是2个字节,取值范围是0~65535,所以java中就可以char a = '好';
4.浮点类型
①float型
常量:454.34f,134f,231.0f(小数表示法),2e40f(指数表示法)
❗️常量后面必须要有后缀f或F。(如果不加,会被默认为double型常量)
变量:使用关键字float来声明
例:float x = 22.3f,tom = 123.455f;
float变量在储存float型数据时保留8位有效数字(实际精度取决于具体数值)
内存分配4个字节,占32位,取值范围大约是~和-~
②double型
常量:238.6555,572d,0.05,1e—90。对于double型常量,后缀d或D可以省略
变量:使用关键字double来声明
例:double height = 23.345,width = 34.56D;
内存分配8个字节,占64位,取值范围大约是~和-~
二.自动类型转换和强制类型转换
当我们把一种基本类型变量赋值给另一种基本类型变量时,就会涉及数据转换
1.自动类型转换
当把级别低的的变量的值赋给级别高的变量时,系统完成自动类型转换。
❗️char、byte、short类型变量之间做运算,结果为int类型
例如:
public class test_1{
public static void main(String args[]){
short x = 23;
char s = 'a';
short y = x + s;
System.out.println(y);
}
}
2.强制类型转换
当把级别高的变量的值赋给级别低的的变量时,必须使用显式类型转换运算。
显式转换的格式:(类型名)要转换的值;
例如:
public class test_2{
public static void main(String args[]){
long L1=12L;
int a1=(int)L1;
System.out.println(L1);
System.out.println(a1);
}
}