一、八大基本数据类型
-
整数型-int
/* 1 int 数据类型是32位、有符号的以二进制补码表示的整数; 2 最小值是 -2,147,483,648(-2^31); 3 最大值是 2,147,483,647(2^31 - 1); 4 一般地整型变量默认为 int 类型; 5 默认值是 0 ; */ int num1 = 10; //最常用
-
整数型-byte
/* 1 byte 数据类型是8位、有符号的,以二进制补码表示的整数; 2 最小值是 -128(-2^7); 3 最大值是 127(2^7-1); 4 默认值是 0; 5 byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一; */ byte num2 = 20;
-
整数型-short
/* 1 short 数据类型是 16 位、有符号的以二进制补码表示的整数 2 最小值是 -32768(-2^15); 3 最大值是 32767(2^15 - 1); 4 Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一; 5 默认值是 0; */ short num3 = 30;
-
整数型-long
/* 1 long 数据类型是 64 位、有符号的以二进制补码表示的整数; 2 最小值是 -9,223,372,036,854,775,808(-2^63); 3 最大值是 9,223,372,036,854,775,807(2^63 -1); 4 这种类型主要使用在需要比较大整数的系统上; 5 默认值是 0L; */ long num4 = 30L; //Long类型要在数字后面加个L
-
浮点型-float
/* 1 float 数据类型是单精度、32位、符合IEEE 754标准的浮点数; 2 float 在储存大型浮点数组的时候可节省内存空间; 3 默认值是 0.0f; 4 浮点数不能用来表示精确的值,如货币; */ float num5 = 50.1F; // Float类型要在数字后面加F
-
浮点型-double
/* 1 double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数; 2 浮点数的默认类型为double类型; 3 double类型同样不能表示精确的值,如货币; 4 默认值是 0.0d; */ double num6 = 3.1415926;
-
字符型-char&String
/* char类型是一个单一的 16 位 Unicode 字符; 最小值是 u0000(即为0); 最大值是 uffff(即为65,535); char 数据类型可以储存任何字符; */ char name1 = '中'; //只能写一个字 char name2 = '国'; char name3 = 'A'; // 字符串,String不是关键字,他是一个类 String namea = "lich";
-
布尔型
/* boolean数据类型表示一位的信息; 只有两个取值:true 和 false; 这种类型只作为一种标志来记录 true/false 情况; 默认值是 false; */ boolean one = true;
二、整数拓展知识
int i1 = 10; //十进制 int i2 = 010; //八进制以0开头通途 int i3 = 0x101; //十六进制以0x开头 System.out.println(i1); System.out.println(i2); System.out.println(i3); //0x101转化为十进制 = 257 // 方法:16^2*1+16^1*0+16^0*0 = 256+0+1 = 257
三、浮点数拓展知识
// 浮点数拓展:float 和 double // float 有限的,离散的,舍入误差,大约,接近但不等于 // 最好完全使用浮点数进行比较 // 最好完全使用浮点数进行比较 // 最好完全使用浮点数进行比较 // ======================================= // BigDecimal 数学工具类,银行业务用这个类来表示 // ======================================= float f = 0.1f; //0.1 double d = 1.0/10; //0.1 System.out.println(f); System.out.println(d); System.out.println(f==d);
四、字符拓展知识
char c1 = 'a'; char c2 = '中'; char c3 = 'u0061'; System.out.println(c1); System.out.println((int)c1); //强制转换为数字类型 System.out.println(c2); System.out.println((int)c2); //强制转换为数字类型 System.out.println(c3); // 与打印c1得到同样的结果,就是查了unicode编码表 // 所有的字符本质还是数字 // 查编码unicode表: 97=a, 20013=中 , 2个字节,可以0~65536
五、转译字符
//转义字符 // 制表符 // 换行 System.out.println("hell world"); //中间多了一个tab的空格 System.out.println("hell world"); //两个单词就被换行了 String sa = new String("com.lich.base.hello world"); String sb = new String("com.lich.base.hello world"); System.out.println(sa==sb); //不相等 String sc = "com.lich.base.hello world"; String sd = "com.lich.base.hello world"; System.out.println(sc==sd); //相等
六、类型转换
// 强制转换 -> (类型)变量名 高-低 int i =128; byte b = (byte) i; //内存溢出问题,byte对应Byte类,里面整数最大值为127 System.out.println(i); //128 System.out.println(b); //-128 // 自动转换 低-高 int j =128; double d = j; System.out.println(j); //128 System.out.println(d); //128.0 /* 1 不能对布尔值进行转换 2 不能把对象类型转换为不想干的类型 3 在把高容量转换到低容量的时候,强制转换 4 转换的时候可能存在内存溢出,或者精度问题提 */ System.out.println((int)23.7); //23 System.out.println((int)-45.89f); //-45 char c = 'a'; int e = c+1; System.out.println(e); //98 System.out.println((char)e);//b