《java核心卷1知识点与阅读心得》第二篇——数据类型
前言
本章主要讲解《java核心卷1》中的数据类型与变量常量的知识点以及阅读心得
参考书籍《Java核心技术卷1》
文章目录
- 《java核心卷1知识点与阅读心得》第二篇——数据类型
- 前言
- 一.整形
- 二.浮点型
- 三.char类型
- 四.boolean类型
- 五. 总结
一.整形
java提供了四种整形,如下:
类型 | 存储需求 | 取值范围 |
long | 8字节 | ~ |
int | 4字节 | -2147483648~2147483647 |
short | 2字节 | -32768~32767 |
byte | 1字节 | -128 ~ 127 |
1. byte和short类型一般用于特定场合,例如底层的文件处理或者存储空间十分宝贵的数组中。
2. 在一般的程序中,我们通常采用int类型,但是如果数字十分庞大,则需要使用long类型。
3. 与c++不同的是,java整形的范围与运行java的机器是无关的,各种数据类型的值是固定不变的。同时java中没有任何无符号(unsigne)形式的int,long,short和byte。
4. 对于long类型而言,在使用时需要在数值加上后缀L
5. 十六进制的前缀为0x,八进制的前缀为0,而二进制的前缀为0B。
二.浮点型
浮点类型用于表示有小数部分的数值,java中有两种浮点类型。
类型 | 存储需求 | 有效位数 |
float | 4字节 | 6~7位 |
short | 2字节 | 15位 |
- double的数值精度是float的两倍(也被叫做双精度数值),在实际应用中,由于float不能很好地满足需求,所以一般的情况都是采用double类型。
- 使用float类型时,要在数值的后面加上F。如果没有后缀F的浮点数值则会被默认为double类型。
- 浮点数值也可以用十六进制表示,例如:0.125=$2^{-3} = 0x1.0p-3 ,p是指数的基数,指数的基数是2。
- 所有的浮点数计算都遵循IEEE754规范。其中有三个表示溢出的出错情况的特殊浮点数值:
- 正无穷大(正整数/0)
表示方式:Double.POSITIVE_INFINITY - 负无穷大(负整数/0)
表示方式: Double.NEGATIVE_INFINITY - NaN (0/0或者负数的平方根)
表示方式:Double.NaN
- 浮点数值不适应与无法接受误差的计算。这是因为浮点数值是采用二进制表示的,而二进制无法准确表示1/10。
在数值计算中不允许有任何的舍入误差,可以用BigDecimal类。
三.char类型
- 在java中,char类型的大小是两个字节。用于表示单个字符。
- 但是有的unicode字符可以用一个char值描述,有的unicode字符却需要两个char值。(如何理解unicode?水平有限,会有一天写一篇讲解这个的博客,做个标注)
- char的值可以用十六进制表示,范围从\u0000~\uffff 。
- **Unicode转义序列会在解析代码之前得到处理,也就是说:
“\u0022+\u0022”并不是一个由引号包起来的(“+”),而是”"+"" 得到的是一个空串。
四.boolean类型
- boolean类型有两个值:flase和true。整数值与boolean类型之前不可以进行互相转换。
- 在c语言中,0为假,非0为真,即0相当于false,1相当于true,而在java中,则不是这样的,java有明确的规定,false是flase,true是true,与整数值无关。
五. 总结
java的数据类型总结为:
基本数据类型有8个,可以分为4个小类,分别是整数类型(byte/short/int/long)、浮点类型(float/double)、字符类型(char)、布尔类型(boolean)。其中,4个整数类型中,int类型最为常用。2个浮点类型中,double最为常用。另外,在这8个基本类型当中,除了布尔类型之外的其他7个类型,它们相互之间可以进行类型转换。
感谢阅读!
与君共勉!