数据类型表
数据类型占位字节
Java语言的整型常量默认是int型,声明long型变量后加上‘l’或‘L,因小写的l容易和数字1相混淆,建议使用大写L。
默认情况下,一个整型的字面量默认是int类型.
字符类型讲解
- 小数类型(float-double):float、double类型:
表示小数类型又称为浮点类型,其中float表示单精度类型,double表示双精度类型,但是二者都不能表示精确的小数。
两种表现形式:
十进制形式: 例如:3.14 ,168.0, .618
科学计数法形式: 例如:3.14e2, 3.14E2, 1000E-2
科学计数法表达式返回的结果是double类型。
默认情况下,一个浮点类型的字面量默认是double类型.若要声明一个常量为float型,则需在常量后加上f 或 F,double常量后面的D或d可省略。
注意:Java里只有浮点型的变量才可以接受科学计算式结果:
因为float和double都不能精确的表示小数,那么在精度要求高的系统比如银行系统里,那怎么表示精确的小数呢?后面我们会讲BigDecimal类型,它表示任意精度的数据。
- 字符类型(char):字符,字母和符号.
char类型:表示16位的无符号整数或者Unicode字符,Java对字符采用Unicode字符编码。
Unicode收集了世界上所有语言文字中的符号,是一种跨平台的编码方式,Java的字符占两个字节,可以表示一个汉字。
什么是编码?
计算机只能表示0和1两个数,于是人们做规定使用一个数字去表示一个特定的字符,比如a使用97表示。
char前256个字符和ASCII(美国信息交互标准编码)码中的字符重复。
- char常量有3种表示形式:
① 直接使用单个字符来指定字符常量,格式如'◆'、'A','7';
② 直接作为十进制整数数值使用,但是数据范围在[0,65535],格式如97,但是打印出来的值依然是ASCII码表对于的符号,如97打印出来是字符a。
③ 和2一样,只不过表示的是16进制的数值,格式如'\uX',X表示16进制整数;如:97的16进制是61。那么表示为‘\u0061’打印出来也是a。
所以有人说char本质上也是整型,也是有道理的。
char前256个字符和ASCII(美国信息交互标准编码)码中的字符重复,可查表。
- String字符串
除了8种基本数据类型,其他所有类型都是引用数据类型,包括类、接口、数组。引用数据类型默认初始值都是null。
String是一个类,字符串使用 "" 括起来的,连接字符串使用 “+”符号。
public class Test {
public static void main(String[] args) {
System.out.println( 8 + 7 +"hello");
System.out.println( 8 + "hello" + 7);
String str = 17 + "AAA";
System.out.println(str);
}
}
数据过大和溢出
当要表示的数据超出数据类型的临界范围时,称为溢出。溢出情况发生时程序并没有做数据范围检查处理,此时会出现数据紊乱情况。
public class Test {
public static void main(String[] args) {
int max = 2147483647;
//让max变量的值加1之后,再赋值给max变量
max = max +1;
System.out.println("最大值"+max); //-2147483648
int min = -2147483648;
min = min - 1;
System.out.println("最小值"+min); //2147483647
}
}