一.基本数据类型
- 字节型:使用byte表示。(1字节表示-128~127之间的256个整数)
- 短整型:使用short表示。16位(2字节)-32768-32767
- 整型:使用int表示。32位(4字节)-2147483648-2147483647
- 长整型:使用long表示。64位(8字节)-9233372036854477808-9233372036854477807
- 单精度浮点型:使用float表示(4字节)
- 双精度浮点型:使用double表示(8字节)
- 字符型:使用char表示。(2字节)
- 布尔型:使用boolean表示。(1位)true false
二.类型转换
1.自动类型转换
低 ------------------------------------> 高
byte,short,char—> int —> long—> float —> double
自动转换的意思并不是编译器可以自动从低精度转换到高精度,而是再从低精度转化到高精度的时候不会造成精度的流失。
public static void main(String[] args) {
int a=2147483647;//int的最大值是2147483647
a++;
System.out.println(a);//输出-2147483648
}
这种不是自动转换,而是数据溢出。
public static void main(String[] args) {
int a=200;
System.out.println((long)a);//虽然输出的数值还是200,但是这里的a已经不是int类型而是long型
}
2.强制类型转换
强制转换是将高精度转换到低精度,但是会造成精度的流失,甚至还会转换为一个毫无意义的数字
public static void main(String[] args) {
int a=200;
System.out.println((byte)a);//
/*这里输出的是-56,因为byte类型的最大值是127,如果byte赋值时128打印出-128,赋值129打印出-127以此类推*/
}
public static void main(String[] args) {
double a=123.34;
System.out.println(a);//这里打印123.34
System.out.println((int)a);//这里打印123,就是因为高精度向低精度转换才造成了数据精度丢失
}
三.常量的声明规范
所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
final 常量名=值
final double PI=3.14
常量名一般使用大写字符。
程序中使用常量可以提高代码的可维护性。
四.final关键字的用法
1.被final定义的父类不能被子类继承。
2.父类中被final定义的方法在子类中不能被重写。
3.被final定义的常量在后面不能被重新赋值。
4.
a.必须初始化值。
b.被fianl修饰的成员变量赋值,有两种方式:1、直接赋值 2、全部在构造方法中赋初值。
c.如果修饰的成员变量是基本类型,则表示这个变量的值不能改变。
d.如果修饰的成员变量是一个引用类型,则是说这个引用的地址的值不能修改,但是这个引用所指向的对象里面的内容还是可以改变的。
[1]https://www.cnblogs.com/xuejiangbo/p/6686619.html
[2]http://baijiahao.baidu.com/s?id=1601084106055683243&wfr=spider&for=pc
[3]https://blog.youkuaiyun.com/wanghuiwei888/article/details/78691458
[4]https://www.cnblogs.com/zyx110/p/10621799.html
[5]https://blog.youkuaiyun.com/sinat_41655101/article/details/79252340
[6]http://www.runoob.com/java/java-basic-datatypes.html