《java编程思想》-第二章,一切都是对象

1,java中引用:

java中的对象的“引用”,和c++指针不一样,更贴切的讲java中的引用是一种句柄,有了这个句柄可以间接对堆中对象内存进行操纵。这个句柄,有可能是空句柄,不直向任何对象。

2,java中数据的存储:

(1)寄存器:最快的存储区,位于处理器内部。数量有限,不能人为控制,是操作系统根据需求进行分配的。

(2)堆栈:位于通用的随机访问存储器(RAM)。通过堆栈指针可以从处理器获得直接的支持,通过上下移动指针进行内存的分配与释放。一些基本类型和对象引用存于其中,这一般也被称为运行时内存。

(3)堆:通用的内存池,也位于RAM。用于存放java中对象。通过new在堆中开辟内存,并进行初始化的过程,被称为对象的创建,其中内存的分配是自动分配的。但是堆得存储分配与清理比堆栈慢。

(4)常量存储:通常直接放在程序代码内部,比如字符串常量一般存放于内存中的静态方法区(就是和字节刚刚加载进存储的地方)。

(5)非RAM存储:流对象,持久化对象,通过某种机制存储于其他媒介上,也可以通过某种机制重新复原,又存储于RAM中。

3,这一章特别提示:

(1)特例:基本量类型的变量,直接存储值,而不是像对象的引用。这个基本类型变量直接存于堆栈中。并且java中基本类型所占存储空间和平台无关,大小固定,是因为java是基于java虚拟机。

char:2字节

byte:2字节 -128 127

short:2字节

int:4字节

long:8字节:

float:4字节

double:8字节

所有数值类型都有正负号,java中不存在无符号类型

boolean

基本类型都有包装器,使得可以在堆中创建一个非基本对象,然后可以和对象一样去操作包装器内部的数据。支持自动装箱和拆箱。

(2)

BigInteger:支持任意精度的整数;BigDecimal:支持任何精度的浮点数。这两个通常用于对精度非常严格的一些业务中,比如银行业务。操作和对应的int和float相似,只不过这个类型,必须把基本的运算符转换为方法调用。

3,数据作用域:

(1)基本数据类型:生命周期,也即作用域仅限于{}

(2)对象:java中有一个垃圾回收器,用来监视用new创建的所有对象,并辨别那些不会再被引用的对象,随后释放这些对象所占的内存空间,以供别的对象使用。也就是我们不用担心内存回收的问题,对象不再使用时,会自动回收空间。

3,类:

(1)类中的成员变量如果没有初始化,会被赋默认的初始化。但是最好明确对变量进行初始化,因为默认的初始化值可能是非法的值。注意:方法中的局部变量没有初始化,则没有默认值,所以局部变量也最好赋予一个初始值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值