【Java编程思想读书笔记】第二章:一切都是对象
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【Java编程思想读书笔记】第二章:一切都是对象,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2634字,纯文字阅读大概需要4分钟。
内容图文
![【Java编程思想读书笔记】第二章:一切都是对象](/upload/InfoBanner/zyjiaocheng/613/2dc77ded19c9431db3f8f56587aa23da.jpg)
参考书目:《Java编程思想》(第四版)
阅读《Java编程思想》(第四版)一书收获颇多,之所以想通过用博客记笔记的方式来读书,是因为这样可以倒逼自己仔细、反复地阅读书中的知识,找相对意义上的重点,并且由于人脑更适合输出型的学习,通过将内容边看、边记、边理解和边打字写文,相比直接反复阅读更有效益(当然这本书后续仍需反复阅读几十遍甚至百遍以上都不为过),而另一个原因就是这样也能够在阅读中通过博客来记录自己的学习历程,博客记录的不只是图文,它们记录的正是自己的成长,等以后毕业或者工作后,回首大学四年,多少有点可以回念的东西,还可以说一句:一路走来,我读了很多前辈们的好书,对技术充满了热情,永远在不断学习的路上。
start.作者讲授思路:
1.五个不同的地方可以存储数据:
(1)寄存器:这是最快的存储区,它位于处理器内部,其数量及其有限,根据需求进行分配,你不能直接控制,也无法感知其存在(但C和C++运行向编译器建议寄存器的分配方式)。
(2)堆栈:位于通用RAM(随机访问存储器)中,但通过堆栈指针可以从处理器那里获得直接支持。堆栈指针向下移动,则分配新的内存,若向上移动,则释放内存。这是一种快速有效的分配存储方法,仅次于寄存器。Java系统必须知道存储在堆栈内所有项的生命周期(限制了灵活性),以便上下移动堆栈指针,Java对象的引用便存储于堆栈中。
(3)堆:是一种内存池(也位于RAM区),用于存放所有的Java对象,编译器不需要知道存储的数据在堆里的存活时间(体现了灵活性),new一个对象时,会自动在堆里进行存储分配,用堆进行存储分配和清理会比用堆栈花更多时间。
(4)常量存储:常量值通常直接存放在程序代码内部,这样做是安全的,因为它们永远不会被改变。
(5)非RAM存储:如果数据完全存活于程序之外,那么它可以不受程序的任何控制,在程序没有运行时也可以存在。如流对象和持久化对象,在流对象中,对象转化成字节流,在持久化对象中,对象被存放于磁盘上,程序终止后,它们仍可以保持自己的状态。
2.对于一些基本类型,特别是小的、简单的变量,Java采用和C、C++相同的方法,不用new来创建变量,而是创建一个并非是引用的“自动”变量,这个变量直接存储“值”,并置于堆栈中,因此更加高效。但这些基本类型通常也具有相应的包装器类,并可以反向转换(将包装器类的数据转为简单变量存储)。
3.高精度计算类BigInteger支持任意精度的整数,BigDecimal支持任意精度的定点数。它们以牺牲运算速度为代价,换取了精度。
4.Java对象不具备和基本类型一样的声明周期,当用new创建一个Java对象时,它可以存活于作用域之外:
{
String s = new String("a string");
}
引用s在作用域终点就消失了,然而s指向的String对象实体却仍继续占据内存空间,但我们无法在这个作用域之后访问这个对象,因为对它唯一的引用已经超出了作用域的范围。当Java的垃圾回收器监测到这些不会再被引用的对象时,就会释放这些对象的内存空间,以便供其他新的对象使用。
5.调用方法的行为通常被称为:发送消息给对象。
int x = a.f();
消息是f(),对象是a。
end.结语
关于各种概念,有些已与之前的读书笔记书目内容有所交织,因此不再赘述,可参考:
【读书笔记】Java重要知识点整理与汇总
内容总结
以上是互联网集市为您收集整理的【Java编程思想读书笔记】第二章:一切都是对象全部内容,希望文章能够帮你解决【Java编程思想读书笔记】第二章:一切都是对象所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。