java编程思想读书心得
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
竭诚为您提供优质文档/双击可除java编程思想读书心得
篇一:Java编程思想第四版读书笔记
Java编程思想第四版读书笔记
一基础知识点
1.面向对象程序设计
(object-orientedprogrammingoop),
umL(unitiedmodellingLanguage统一建模语言)。将对象想像成“服务提供者”,它们看起来像什么?能够提供哪些服务?需要哪些对象?
2.Java中动态绑定是默认行为。Java采用动态内存分配方式,通过new操作在堆(heap)的内存池中动态创建对象。
Java存储结构类型:1)寄存器2)堆栈,主要存储对象引用3)堆,主要用于存放所有的Java对象4)常量存储,也就是程序代码区5)非RAm存储,如流对象和持久化对象。基本类型不用new来创建变量,而且这个变量直接存储”值”,
并置于堆栈中。
3.bigInteger和bigDecimal的使用。当变量作为类的成员使用时当变量作为类的成员使用时,Java才确保给定其默认初当变量作为类的成员使用时始值,但是在方法中定义的变量,它有可能是任意值。面向对象的程序设计可以归纳为“向对象发送消息”。关键字static。
4.Javadoc只能为public和protected成员进行文档注释,但是也可以通过-private进行标记注释。
Javadoc常用方法:
@see引用其他类,linkpackage.class#memberlabel},{@{@docRoot},{@inheritDoc},@version,@author,
@since,@param,@return,@throws,@deprecated。
5.整数除法会直接去掉结果的小数位。基本类型的对象如果直接对它们赋值,对象指向同一个常量存储区,但是如果通过对象来初始化则会指向不同的堆的存储区。如:
stringst1=newstring("A");stringst2=newstring("A");s t1==st2falsestringst1="A";stringst2="A";st1==st2tru e
6.逻辑操作符:与
(Leafincrement(){i++;returnthis;}}
10.回答一个新技术的问题大概思路和步骤是:
我们想干什么,怎么干,干的过程中遇到了什么问题,现在用什么方式来解决。
答题时,先答是什么,再答有什么作用和要注意什么(这部分最重要,展现自己的心得)。
11.finalize的使用:垃圾回收只与内存有关,当“垃圾回收”时,finalize()得到调用。Java中的对象都能被垃圾回收器回收,但是在“本地方法”的情况下,有可能在分配内存时采用类似c语言的做法通过malloc()函数来分配存储空间时,这时只能通过free()函数来释放空间,而这些释放操作必须要放到finalize()方法中,垃圾回收器才能正确的释放内存。“垃圾回收”都不保证一定会发生。
12.垃圾回收原理:
引用记数引用记数是一种简单但速度很慢的垃圾回收
技术。每个对象都含有一个引用记数1引用记数器,当有引用连接至对象时,引用计数加1。当引用离开作用域或被置为null时,
引用计数减1。垃圾回收器会在含有全部对象的列表上遍历,当发现某个对象的引用计数为0时,就立即释放其占用的空间。定位交互自引用的对象组所需的工作量极大,所以并没有被应用于任何一种Java虚拟机中。
Java虚拟机采用一种自适应自适应的垃圾回收技术,Java虚拟机会自适应进行监视,如果所有对象都很稳定,垃
圾回收器的效率降低的话,就切换到“标记-清扫”方式;同样,Java虚拟机会跟踪“标记-清扫”的效果,要是堆空间出现很多碎片,就会切换回“停止-复制”方式。“停止-复制”,先暂停程序的运行,然后将所有存活存活的对象从当前存活堆复制到另一个堆,没有被复制的全部都是垃圾。“标记-清扫”,从堆栈和静态存储区出发,遍历所有的引用,进而找出所有存活的对象,每当它找到一个存活对象,就会给对象设一个标记,这个过程中不会回收任何对象,只有全部标记工作完成的时候,清理动作才会开始。在清理过程中,没有标记的对象将被释放,不会发生下任何复制动作。
13.初始化顺序:
先静态对象,后“非静态”对象,先变量,再构造函数,然后是方法。静态初始化只有在必要时刻才会进行,如果不引用其对象,那么该对象中的静态成员将不会被创建,而且它们只会在第一次被访问时进行初始化,其后不会再次被初始化。
14.对象的创建过程:
1)当首次创建对象时,或类的静态方法/静态域首次被访问时,Java解释器必须查找类路径,以定位.class文件。
2)载入.class,有关静态初始化的所有动作都会执行。
3)当用new创建对象时,在堆上为对象分配存储空间,而且这块存储空间会被清零,也就是说它会自动地将对象中
的所有基本类型数据都设置成默认值,而引用是被设置成null。
4)执行所有出现于字段定义处的初始化动作。
5)执行构造器。
15.数组:
java.util.Arrays
常用方法的使用。
binarysearch(),copyof(),asList(),copyofRange(),equa ls(),fill(),sort(),tostring(),hashcode()。可变参数列表:
voidf(floati,character?args)。
枚举类型:enum,它可以在switch语句内使用。
16.类的结构依次为:
1)包的注释
2)package的设置
3)import导入设置
4)类的注释
5)类的编写。
17.Java的访问权限:
类的访问权限只有public和默认包访问权限,
成员和方法有public,protected,默认包访问权限和private。