基本数据类型
boolean、byte、short、int、long、char、float、double
最大最小值
boolean blean = true; //true or false byte maxByte = Byte.MAX_VALUE; //127 byte minByte = Byte.MIN_VALUE; //-128 short maxShort = Short.MAX_VALUE; //32767 short minShort = Short.MIN_VALUE; //-32768 int maxInt = Integer.MAX_VALUE; //2147483647 int minInt = Integer.MIN_VALUE; //-2147483648 long maxLong = Long.MAX_VALUE; //9223372036854775807 long minLong = Long.MIN_VALUE; //-9223372036854775808 //16位Unicode字符;可以储存任何字符; char maxChar = Character.MAX_VALUE; //uffff(即为65535) char minChar = Character.MIN_VALUE; //u0000(即为0) //浮点数不能用来表示精确的值 //单精度、32位、符合IEEE 754标准的浮点数; float maxFloat = Float.MAX_VALUE; //3.4028235E38 float minFloat = Float.MIN_VALUE; //1.4E-45 //双精度、64 位、符合IEEE 754标准的浮点数; double maxDouble = Double.MAX_VALUE; //1.7976931348623157E308 double minDouble = Double.MIN_VALUE; //4.9E-324
数值转换
自动转换(容量小的类型转换为容量大的类型时)
byte,short,char—> int —> long—> float —> double
强制转换(容量大的类型转换为容量小的类型时)
可能会溢出,丢失精度。
我的疑问
1、什么是IEEE 754标准的浮点数?
一种浮点数运算标准。
2、浮点型值的表达式含义(4.9E-324)?
科学计数法,aEb=a×10^b。
3、浮点型不能用来表示精确的值,那用什么类型?
使用BigDecimal(Java提供的一个不变的、任意精度的有符号十进制数对象)
4、现在各种各样的字符很多,char可以存储任何字符吗?
不能,Java采用的是16位的Unicode字符集,只能表示65536个字符。
5、byte类型常用来做什么?
传输文件
有趣现象
System.out.println("maxInt:" + maxInt); System.out.println("maxInt + 1:" + (maxInt + 1)); System.out.println("(int)(2147483647 + 1):" + (int)(2147483647 + 1)); //当其中一个是浮点型,计算值大于最大值时,强制类型转换后,等于最大值。小于最小值同理。 System.out.println("(int)(2147483647f + 1):" + (int)(2147483647f + 1)); System.out.println("2147483647f + 1:" + 2147483647f + 1); maxInt:2147483647 maxInt + 1:-2147483648 (int)(2147483647 + 1):-2147483648 (int)(2147483647f + 1):2147483647 2147483647f + 1:2.14748365E91