Java数据类型
创始人
2024-11-13 15:36:24

八大基本数据类型+引用数据类型

基本数据类型

整型:byte、short、int、long

浮点型:float、double

布尔型:boolean

字符型:char

对应的包装类为Byte、Short、Integer、Long、Float、Double、Character、Boolean

引用数据类型

包括类、接口、数组、枚举、注解、字符串

基本数据类型详解

基本类型存储大小初始化默认值取值范围
byte1字节(8位)0-128~127
short2字节(16位)0-32768~32767
int4字节(32位)0-2^31~2^31-1
long8字节(64位)0L-2^63 ~ 2^63 - 1
float4字节(32位)0.0f/
double8字节(64位)0.0d/
char2字节(16位)‘\u0000’/
boolean1字节(8位)falsetrue/false

 浮点型变量精度不高,解决办法:用BigDecimal类替换浮点型变量

BigDecimal(double val) : double类型的数据作为参数,交给BigDecimal对象【不用,因为double本身不精确】
BigDecimal(String val) : String类型的数据作为参数,交给BigDecimal对象【用这个】
注:double->String 直接拼接一个字符串""就行。

基本数据类型和引用数据类型的区别

1、存储方式:基本数据类型直接存储值,而引用数据类型存储的是对象的引用(内存地址)

2、内存分配:基本数据类型在栈上分配内存,而引用数据类型在堆上分配内存。栈上分配速度较快,但内存空间小,堆反之。

3、默认值:基本数据类型会有自己的默认值,而引用数据类型的默认值为null,表示没有引用指向任何对象

4、复制操作:基本数据类型进行复制时,会复制该变量的值。而引用数据类型进行复制时,只会复制对象的引用,两个变量指向同一个对象

5、参数传递:基本数据类型作为方法的参数传递时,传递的是值的副本,不会修改原始值。而引用数据类型作为方法的参数传递时,传递的是对象的引用,可以修改对象的属性或状态

6、比较操作:基本数据类型使用==进行比较时,比较的是值是否相等。而引用数据类型使用==进行比较时,比较的是引用是否指向同一个对象,如果要比较对象的内容是否相同,需要使用equals()方法

基础数据类型的转换

自动类型转换:【小->大】byte-short-int-long-float-double

强制类型转换:【大->小】小类型 变量名 = (大类型)值、

注意:自增/自减运算符、复合赋值运算符底层做了优化,内部自动强制类型转换; 如:++, --, +=, -=

包装类型

为什么需要

因为Java是一种面向对象语言,很多地方都需要使用对象而不是基本数据类型。比如,在集合类种,我们是无法将int、double等类型放进去的。因为集合的容器要求元素是Object类型。

为了让基本类型也具有对象的特征,就出现了包装类型,它相当于将基本类型“包装起来”,使得它具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作。

基本类型直接存储数据值,在栈上分配内存,占用固定的内存空间,。

包装类型是对象动态分配内存,在堆上创建,包含额外的信息,例如方法和字段,同时也占用更多的内存空间。

自动装箱和自动拆箱

包装类是对基本类型的包装,所以把基本数据类型转换成包装类的过程就是装箱;反之,把包装类转换成基本数据类型的过程就是拆箱

如:int的自动装箱都是通过Integer.valueOf()方法来实现的,Integer的自动拆箱都是通过Integer.intValue()来实现的。

相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...