Agile Java读书笔记
来源:互联网 发布:软件测试工程师的前景 编辑:程序博客网 时间:2024/05/17 04:44
很惭愧,现在才开始读这本书。读《Agile Java》有点像读《Think in Java》或者是《Core Java》的感觉。很基础的东西,从不同的方式来描述。看到很多没有注意到的Java基础,以下是看到第12章的读书笔记。
1、一个面向对象的系统更关心的是行为,而不是数据。
2、单一职责原则。
3、面向对象系统是系统是行为建模,行为通过发送消息产生作用,来改变对象。
4、分包的一个原则:分离用户接口类和标识业务逻辑的底层类。
5、在尽可能的保护您的代码,只要在必要的时候,放开访问的控制。
6、考虑到风格与组织,在源代码中您应该将所有的public方法移动到非public方法前面。
7、把方法设计成要么该表对象的状态,要么返回信息,不要两者都做。
8、对于工具类,除了把方法声明为static外,将其构造函数声明为private也是个好主意。
9、静态初始化代码块,JVM在加载这个类的时候会执行这个静态初始化代码块,但是要注意这个代码块是不能抛出异常的。
10、使用static修饰的变量称之为类变量,相反的称之为对象变量。
11、与实例变量一样,类变量也不应该直接暴漏给用户。
12、使用静态导入的原则:限制使用静态导入。会引起混淆。
13、最好是使用接口类型的变量,面向接口的编程。
14、ArrayList拥有固定长度的容量,所以对于不频繁进行读写操作时,用这个比较合适;对于读写比较频繁的队列,使用LinkedList。
15、for each循环实际上是使用了迭代器,所以如果想用for each循环就必须让被迭代的元素实现Iteratable接口。
16、java.util.Formatter类可以格式化输出一些字符串。
17、java.util.logger类是Java提供的记录日志的类,不错,可以学习一下,结合log4j学习一下。
18、验证hashcode是否合理的方法:测试放置到hashtable的速度;测试hashcode的方差值,确定hashcode具有比较好的正态分布。
19、BigDecimal可以表示任意精度的数字,多数应用在金融等行业。Float、double不能精确的表示数字。但是BigDecimal由于是用软件进行精度换算的,所以在性能上不太好,另外没有支持直接的加法等算术运算。BigDecimal在运算的时候是重新创建对象的,类似于String的特性。这个类提供了8中不同类型的舍入算法。
20、根据流传递数据格式的不同,可以将流划分为字节流和字符流。类名中带有Writer和Reader的为字符流;带有Input和Output的为字节流。字符流可以处理可见字符;而字节流可以处理非可见字符。
21、DataoutputStream是一个过滤流,所谓过滤流就是说可以过滤性输出,比如只输出Boolean类型或其他某种类型。其他的过滤流还有:FilteredOutputStream、FilteredInputStream、FilterWriter和FilterReader。
22、管道流提供了在不同的线程间进行安全的基于IO的数据通讯。SequenceInputStream可以使一组输入流的行为如同一个单独的输入流一样;Pushback流可以将数据重新放到流中,仿佛没有读取一样。StreamTokenzer提供了解析流的功能。---------------------------------------这些流可以重新整理一下。
23、对象流。该技术使用的是对象的序列化技术,而序列化技术是RMI的基础,从而使EJB的基础。可以将一个对象映射为一串字节流。可以通过transient来跳过序列化一个对象。
24、序列化后,将一个类持久化一个文件中。如果再再次读取这个类之前修改了类的定义,那么在读取的时候会抛出一个异常,因为在读取的时候JVM会教研读取类和现有类是否相兼容,修改任何一个属性、方法等都会导致不兼容,不过可以使用transient关键字来消除这种不兼容性。我们可以增加writerObject和readObject来重写序列化格式。
25、内联类和静态内嵌类的区别:内联类不能被序列化,并且尽量不要让外部进行实例化。外部不可以访问内联类。静态内嵌类可以被序列化,并且可以让外部类来访问。所以使用静态内嵌类的原因要么是让外部对象可以访问,要么是为了可以序列化。静态内嵌类的示例为Map.Entry。
26、建立索引的一种方法为:使用序列化文件开始的位置作为索引。特别是对于文件系统可以这样做,这样可以使用RandomAccessFile的seek方法进行定位,然后进行读取。
- Agile Java读书笔记
- 《Agile Java读书笔记》 第一章
- 《Agile Java中文版 测试驱动开发的编程技术》读书笔记
- Agile Java
- agile java 等比数列求和
- agile java引言
- 《Agile Java》学习指南001
- Agile Java(第一章)
- 《Practices of an Agile Developer》读书笔记
- 《The Art of Agile Development》读书笔记
- Agile
- Agile java 笔记和测试
- 《Agile Web Development with Rails》读书笔记(一)
- 《Agile Web Development with Rails》读书笔记(二)
- 《Agile Web Development with Rails》读书笔记(三)
- 《Agile Web Development with Rails》读书笔记(四)
- Agile java(1) 类设计
- Agile Java 学习笔记(二) 起步
- ORACLE常用数值函数、转换函数、字符串函数介绍
- CStringArray的排序问题
- linux内核--mb代码学习总结
- 遇到的js问题,已经解决但不大明白(清洁工大哥来给讲讲)
- oracle中实现mssql中的IDENTITY功能
- Agile Java读书笔记
- Google Maps API编程资源大全
- Qt-4.6动画Animation快速入门三字决
- TKIP和aes加密算法
- 如何成为编程高手
- Ext 可编辑表格批量提交
- [调试]学会用core dump调试程序错误
- 新的起点,新的开始
- Eclipse的编辑器查看的相互作用(2)