JAVA面试题解惑系列(八)——聊聊基本类型(内置类型)

上传人:飞*** 文档编号:3750732 上传时间:2017-08-11 格式:DOC 页数:19 大小:189.50KB
返回 下载 相关 举报
JAVA面试题解惑系列(八)——聊聊基本类型(内置类型)_第1页
第1页 / 共19页
JAVA面试题解惑系列(八)——聊聊基本类型(内置类型)_第2页
第2页 / 共19页
JAVA面试题解惑系列(八)——聊聊基本类型(内置类型)_第3页
第3页 / 共19页
JAVA面试题解惑系列(八)——聊聊基本类型(内置类型)_第4页
第4页 / 共19页
JAVA面试题解惑系列(八)——聊聊基本类型(内置类型)_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《JAVA面试题解惑系列(八)——聊聊基本类型(内置类型)》由会员分享,可在线阅读,更多相关《JAVA面试题解惑系列(八)——聊聊基本类型(内置类型)(19页珍藏版)》请在金锄头文库上搜索。

1、JAVA 面试题解惑系列(八)聊聊基本类型(内置类型)基本类型,或者叫做内置类型,是 JAVA 中不同于类的特殊类型。它们是我们编程中使用最频繁的类型,因此面试题中也总少不了它们的身影,在这篇文章中我们将从面试中常考的几个方面来回顾一下与基本类型相关的知识。 基本类型共有九种,它们分别都有相对应的包装类。关于它们的详细信息请看下表: 对于基本类型 void 以及它的包装类 java.lang.Void,我们都无法直接进行操作。基本类型可以分为三类,字符类型 char,布尔类型 boolean 以及数值类型byte、short、int、long、float、double。数值类型又可以分为整数类

2、型byte、short、int、long 和浮点数类型 float、double。JAVA 中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变。对于数值类型的基本类型的取值范围,我们无需强制去记忆,因为它们的值都已经以常量的形式定义在对应的包装类中了。请看下面的例子:Java 代码 1. public class PrimitiveTypeTest 2. public static void main(String args) 3. / byte 4. System.out.println(基本类型:byte 二进制位数: + Byte.SIZE)

3、; 5. System.out.println(包装类:java.lang.Byte); 6. System.out.println(最小值:Byte.MIN_VALUE= + Byte.MIN_VALUE); 7. System.out.println(最大值:Byte.MAX_VALUE= + Byte.MAX_VALUE); 8. System.out.println(); 9. 10. / short 11. System.out.println(基本类型:short 二进制位数: + Short.SIZE); 12. System.out.println(包装类:java.lang.

4、Short); 13. System.out.println(最小值:Short.MIN_VALUE= + Short.MIN_VALUE); 14. System.out.println(最大值:Short.MAX_VALUE= + Short.MAX_VALUE); 15. System.out.println(); 16. 17. / int 18. System.out.println(基本类型:int 二进制位数: + Integer.SIZE); 19. System.out.println(包装类:java.lang.Integer); 20. System.out.printl

5、n(最小值:Integer.MIN_VALUE= + Integer.MIN_VALUE); 21. System.out.println(最大值:Integer.MAX_VALUE= + Integer.MAX_VALUE); 22. System.out.println(); 23. 24. / long 25. System.out.println(基本类型:long 二进制位数: + Long.SIZE); 26. System.out.println(包装类:java.lang.Long); 27. System.out.println(最小值:Long.MIN_VALUE= + L

6、ong.MIN_VALUE); 28. System.out.println(最大值:Long.MAX_VALUE= + Long.MAX_VALUE); 29. System.out.println(); 30. 31. / float 32. System.out.println(基本类型:float 二进制位数: + Float.SIZE); 33. System.out.println(包装类:java.lang.Float); 34. System.out.println(最小值:Float.MIN_VALUE= + Float.MIN_VALUE); 35. System.out.

