public class DataType {
//empty field
public static void main(String[] args){
DataType d = new DataType();
d.primitiveType();
d.referenceType();
d.extension();
}
//default constructor
public DataType(){
}
public void primitiveType(){
//8 primitive type
//整数
int num1 = 10;
byte num2 = 20;
short num3 = 30;
long num4 = 40L; //long类型在数字后加个L
System.out.println(num4);//40
//小数
float num5 = 50.1154F; //加个F区别于double
double num6 = 3.13;
System.out.println(num5);//50.1
System.out.println(num6);//3.13
//字符(字符串String不是基本数据类型2,不是关键字不变色,他是类)
char name = 'A';
//boolean
boolean flag = true;
}
public void referenceType(){
System.out.println("reference type include class/index/API");
}
public void extension(){
//整数扩展: 进制: 二进制0b 十进制 八进制0 十六进制0x
int i1 = 10;
int i2 =010;
int i3 =0x10;
System.out.println(i1);//10
System.out.println(i2);//8
System.out.println(i3);//16
System.out.println("==========");
//jdk7起,数字之间可以加下划线便于确认位数
int money = 10_0000_0000;
int years = 20;
int total1 = money*years;//负数,内存溢出
long total2 = money*years;//负数,转换之前已经内存溢出
long total3 = (long)money*(long)years;
System.out.println(total3);
System.out.println("==========");
//浮点数扩展 有限 舍入误差 接近但不等于
//所以涉及大数额、银行、判断比较时 一定要避免浮点数
//BigDecimal 用这个来取代浮点数
float f = 0.1f;
double d = 1.0/10;
System.out.println(f==d);//false
System.out.println(d);
System.out.println(f);
System.out.println("==========");
//字符类扩展 (type)var 强制转换
//所有字符本质还是数字0101 Unicode编码为2字节长度 所以 0-65536
char c1 = 'a';
char c2 = '康';
System.out.println(c1);
System.out.println((int)c1);
System.out.println(c2);
System.out.println((int)c2);
//转义字符
// \t 制表符
// \n 换行
System.out.println("Hello\tWorld");
System.out.println("==========");
}
}
补充:
不同类型的数据会开辟出不同大小的空间来储存