一、直接量
1.数字直接量
java支持用十进制、二进制、八进制、十六进制代表数字的直接量,其中二进制、八进制、十六进制需要通过不同的前缀开头。
2.字符直接量
java中通过单引号将字符括起来代表一个字符直接量
一个字符直接量只能代表一个字符,不可以在一个字符直接量中写入多个字符
不允许有空的字符直接量
3.布尔直接量
java中具有布尔类型直接量,代表逻辑判断时的真和假。
布尔类型的直接量只有两个:
二、数据类型的概述
java语言可以处理各种各样不同类型的数据,在java语言中通过数据类型来表征不同的数据的类型,这就是所谓的数据类型的概念。
java中的数据类型主要分为基本数据类型和引用数据类型(复杂数据类型)
三、基本数据类型
1.概述
关于boolean的字节长度尚有争议 下一篇将详细讲解,在此先说为1个字节
2.byte
字节型数字,占用一个字节
可以表示 -2^7 ~ 2^7-1(-128~127)范围的数
其二进制表示形式中,第一个二进制位表示正负,0位正,1位负,其他二进制位表示数值。
在byte类型的最大值上+1 或 最小值上-1都会造成数据溢出,构成环形
3.short
代表短整型数字,占用两个字节。
可以表示 -2^15 ~ 2^15-1(-32768~32767)。
其二进制表示形式中,第一个二进制位表示正负,0位正,1位负,其他二进制位表示数值。
和byte类型类似,在最大值上+1 或 最小值上-1都会造成数据溢出,构成环形
4.int
代表整形数字。占用四个字节。
可以代表 -2^31 ~2^31-1(-2147483648~2147483647)
是java中用的最多的数字类型
java中的数字直接量如果不指定,默认都是int类型
其二进制表示形式中,第一个二进制位表示正负,0位正,1位负,其他二进制表示数值。
和byte类型类似,在最大值上+1 或 最小值上-1都会造成数据溢出,构成环形
5.long
代表长整形数字,占用八个字节。
可以表示 -2^63 ~2^63-1(-9223372036854775808 ~ 9223372036854775807)
所有long型数据直接量都要在数字后面加 l 表示。
其二进制表示形式中,第一个二进制位表示正负,0位正,1位负,其他二进制位表示数值。
和byte类型类似,在最大值上+1 或 最小值上-1都会造成数据溢出,构成环形
6.float
代表单精度浮点数。占用四个字节。
所有float型数据直接量都要在数字后面加f表示。
其二进制表示形式中,第一个二进制位表示正负,0位正,1位负,其他二进制位表示数值。
和byte类型类似,在最大值上+1 或 最小值上-1都会造成数据溢出
浮点数在进行运算时,可能存在精度不准确的问题,且没有办法完全的避免。
1 package DataTaye;
2
3 public class PrecisionProblem {
4 public static void main(String[] args) {
5 System.out.println(0.05+0.01);
6 System.out.println(1.0-0.42);
7 System.out.println(4.015*100);
8 System.out.println(123.3/100);
9 }
10 }
结果:
7.Double
代表双精度浮点数,占用八个字节
所有double型数据直接量可以在数字后加d表示。
如果浮点数没有加 f 或 d ,默认就是double。
浮点数也可以用科学记数法形式表示。例如, 2.1231e3
和byte类型类似,在最大值上+1 或 最小值上-1都会造成数据溢出
浮点数在进行运算时,可能存在精度不准确的问题,且没有办法完全的避免。
例子同上!
8.char
代表字符类型。占用2个字节。
可以代表0~2^16-1 即 0~65535个字符。
对于无法直接显示的符号支持通过转义字符来间接表示。
转义字符以反斜杠开始,后跟一个普通字符来表示,不同转义字符有不同含义:
9.boolean
代表布尔类型,下篇详细讲解。
四、引用数据类型(复杂数据类型)
引用数据类型,通过引用在栈中存放真正目标数据在堆中的内存地址,来进行存储。使用时,通过引用找到栈中存储的内存地址后,最终通过地址在堆中找到真正的目标数据。
数组 对象 ...