Java基础数据类型
整形
-
byte 占1字节 ,范围 -128 —— 127
-
short 占2字节 ,范围 -32768—— 32767
-
int 占4字节 ,范围 -21亿 —— 21亿 (最常用)
-
long 占8字节 ,范围 很懒得数,比int还多
浮点型
- float 占4字节
- double 占8字节
字符类型
- char 占2字节
布尔类型
- boolean 占1位 1字节 = 8位
面试拓展
整数与浮点数
public class Demo4 {
public static void main(String[] args) {
//面试拓展 二进制0b 八进制0 十进制 十六进制0x
int a1 = 0b10; //二进制 2
int a2 = 010; //八进制 8
int a3 = 0x10; //十六进制 16
System.out.println("a1:"+a1);
System.out.println("a2:"+a2);
System.out.println("a3:"+a3);
System.out.println("========================");
System.out.println(a1+1);
System.out.println(a2+1);
System.out.println(a3+1);
System.out.println("================================================");
//浮点数拓展:
//面试题:银行业务字母怎么表示钱?BigDecimal
//float double 是有问题的,最好要避免使用数比较。
float f1 = 0.1f; //0.1
double d1 = 1.0/10; //0.1
System.out.println(f1==d1); //false
//浮点数 位有限,舍入误差,会约等
float f3 =454545454454f;
float f4 = f3+1;
System.out.println("================================================");
System.out.println(f3==f4);//true
}
}
字符与布尔值
public class demo5 {
public static void main(String[] args) {
//字符拓展:所有字符本身还是数字
char c1 ='a';
char c2 ='中';
System.out.print("c1=");
System.out.println((int)c1); //强制转换为int类型 值 97
System.out.print("c2=");
System.out.println((int)c2);//强制转换为int类型 值 20013
//编码 Unicode表(97=a,65=A)2字节 0-65536
//U000~UFFFF 十六进制(u0061=a,相当于十进制的97)
System.out.print("u0061=");
System.out.println("\u0061");
System.out.println("================================================");
//布尔值拓展
boolean flag = true;
//这两个表达的意思一样
if (flag){}//新手
if (flag==true){}//老手这样写 Less is More(代码要精简易读)
}
}