《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位

  1. double的数值精度是float的两倍(也被叫做双精度数值),在实际应用中,由于float不能很好地满足需求,所以一般的情况都是采用double类型。
  2. 使用float类型时,要在数值的后面加上F。如果没有后缀F的浮点数值则会被默认为double类型。
  3. 浮点数值也可以用十六进制表示,例如:0.125=$2^{-3} = 0x1.0p-3 ,p是指数的基数,指数的基数是2。
  4. 所有的浮点数计算都遵循IEEE754规范。其中有三个表示溢出的出错情况的特殊浮点数值:
  • 正无穷大(正整数/0)
    表示方式:Double.POSITIVE_INFINITY
  • 负无穷大(负整数/0)
    表示方式: Double.NEGATIVE_INFINITY
  • NaN (0/0或者负数的平方根)
    表示方式:Double.NaN
  1. 浮点数值不适应与无法接受误差的计算。这是因为浮点数值是采用二进制表示的,而二进制无法准确表示1/10。
    在数值计算中不允许有任何的舍入误差,可以用BigDecimal类。

三.char类型

  1. 在java中,char类型的大小是两个字节。用于表示单个字符。
  2. 但是有的unicode字符可以用一个char值描述,有的unicode字符却需要两个char值。(如何理解unicode?水平有限,会有一天写一篇讲解这个的博客,做个标注)
  3. char的值可以用十六进制表示,范围从\u0000~\uffff 。
  4. **Unicode转义序列会在解析代码之前得到处理,也就是说:
    “\u0022+\u0022”并不是一个由引号包起来的(“+”),而是”"+"" 得到的是一个空串。

四.boolean类型

  1. boolean类型有两个值:flase和true。整数值与boolean类型之前不可以进行互相转换。
  2. 在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个类型,它们相互之间可以进行类型转换。
感谢阅读!
与君共勉!