来自网络博客: step1:《Java编程思想》 1year; 看书的最终目的是为了引发自己的思考,只看书不思考的话,那叫背书,不叫看书《大话设计模式》《重构 改善既有代码的设计》《深入理解Java虚拟机》《effective java》《Java并发编程实战》 step2:《深入理解计算机系统》《 ...
分类:
其他好文 时间:
2018-07-24 14:57:31
阅读次数:
149
创建和销毁对象 1. 考虑用静态工厂方法代替构造器 2. 遇到多个构造器参数时要考虑用构建器 3. 用私有构造器或者枚举类型强化Singleton属性 4. 通过私有构造器强化不可实例化能力 5. 避免创建不必要的对象 6. 消除过期的对象引用 7. 避免使用终结方法finalizer 对于所有对象 ...
分类:
编程语言 时间:
2018-07-23 11:03:44
阅读次数:
160
《Effective C++》 Note 下面有两种template声明: 当我们声明template类型参数,class和typename没有什么不同。但是 使用typename可以暗示参数并非一定得是个class类型 。 C++并不总是把class和typename视为等价,有时候你一定得使用t ...
分类:
其他好文 时间:
2018-07-22 14:14:49
阅读次数:
175
《More Effective C++》 Note 指针是C语言就有的,引用是C++新增的,它们似乎有着相同的功能,都可以间接引用其他对象。 指针用" "和" "操作符,而引用使用"."操作符"。在任何情况下,都不能使用指向空值的引用,一个引用必须总是指向某些对象。 如果需要使用一个变量并让它指向一 ...
分类:
其他好文 时间:
2018-07-22 14:09:03
阅读次数:
128
恢复内容开始 Item 34 使用枚举代替 int常量 1、使用枚举类型代替int枚举模式。 2、Int枚举模式是常变量,很难转换成好的打印字符,没有可靠的方法迭代其中的常量以及获取size. 3、枚举类型: 4、枚举类型通过一个public static final 域输出其中每一个枚举常量。 5 ...
分类:
编程语言 时间:
2018-07-09 22:02:16
阅读次数:
215
记住: 尽量以pass-by-reference-to-const替换pass-by-value。前者通常比较高效,并可避免切割问题(slicing problem)。 以上规则并不适用于内置类型,以及STL的迭代器和函数对象。对它们而言,pass-by-value往往比较适当。 ...
分类:
编程语言 时间:
2018-06-24 00:34:30
阅读次数:
144
记住: 在定义一个新type之前,确定已经考虑过本条款覆盖的主题 要设计高效的class,需要回答以下的问题:1. 对象如何去创建和销毁?这是构造函数和析构函数的问题,当然如果想要有堆分配方式,还需要重载new、new[]、delete和delete[]运算符; 2. 对象初始化与对象的赋值应该有什 ...
分类:
编程语言 时间:
2018-06-23 21:04:57
阅读次数:
130
记住: 好的接口容易被正确使用,不容易被误用。你应该在你的所有接口中努力达成这些性质。 促进正确使用的办法包括接口的一致性,以及与内置类型的行为兼容。 阻止误用的办法包括建立新类型,限制类型上的操作,束缚对象值,以及消除客户的资源管理责任。 tr1::shared_ptr支持定制型删除器。这可被用来 ...
分类:
编程语言 时间:
2018-06-23 19:05:03
阅读次数:
144
记住: 以独立语句将newd对象存储于智能指针内。如果不这样做,一旦异常被抛出,有可能导致难以察觉的资源泄漏。 ...
分类:
编程语言 时间:
2018-06-23 14:26:55
阅读次数:
133
记住: 如果你在new表达式中使用[ ],必须在相应的delete表达式中也是用[ ]。如果你在new时不使用[ ],一定不要在delete时使用[ ]。 最好不要用数组形式做typedef,基本都可以使用vector之类的 ...
分类:
编程语言 时间:
2018-06-23 13:17:09
阅读次数:
128