7、println(最大值:Float.MAX_VALUE= + Float.MAX_VALUE); 36. System.out.println(); 37. 38. / double 39. System.out.println(基本类型:double 二进制位数: + Double.SIZE); 40. System.out.println(包装类:java.lang.Double); 41. System.out.println(最小值:Double.MIN_VALUE= + Double.MIN_VALUE); 42. System.out.println(最大值:Double.MAX_

8、VALUE= + Double.MAX_VALUE); 43. System.out.println(); 44. 45. / char 46. System.out.println(基本类型:char 二进制位数: + Character.SIZE); 47. System.out.println(包装类:java.lang.Character); 48. / 以数值形式而不是字符形式将 Character.MIN_VALUE 输出到控制台 49. System.out.println(最小值:Character.MIN_VALUE= 50. + (int) Character.MIN_VA

9、LUE); 51. / 以数值形式而不是字符形式将 Character.MAX_VALUE 输出到控制台 52. System.out.println(最大值:Character.MAX_VALUE= 53. + (int) Character.MAX_VALUE); 54. 55. 运行结果: 1. 基本类型:byte 二进制位数:8 2. 包装类:java.lang.Byte 3. 最小值:Byte.MIN_VALUE=-128 4. 最大值:Byte.MAX_VALUE=127 5.6. 基本类型:short 二进制位数:16 7. 包装类:java.lang.Short 8. 最小值:

10、Short.MIN_VALUE=-32768 9. 最大值:Short.MAX_VALUE=32767 10.11.基本类型:int 二进制位数:32 12.包装类:java.lang.Integer 13.最小值:Integer.MIN_VALUE=-2147483648 14.最大值:Integer.MAX_VALUE=2147483647 15.16.基本类型:long 二进制位数:64 17.包装类:java.lang.Long 18.最小值:Long.MIN_VALUE=-9223372036854775808 19.最大值:Long.MAX_VALUE=92233720368547

11、75807 20.21.基本类型:float 二进制位数:32 22.包装类:java.lang.Float 23.最小值:Float.MIN_VALUE=1.4E-45 24.最大值:Float.MAX_VALUE=3.4028235E38 25.26.基本类型:double 二进制位数:64 27.包装类:java.lang.Double 28.最小值:Double.MIN_VALUE=4.9E-324 29.最大值:Double.MAX_VALUE=1.7976931348623157E308 30.31.基本类型:char 二进制位数:16 32.包装类:java.lang.Chara

12、cter 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 两种类型的最小值与 Float.MIN_VALUE、Double.MIN_VALUE 的值并不相同,这是为什么呢?实际上 Float.MIN_VAL

13、UE 和 Double.MIN_VALUE 分别指的是 float 和 double 类型所能表示的最小正数。也就是说存在这样一种情况,0 到Float.MIN_VALUE 之间的值 float 类型无法表示,0 到Double.MIN_VALUE 之间的值 double 类型无法表示。这并没有什么好奇怪的,因为这些范围内的数值超出了它们的精度范围。 基本类型存储在栈中,因此它们的存取速度要快于存储在堆中的对应包装类的实例对象。从 Java5.0(1.5)开始,JAVA 虚拟机(Java Virtual Machine)可以完成基本类型和它们对应包装类之间的自动转换。因此我们在赋值、参数传递以

14、及数学运算的时候像使用基本类型一样使用它们的包装类,但这并不意味着你可以通过基本类型调用它们的包装类才具有的方法。另外,所有基本类型(包括 void)的包装类都使用了 final 修饰,因此我们无法继承它们扩展新的类,也无法重写它们的任何方法。 各种数值类型之间的赋值与转换遵循什么规律呢?我们来看下面这个例子: Java 代码 1. public class PrimitiveTypeTest 2. public static void main(String args) 3. / 给 byte 类型变量赋值时,数字后无需后缀标识 4. byte byte_a = 1; 5. / 编译器会做范围检查,如果赋予的值超出了范围就会报错 6. / byte byte_b = 1000; 7. / 把一个 long 型值赋值给 byte 型变量,编译时会报错,即使这个值没有超出 byte 类型的取值范围 8. / byte byte_c = 1L; 9. 10. / 给 short 类型变量赋值时,数字后无需后缀标识 11.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 人力资源管理师

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号