码迷,mamicode.com
首页 > 编程语言 > 详细

再回首,Java温故知新(三):Java基本数据类型之整型

时间:2015-05-27 00:36:51      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:

  注:因为此次学习打算看一遍相关Java源码,所以更新速度一开始会相对慢一些。还有就是不得不佩服那群大牛啊,算法不是一时半会能懂的,本来打算直接弄懂的,后来感觉这样效率太低了,所以决定大体上通读一遍,反正以后肯定还会回来再次学习。

  Java作为一种强类型语言,意味着每一个变量都会有特定的类型,Java共有8种基本类型,其中有4种整型(byte、short、int、long)、两种浮点型(float、double)、1种字符型(char)和一种布尔型(boolean),值得注意的是,虽然字符串String非常常用,但是它却不属于基本类型。

  一、整型

  整型在表示没有小数部分的数值,允许负数(Java中没有无符号类型,即unsigned),计算机中的存储信息的最小单位是位(bit),存储容量的基本计量单位是字节(Byte),一个字节占8个位,整型数据的取值范围根据其存储的位数计算,即2的N次方,例如byte类型占1个字节,占8个位,所以共有256个值,负数包括-128~-1,正数包括0~127。同理,整型数据的存储需求和取值范围如下:

类型 存储需求(字节) 取值范围
byte 1 -128 ~ 127
short 2 -32768 ~ 32767
int 4 约等于-21亿 ~ 21亿
long 8 正常使用中不太可能溢出,范围约为-92亿亿 ~ 92亿亿

  另外在程序中处理整型数据时可能会用到各种类型的写法,以下列出几种常用的:

写法 含义 备注
12345 十进制 与书面相同
12345L 十进制,长整型(long) 如果数值大于int型数据的最大值却没有加L,会报错
012345 八进制 不推荐,易混淆
0x12345 十六进制 二进制数据的另类表示法,便于书写和记忆
0b10010101 二进制 Java 7新加入的写法,之前版本不支持
1_000_000 字面量分割 与书面中1,000,000相同,Java 7新加入的写法,编译器会自动忽略下划线

   以下是在大体上略一遍源码时的疑问及解答:

 1.Integer.parseInt和Integer.valueOf有什么区别?

  parseInt返回的是int型数据,而valueOf返回的是Integer封装类型,后者可以调用Integer中的API进行其他操作。

 2.Integer.getInteger是干什么用的?

  在日常开发中接触较少,用来获取系统参数的,源码中调用System.getProperty(String key),然后使用decode进行解析

 3.Integer.decode和Integer.valueOf有什么区别

  前者可以解析0x,#等表示的其他进制,而后者只能转换十进制

 还需要注意的地方有,Byte和Short的compareTo是直接计算差值,即a-b,而Integer和Long的compareTo却是返回-1、0和1;Byte、Short、Integer的hashCode()为返回当前数值的int值,而Long类型的处理方法为return (int)(value ^ (value >>> 32));

再回首,Java温故知新(三):Java基本数据类型之整型

标签:

原文地址:http://www.cnblogs.com/aotian/p/4528858.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!