当前位置:网站首页 > Java基础 > 正文

Java中几种基础数据类型



前言

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

Java的数据类型

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

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

Java 中有 8 种基本数据类型

  • 6 种数字类型 :、、、、、
  • 1 种字符类型:
  • 1 种布尔型:

位(bit)

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

字节(byte)

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

字符

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

各自占用多少字节呢?

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

基本类型位数字节默认值 32 4 0 16 2 0 64 8 0L 8 1 0 16 2 'u0000' 32 4 0f 64 8 0d 1 false

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

基础类型注意点

  1. Java 里使用  类型的数据一定要在数值后面加上 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中几种基础数据类型

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

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

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

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

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

  

自动类型转换

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

转换注意

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

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

基本类型包装类型 Integer Short Long Byte Character Float Double Boolean

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

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

单精度、双精度

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

浮点数拓展

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

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

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

版权声明


相关文章:

  • java基础的多态试题2024-10-19 23:26:05
  • 0基础java速成大法2024-10-19 23:26:05
  • java零基础学习网课2024-10-19 23:26:05
  • java基础案例3-42024-10-19 23:26:05
  • 甲骨文java基础2024-10-19 23:26:05
  • java基础入门黑马pdf2024-10-19 23:26:05
  • Java调用数据库基础2024-10-19 23:26:05
  • 前端用学java基础吗2024-10-19 23:26:05
  • java怎么才算基础和2024-10-19 23:26:05
  • java中整数基础知识2024-10-19 23:26:05