Java基础>02 - 基本数据类型、引用数据类型

学习总结:
链接:【Java基础、springboot、springcloud、docker 等,学习目录

java中数据类型分为基本数据类型和引用数据类型。

基本数据类型:

四类八种。

整数类型解释取值范围默认值
byteJava中最小的数据类型,内存中占8位(bit),即1个字节-128~127 (27 - 1)0
short短整型,16位,2字节-32768~327170
int整型,32位,4字节-2147483648~21474836470
long长整型,64位,8字节-263 ~ 263 - 10L
浮点类型解释默认值备注
float浮点型,32位,4字节,0.0f存储带小数点的数字
double双精度浮点型,64位,8字节0.0d浮点数的默认类型为double类型
布尔类型解释默认值备注
boolean布尔类型,1字节false仅有两值:true、false
字符类型解释取值默认值备注
charchar类型是一个单一的 16 位 Unicode 字符,2字节0~65535,最小值是 \u0000(即为0),最大值是 \uffff(即为65,535)\u0000必须使用‘’括起来

注意:

  1. 一个字节等于8位 1byte = 8bit。
  2. char占用的是2个字节 16位。
  3. 1111 1111 = 255,但是对于计算机,一个二进制的数的最高位是符号位,0表示正数,1表示负数。1111 1111 = -127、0111 1111 = 127 = 27 - 1。
  4. 一个Byte能表达的数字范围是[-128,127],那么这个-128是怎么来的呢?涉及到原码、补码、反码的知识。参看【https://blog.csdn.net/qq_39867744/article/details/88102555】
引用数据类型:

三种:类、数组、接口。默认都为null。

注意(仔细读):

int i = 0;
User user = new User();

1、在函数中定义的基本数据类型变量(i)和引用数据类型变量(user)都是在栈内存中分配的。当定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间。
2、堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由jvm垃圾回收器来管理。
3、在堆中产生了一个数组或者对象后(new User();),还可以在栈中定义一个特殊的变量(user),这个变量的值等于数组或者对象在堆内存中的地址,在栈中的这个特殊的变量(user)就变成了数组或者对象的引用变量,以后就可以在程序中使用栈内存中的引用变量来访问堆中的数组或者对象,引用变量相当于为数组或者对象起的一个别名。
4、引用类型变量是普通变量(user),定义时在栈中分配内存,引用变量在程序运行到作用域外释放。但数组和对象本身在堆中分配,即使程序运行到使用new产生数组和对象的语句所在地代码块之外,数组和对象本身占用的堆内存也不会被释放,数组和对象在没有引用变量指向它的时候,才变成垃圾,不能再被使用,但是仍然占着内存,在随后的一个不确定的时间被垃圾回收器释放掉。这个也是java比较占内存的主要原因,实际上,栈中的变量指向堆内存中的变量,这就是 Java 中的指针!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值