Java - 基础数据类型

前言

直接搬别人的笔记了,只做排版梳理,可能会加一点自己见解

 

Java的数据类型

  • 基础数据类型
  • 引用类型:除了基础数据类型剩下都是引用类型

 

Java 中的几种基本数据类型是什么?

Java 中有 8 种基本数据类型

  • 6 种数字类型 :byteshortintlongfloatdouble
  • 1 种字符类型:char
  • 1 种布尔型:boolean

 

位(bit)

是计算机 内部数据 储存的最小单位,11001100是一个八位二进制数

 

字节(byte)

  • 是计算机中 数据处理 的基本单位,习惯上用大写B来表示
  • 1Byte(字节) = 8bit(位)
  • 1bit 表示1位
  • 1024B = 1KB
  • 1024KB = 1M
  • 1024M = 1G

 

字符

是指计算机中使用的字母、数字、字和符号

 

各自占用多少字节呢?

这 8 种基本数据类型的默认值以及所占空间的大小如下:

基本类型位数字节默认值
int 32 4 0
short 16 2 0
long 64 8 0L
byte 8 1 0
char 16 2 'u0000'
float 32 4 0f
double 64 8 0d
boolean 1   false

另外,对于 boolean,官方文档未明确定义,它依赖于 JVM 厂商的具体实现。逻辑上理解是占用 1 位,但是实际中会考虑计算机高效存储因素

 

基础类型注意点

  1. Java 里使用 long 类型的数据一定要在数值后面加上 L,否则将作为整型解析
  2.  char a = 'h'  char 用单引号, String a = "hello" String 用双引号
  3. String 不是基础数据类型,是引用类型

 

整型中 byte、short、int、long 的取值范围

  • byte:byte用 1 个字节来存储,范围为 -128(-2^7) 到 127(2^7-1),在变量初始化的时候,byte 类型的默认值为 0
  • short:short用 2 个字节存储,范围为-32,768 (-2^15) 到 32,767 (2^15-1),在变量初始化的时候,short 类型的默认值为 0,一般情况下,因为Java本身转型的原因,可以直接写为 0
  • int:int用 4 个字节存储,范围为-2,147,483,648 (-2^31) 到 2,147,483,647 (2^31-1),在变量初始化的时候,int 类型的默认值为 0
  • long:long用 8 个字节存储,范围为-9,223,372,036,854,775,808 (-2^63) 到 9,223,372,036, 854,775,807 (2^63-1),在变量初始化的时候,long类型的默认值为 0L 或 0l,也可直接写为 0

 

类型转换

由于 Java 是强类型语言,所有需要有些运算的时候的,需要用到类型转换。

低 --------------------------------------->高

byte, short, char -> int -> long -> float -> double

​ (小数的优先级高于整数)

  • 运算中,不同类型的数据先转换为同一类型,然后进行运算
  • 强制类型转换,优先级 高 转 低
  • 这个后面专门的文章来讲解

  

自动类型转换

由低到高直接输入,无需强制转换

 

转换注意

  • 不能对布尔值进行转换
  • 不能把对象类型转换为不相干的类型
  • 在把高容量转换到低容量的时候,需要强制转换
  • 转换的时候可能存在内存溢出,或者精度问题!

 

各自的对应的包装类是什么?

 

基本类型包装类型
int Integer
short Short
long Long
byte Byte
char Character
float Float
double Double
boolean Boolean

 

基础类型和包装类型注意点

  • 包装类型不赋值就是 Null 
  • 而基本类型有默认值所以不是 Null

 

单精度、双精度

  • 单精度浮点数(float)在计算机存储器中占用 4 个字节(32 bits),利用“浮点”(浮动小数点)的方法,可以表示一个范围很大的数值
  • 比起单精度浮点数,双精度浮点数(double)使用 64 位(8字节) 来存储一个浮点数

 

浮点数拓展

  • float; double 不够准确
  • 实际过程中浮点数无限且离散的,但是float是有限的,他会自动舍入误差,大约接近,但不等于
  • 银行等准确的计算工具最好使用BigDecimal 数学工具类

精确的对账最好完全避免使用浮点数进行比较

精确的对账最好完全避免使用浮点数进行比较

精确的对账最好完全避免使用浮点数进行比较

posted @ 2021-07-02 17:10  小菠萝测试笔记  阅读(515)  评论(0编辑  收藏  举报