2.2基本数据类型
1.逻辑类型:boolean
-
常量:true false
-
boolean类型的值只有true和false两种逻辑值
-
用boolean声明逻辑变量,声明时可以赋给初值
列如:
boolean male=true/*给初值*/,on=true/*给初值*/,off=false/*给初值*/,isTriangle; isTriangle=true;/*先声明再给值*/ if(isTriangle==false) { System.out.println("小哥哥"); } else { System.out.println("小姐姐"); } System.out.println(male); System.out.println(on); System.out.println(off); 运行结果: 小姐姐 true true false
2.整数类型(int byte short long)
a.int型
-
分配4个字节,因此,取值范围是:-231~231-1。
-
用int声明int型变量,声明时可以赋给初值;声明的值可以改变,在int前加final后不能改变,因为加final后是个常量了不能改变。
列如:
int i=100,j=200;/*给初值i,j*/ System.out.println(i); System.out.println(j); i=1;/*改变初值i*/ System.out.println(i); System.out.println(j); 运行结果: 100 200 1 200
b.byte型
-
分配1个字节,因此,取值范围是:-27~27-1。如果声明一个byte型变量大于127,则127后面是-128,-127·····,形成-128~127的周期循环
列如:
byte a=(byte)128;//由于128大于取值范围则需要加上byte进行转换 System.out.println(a); 结果: -128
-
java中不存在byte型常量的表示法(不是说不能加final),但可以把一定范围的int型常量赋值给byte型常量。
c.short型
-
分配2个字节,取值范围:-215~215-1。
-
java中不存在short型常量的表示法(不是说不能加final),但可以把一定范围的int型常量赋值给short型常量。
d.long型
分配8个字节,取值范围:-263~263-1
long型常量用后缀L来表示。
3.数据类型:char
-
分配2个字节,取值范围:0~65535。没有负数的char
-
对于 char x='a'; 内存x中存储的是97,97是字符a在Unicode表中的位置。
char x='b',y=67; System.out.println(x); System.out.println(y); 结果: b C
3.特殊符号,需要通过\转译。
列如:
char x='\\',y='\"'; System.out.println(x); System.out.println(y); 结果: \ "
4.十六进制转译 需要u做前缀 格式为 :‘\u····’
列如:0041(十六进制数)=65(二进制) 65在Unicode中对应A
char x='\u0041',y='\u0061'; System.out.println(x); System.out.println(y); 结果: A a
char举例
public class Hello2 { public static void main(String[] args) { char chinaWord='好',japanWord='あ'; char you ='\u4F60'; int position=20320; System.out.println("汉字:"+chinaWord+" 的位置:"+(int)chinaWord); System.out.println("日文:"+japanWord+" 的位置:"+(int)japanWord); System.out.println(position+" 位置上的字符是:"+(char)position); position=21319; System.out.println(position+" 位置上的字符是:"+(char)position); System.out.println("you: "+you); } }
4.浮点类型:float double
a.float(单精度)
-
常量后面必须要有后缀 f 或 F 例如:12.123f
-
分配4个字节
-
float 变量在存储float型数据时保留8位有效数字(相对double型保留的的有效数字,称之为单精度)。例如,将常量12345.123456789f 赋值给float 变量x :x=12345.123456789f。那么,x存储的实际值是:12345.123046875(8位有效数字,加粗的是有效数字)。
b.double(双精度)
-
常量后面有后缀d或D,可以省略
-
分配8个字节
-
double 变量在存储double型数据时保留16位有效数字(相对double型保留的的有效数字,称之为双精度)
float与double
public class Hello { public static void main(String[] args) { float x=12345.1234567890f; double y=12345.102030405060708090; System.out.println(x); System.out.println(y); } } 结果: 12345.123 12345.10203040506
注:float x=0.4f double y=0.4 x!=y