Java基本数据类型
1.Java基本数据类型
变量就是申请内存来存储值,也就是说,当创建变量的时候,需要在内存中申请空间。
内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来存储该类型数据。
因此,通过定义不同类型的变量,可以在内存中存储整数、小数或者字符。
Java的两大数据类型:
内置数据类型
引用数据类型
2.内置数据类型
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符型,还有一种布尔型。
float类型(32位):1bit(符号位)8bits(指数位)23bits(尾数位)
double类型(64位):1bit(符号位)11bits(指数位)52bits(尾数位)
实例
对于数值类型的基本类型的取值范围,我们无需强制去记忆,因为它们的值都已经以常量的形式定义在对应的包装类中了。请看下面的例子:
编译以上代码输出结果如下所示:
3.引用数据类型
引用类型变量由类的构造函数创建,可以使用它们访问所引用的对象。这些变量在声明时被指定为一个特定的类型,比如Employee、Pubby等。变量一旦声明后,类型就不能被改变了。
对象、数组都是引用数据类型。
所有引用类型的默认值都是null。
一个引用变量可以用来引用与任何与之兼容的类型。
例子:Animal animal = new Animal(“giraffe”)。
4.Java常量
常量就是一个固定值。它们不需要计算,直接代表相应的值。
常量指不能改变的量,在Java中用final标志,声明方式和变量类似:
虽然常量名也可以用小写,但为了便于识别,通常使用大写字母表示常量。
字面量可以赋给任何内置类型的变量。比如:
byte、int、long、和short都可以用十进制、16进制以及8进制的方式来表示。
当使用常量的时候,前缀o表明是8进制,而前缀Ox代表16进制。例如:
和其他语言一样,Java的字符串常量也是包含在两个引号之间的字符序列。下面是字符串型字面量的例子:
字符串常量和字符常量都可以包含任何Unicode字符。例如:
Java语言支持一些特殊的转义字符序列。
5.机器数
一个数在计算机中的表现形式叫做机器数,这个数有正负之分,在计算机中用一个数的最高位(符号位)用来表示它的正负,其中0代表正数,1代表负数。
例如正数7,在计算机中用一个8位的二进制数来表示,是00000111,而负数-7,则用10000111表示,这里的00000111和10000111是机器数。
6.真数
计算器中的机器数对应的真实的值就是真数,对最高位(符号位)后面的二进制数转换成10进制,并根据最高位来确定这个数的正负。对于上面的00000111和10000111来说,对最高位后面的二进制数转换成10进制是7,在结合最高位的值,得出对应的真数分别是7和-7。
7.原码
用第一位表示符号,其余位表示值。因为第一位是符号位,所以8位二进制数的取值范围就是:[ 1111 1111,0111 1111 ]即[-127,127],原码是容易被人脑所理解的表达方式。
8.反码
正数的补码反码是其本身,负数的反码是符号位保持不变,其余位取反。例如正数1的原码是[0000 0001],它的反码是其本身。
[0000_0001],-1的原码是[1000_0001],其反码是[1111 1110]
9.补码
正数的补码是其本身,负数的补码是在其反码的基础上+1,例如正数1的原码是[0000_0001],它的补码是其本身[0000_0111],
-1的补码是[1111 1111]。
基本数据类型–>包装类
装箱:基本数据类型 转换为 包装类类型
拆箱:包装类类型 转换为 基本数据类型
从jdk1.5开始支持自动装箱和拆箱