老黑讲Java之8种基本类型
1、Java的8种基本类型
Java语言具有8种基本数据类型,分别用来存储整数、浮点数(小数)、字符数据和布尔类型数据(存储真假数据)。

2、int类型
int类型是最常用的类型,一个int类型变量占用4个字节(32位),范围为:-2^31~2^31-1,即-2147483648~2147483647
3、什么是int类型直接量
1、整数直接量是直接写出的整数,如下面老黑的代码,其中10就是直接量。
int a = 10;
2、使用整数直接量,需要注意一下几点(重点知识,不容错过)
1)整数的直接量必须在int的表达范围内,如果超出范围会出现编译错误, 例如下面代码片段:
int a = 2147483648;
//编译错误,直接量2147483648超出int的表达范围
//其实2147483648数值写出来就是错误的,Java编译器默认直接量 写出的整数是int类型,这个数值超过了int表达式。
2)整数的直接量除了通用的十进制表示,还可以用16进制的形式(以0X或0x开头,这里“0”是“零”)或8进制的形式(以0开头),例如:
int a = 2018; //10进制
int b = 0x7e2; //16进制
int c = 03742; //8进制
4、整数类型的除法运算取整
两个整数相除,会舍弃小数部分(不是四舍五入),结果是整数。
public static void main(String[] args) {
int a = 1/2;
System.out.println(a);//a的值为0
int numerator = 100;
int denominator = 20;
int percent = denominator/numerator * 100;
System.out.println(percent+"%");
//结果为0%,20除以100取整数部分为0
percent= 100*denominator/numerator;
//结果为20%,2000除以100整数部位为20
}

5、运算要防止溢出
整数运算溢出情况:两个整数运算时,其结果可能会超出整数的表达范围。整数过大溢出结果为负数,负数过大产生溢出结果为正数,例如:
public static void main(String[] args) {
int a = 2147483647;
int b = -2147483648;
a = a + 1;
b = b - 1;
System.out.println(a); //-2147483648
System.out.println(b); // 2147483647
}

6、long类型
1、一般用int类型表示整数,但如果int类型范围不够,可以使用long类型,一个long型的变量占8个字节(64位),最大表示范围为:-2^63~63-1,即-9223372036854775808~9223372036854775807。
2、表示long直接量,直接量后以L或l结尾。如下:
long a = 10000000000;//编译错误,超出整型表达范围
long b = 10000000000L;
7、long类型数据进行较大整数运算
较大数据运算(超过int的表达式),需要使用long类型。
public static void main(String[] args) {
long distance = 200 * 100000000L;
//较大数值参与运算时,必须有long型数据,结果才为long型
System.out.println(distance);//20000000000
long distance2 = 200*100000000;
//即使较大数参与运算,没有long型数据,运算结果是int类型。
System.out.println(distance2);//-1474836480
}

8、通过时间毫秒数来存储日期和时间
JDK提供Sytem.currentTimeMillis(),返回1970年1月1日零点到此时此刻所经历的毫秒数,其数据类型为long,该方法经常用于计时操作。
public static void main(String[] args) {
long time = System.currentTimeMillis();
System.out.println(time);//结果为1519907659822
}
