Java数据类型及内存类型

本文详细介绍了Java的八种基本数据类型及其对应的包装类,包括它们的字节数和在运算中的行为。讨论了数据类型的转换规则,强调了自动提升和强制转换的区别。此外,还概述了Java内存结构,包括堆、方法区、虚拟机栈和本地方法栈等,以及不同类型的变量在内存中的存储位置。文章最后提到了变量类型的组合以及它们在内存中的分布情况。

Java数据类型简单来说分为八种基本数据类型与引用类型(非基本数据类型)。

八种基本数据类型:

1、byte类型--------------------------------1个字节-------------------------------Byte(包装类)

2、短整型(short)----------------------2个字节-------------------------------Short(包装类)

3、整型(int)----------------------------4个字节--------------------------------Integer(包装类)

4、长整型(long)-----------------------8个字节--------------------------------Long(包装类)

5、字符型(char)-----------------------2个字节-------------------------------Character(包装类)

6、单精度浮点型(float)--------------4个字节-------------------------------Float(包装类)

7、双精度浮点型(double)-----------8个字节-------------------------------Double(包装类)

8、布尔型(boolean)------------------不确定---------------------------------Boolean(包装类)

    (单独使用4个字节,数组中1个字节,按内存算1个byte)

数据类型的闭环:

只有 int 和 long 类型可以实现闭环(最大值+1=最小值),byte 和 short 不实现是因为在运算中会整型提升,float 、double 和 char 无法闭环没有意义。 

数据类型的转换:

1、从低向高自动转换。

2、从高向低不可自动转换,需要强制类型转换,会丢失精度,如果被转换者超过了转换后者的范围,则强转为转换类型的最大值。

3、有运算符时,先进行数据类型提升,尔后将结果赋值给提升的数据类型,最后运算。< 4 的 ↑ 为 4,小的 ↑ 为大的。

4、特殊:byte 在赋值时可以进行高到低转换,只能 int 到 byte。且:byte n 进行 n++ 时不会精度丢失。


Java内存结构(JVM):

在这里插入图片描述

堆:空间最大,线程共享,存放成员变量--------------------堆内存是主要的GC(垃圾回收)地点

方法区: 线程共享,存放静态变量和类信息----------------次要GC地点

虚拟机栈:线程私有,存放局部变量

本地方法栈:线程私有,存放native相关信息

程序计数器:线程私有,记录程序运行的位置


Java变量类型

普通成员变量------------------------对象-----------------------------------------堆(存储地点)

静态成员变量------------------------类--------------------------------------------方法区(存储地点)

局部变量------------------------------局部-----------------------------------------虚拟机栈(存储地点)


八种数据类型结合三种变量类型共有24种可能的组合,关于其存储在哪个区域,主要由它是什么变量类型决定,与是何数据类型无关。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值