《On Java 8》第3章 万物皆对象

数据存储

1、寄存器:最快的存储区域,位于 CPU 内部。寄存器的数量十分有限,所以寄存器根据需求进行分配。我们对其没有直接的控制权,也无法在自己的程序里找到寄存器存在的踪迹(C/C++ 允许开发者向编译器建议寄存器的分配)。
2、栈内存:存在于常规内存RAM(随机访问存储器,Random Access Memory)区域中,可通过栈指针获得处理器的直接支持。栈指针下移分配内存,上移释放内存。这是一种仅次于寄存器的非常快速有效的分配存储方式。创建程序时,Java 系统必须知道栈内保存的所有项的生命周期。这种约束限制了程序的灵活性。因此,虽然在栈内存上存在一些 Java 数据(如对象引用),但 Java 对象本身的数据确实保存在堆内存的。
3、堆内存:这是一种通用的内存池,也在 RAM 区域,所有 Java 对象都存在于其中。与栈内存不同,编译器不需要知道对象必须在堆内存上停留多长时间。因此,在堆内存保存数据更具灵活性。这种灵活性是有代价的,分配和清理内存要比栈内存需要更多的时间。
4、常量存储:常量值通常直接放在程序代码中,因为它们永远不会改变。如需严格保护,可考虑将他们置于只读存储器(ROM,Read Only Memory)中。
5、非 RAM 存储:数据完全存在于程序之外,在程序未运行以及脱离程序控制后依然存在。两个主要的例子:
(1)序列化对象:对象被转换为字节流,通常被发送到另一台机器;
(2)持久化对象:对象被放置在磁盘上,即使程序终止,数据依然存在。

高精度数值

BigInteger:支持任意精度的整数,可用于精确表示任意大小的整数值,同时在运算过程中不会丢失精度。
BigDecimal:支持任意精度的定点数字,例如,可用它进行精确的货币计算。

方法使用

方法名和参数列表统称为方法签名。签名作为方法的唯一标识。

程序编写

每个 Java 源文件中允许有多个类。源文件的名称必须要和其中一个类名相同,否则编译器将会报错。

public static void main(String[] args){}

参数 args 并没有在当前的程序中使用到,但是 Java 编译器强制要求必须要有,因为它们被用于接收从命令行输入的参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值