1、Byte.SIZE); 5. 包装类:java.lang.Byte);6. 最小值:Byte.MIN_VALUE=Byte.MIN_VALUE);7. 最大值:Byte.MAX_VALUE=Byte.MAX_VALUE);8. System.out.println();9. 10. short 11. shortShort.SIZE);12. java.lang.Short13. Short.MIN_VALUE=Short.MIN_VALUE);14. Short.MAX_VALUE=Short.MAX_VALUE);15. 16. 17. int 18. intInteger.SIZE);1
2、9. java.lang.Integer20. Integer.MIN_VALUE=Integer.MIN_VALUE);21. Integer.MAX_VALUE=Integer.MAX_VALUE);22. 23. 24. long 25. longLong.SIZE);26. java.lang.Long27. Long.MIN_VALUE=Long.MIN_VALUE);28. Long.MAX_VALUE=Long.MAX_VALUE);29. 30. 31. float 32. floatFloat.SIZE);33. java.lang.Float34. Float.MIN_VA
3、LUE=Float.MIN_VALUE);35. Float.MAX_VALUE=Float.MAX_VALUE);36. 37. 38. double 39. doubleDouble.SIZE);40. java.lang.Double41. Double.MIN_VALUE=Double.MIN_VALUE);42. Double.MAX_VALUE=Double.MAX_VALUE);43. 44. 45. char 46. charCharacter.SIZE);47. java.lang.Character48. 以数值形式而不是字符形式将Character.MIN_VALUE输出
4、到控制台 49. Character.MIN_VALUE=50. (int)Character.MIN_VALUE);51. 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台 52. Character.MAX_VALUE=53. Character.MAX_VALUE);54. 55. public class PrimitiveTypeTest public static void main(String args) / byte System.out.println(byte 二进制位数: + Byte.SIZE); + Byte.MIN_VALUE); +
5、Byte.MAX_VALUE); System.out.println(); / shortshort 二进制位数: + Short.SIZE); + Short.MIN_VALUE); + Short.MAX_VALUE); / intint 二进制位数: + Integer.SIZE); + Integer.MIN_VALUE); + Integer.MAX_VALUE); / longlong 二进制位数: + Long.SIZE); + Long.MIN_VALUE); + Long.MAX_VALUE); / floatfloat 二进制位数: + Float.SIZE); + Fl
6、oat.MIN_VALUE); + Float.MAX_VALUE); / doubledouble 二进制位数: + Double.SIZE); + Double.MIN_VALUE); + Double.MAX_VALUE); / charchar 二进制位数: + Character.SIZE); / 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台 + (int) Character.MIN_VALUE); / 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台 + (int) Character.MAX_VALUE); 运行结果:
7、1. 基本类型:8 2. 包装类:java.lang.Byte 3. 最小值:Byte.MIN_VALUE=-128 4. 最大值:Byte.MAX_VALUE=127 5. 6. 基本类型:16 7. 包装类:java.lang.Short 8. 最小值:Short.MIN_VALUE=-32768 9. 最大值:Short.MAX_VALUE=32767 10. 11. 基本类型:32 12. 包装类:java.lang.Integer 13. 最小值:Integer.MIN_VALUE=-2147483648 14. 最大值:Integer.MAX_VALUE=2147483647 15
8、. 16. 基本类型:64 17. 包装类:java.lang.Long 18. 最小值:Long.MIN_VALUE=-9223372036854775808 19. 最大值:Long.MAX_VALUE=9223372036854775807 20. 21. 基本类型:22. 包装类:java.lang.Float 23. 最小值:Float.MIN_VALUE=1.4E-45 24. 最大值:Float.MAX_VALUE=3.4028235E38 25. 26. 基本类型:27. 包装类:java.lang.Double 28. 最小值:Double.MIN_VALUE=4.9E-32
9、4 29. 最大值:Double.MAX_VALUE=1.7976931348623157E308 30. 31. 基本类型:32. 包装类:java.lang.Character 33. 最小值:Character.MIN_VALUE=0 34. 最大值:Character.MAX_VALUE=65535 Float和Double的最小值和最大值都是以科学记数法的形式输出的,结尾的“E+数字”表示E之前的数字要乘以10的多少倍。比如3.14E3就是3.141000=3140,3.14E-3就是3.14/1000=0.00314。大家将运行结果与上表信息仔细比较就会发现float、double
10、两种类型的最小值与Float.MIN_VALUE、Double.MIN_VALUE的值并不相同,这是为什么呢?实际上Float.MIN_VALUE和Double.MIN_VALUE分别指的是float和double类型所能表示的最小正数。也就是说存在这样一种情况,0到Float.MIN_VALUE之间的值float类型无法表示,0到Double.MIN_VALUE之间的值double类型无法表示。这并没有什么好奇怪的,因为这些范围内的数值超出了它们的精度范围。基本类型存储在栈中,因此它们的存取速度要快于存储在堆中的对应包装类的实例对象。从Java5.0(1.5)开始,JAVA虚拟机(Java
11、Virtual Machine)可以完成基本类型和它们对应包装类之间的自动转换。因此我们在赋值、参数传递以及数学运算的时候像使用基本类型一样使用它们的包装类,但这并不意味着你可以通过基本类型调用它们的包装类才具有的方法。另外,所有基本类型(包括void)的包装类都使用了final修饰,因此我们无法继承它们扩展新的类,也无法重写它们的任何方法。各种数值类型之间的赋值与转换遵循什么规律呢?我们来看下面这个例子:给byte类型变量赋值时,数字后无需后缀标识 byte_a=1;编译器会做范围检查,如果赋予的值超出了范围就会报错 byte_b1000;把一个long型值赋值给byte型变量,编译时会报错
12、,即使这个值没有超出byte类型的取值范围 byte_c1L;给short类型变量赋值时,数字后无需后缀标识 short_ashort_b70000;把一个long型值赋值给short型变量,编译时会报错,即使这个值没有超出short类型的取值范围 short_cint_aint_b2200000000;把一个long型值赋值给int型变量,编译时会报错,即使这个值没有超出int类型的取值范围 int_c可以把一个int型值直接赋值给long型变量,数字后无需后缀标识 long_a如果给long型变量赋予的值超出了int型值的范围,数字后必须加L(不区分大小写)标识 long_b2200000
13、000L;long_c9300000000000000000L;可以把一个int型值直接赋值给float型变量 float_a可以把一个long型值直接赋值给float型变量 float_b没有F(不区分大小写)后缀标识的浮点数默认为double型的,不能将它直接赋值给float型变量 float_c1.0;float型数值需要有一个F(不区分大小写)后缀标识 float_d1.0F;把一个double型值赋值给float型变量,编译时会报错,即使这个值没有超出float类型的取值范围 float_e1.0D;float_f3.5000000E38F;可以把一个int型值直接赋值给double
14、型变量 double_a可以把一个long型值直接赋值给double型变量 double_b可以把一个float型值直接赋值给double型变量 double_c1F;不带后缀标识的浮点数默认为double类型的,可以直接赋值 double_d也可以给数字增加一个D(不区分大小写)后缀标识,明确标出它是double类型的 double_e55. double_f1.8000000000000000E308D;56. 57. 把一个double型值赋值给一个byte类型变量,编译时会报错,即使这个值没有超出byte类型的取值范围 58. byte_d59. 把一个double型值赋值给一个sho
15、rt类型变量,编译时会报错,即使这个值没有超出short类型的取值范围 60. short_d61. 把一个double型值赋值给一个int类型变量,编译时会报错,即使这个值没有超出int类型的取值范围 62. int_d63. 把一个double型值赋值给一个long类型变量,编译时会报错,即使这个值没有超出long类型的取值范围 64. long_d65. 66. 可以用字符初始化一个char型变量 67. char_aa;68. 也可以用一个int型数值初始化char型变量 69. char_b70. 把一个long型值赋值给一个char类型变量,编译时会报错,即使这个值没有超出char类型的取值范围 71. char_c72. 把一个float型值赋值给一个char类型变量
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2