自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

原创 读《Effective Java》笔记之 第八条:覆盖equals时请遵守通用约定

不应覆盖equals的情况equals方法有许多覆盖方式都会导致错误,避免这种错误最简单的办法就是不覆盖equals方法。以下几种情况适合不去覆盖equals类的每个实例本质上都是唯一的 不需要“逻辑相等”的概念 超类已经覆盖了equals,从超类继承过来的行为对子类也是合适的 类是私有或包级私有的,可以确定它的equals方法永远不会被调用;不过这种情况,显然应该覆盖equals方...

2018-07-24 00:28:10 204

原创 读《Effective Java》笔记之 第七条:避免使用终结方法

@Overrideprotected void finalize() throws Throwable { try { ... } finally { super.finalize(); }}除非是以下几种情况:安全网(参考FileInputStream、FileOutputStream、Connection,防止调用方忘记显式...

2018-07-22 23:17:26 170

原创 读《Effective Java》笔记之 第六条:消除过期对象的引用

要解决的问题:内存泄漏(无意识的对象保持)例如,用数组和size自己实现一个栈,如果出栈后不把数组中的引用解除,则会始终保持着其引用。通常自己手工管理内存的地方需要格外注意消除过期引用的问题。其他常见导致内存泄漏的情况缓存 监听器和回调解决方法之一是使用弱引用...

2018-07-19 03:00:12 194

原创 读《Effective Java》笔记之 第五条:避免创建不必要的对象

应该避免创建对象的几种情况:字符串常量,不要写String s = new String("xxx"),写String s = "xxx" 不可变类通常可利用静态工厂方法来避免创造不必要的对象,如 Boolean.valueOf(String) 那些已知不会被修改的对象,可以被重用的对象 适配器、视图对象,例如Map#keySet方法所返回的对象 自动装箱的对象;Long acc = ...

2018-07-19 00:58:38 200

原创 读《Effective Java》笔记之 第四条:通过私有构造器强化不可实例化的能力

什么样的类需要具备不可实例化的能力通常来说的工具类(例如:java.util.Arrays)如何具备不可实例化的能力通过私有构造方法,并且方法中抛出异常,避免不小心在类的内部调用构造器。最好再加上一条注释,说明这个构造器的意义。同时带来的副作用这个类不能被子类化,子类需要显式或隐式得调用超类的构造器,这种情况下子类就没有可访问的超类构造器可调用了。...

2018-07-19 00:42:08 184

原创 读《Effective Java》笔记之 第三条:强化单例的Singleton属性

使用公有静态工厂方法来获取实例构造器设为私有如果要防止通过反射调用私有构造器,可以修改构造器,在被要求创建第二个实例时抛出异常工厂方法提供了灵活性:如可以控制将单例改为每个线程返回一个实例等等...如果要序列化(实现Serializable接口),还需要声明所有实例域都是非持久的(transient),并提供一个readResolve方法。在readResolve方法中返回预先创建的单例。priv...

2018-07-03 00:49:19 522

原创 读《Effective Java》笔记之 第二条:遇到多个构造器参数时要考虑使用Builder

Builder例子:参照这篇博客,写得很详细了。Builder的好处:可读性好保证构建对象的过程中,不存在不一致的中间状态,也可以用于生成不可变对象如果需要可变长参数的话,构造器只能有一个可变长参数(由 '...' 所表示的参数);而通过Builder可以使用多个可变长参数范型的Builder是一个很好的抽象工厂。其实Java中最经典的抽象工厂是Class对象,newInstance方法充当了bu...

2018-07-03 00:38:54 184

原创 读《Effective Java》笔记之 第一条:考虑用静态工厂方法代替构造器

静态工厂方法与构造器相比的优势:它们有名称:可以更好地指示出使用这一方法创建出的对象所具有的特征。(尤其是当多个构造器只有参数顺序不同的时候)不必在每次调用的时候,都创建一个新的对象。这使得不可变类可以使用预先构建好的实例,或者作为缓存,重复利用。(例如 Boolean.valueOf(boolean))有助于控制类的实例(实例受控的类 instance-controlled)。可以返回原返回类型...

2018-07-03 00:15:00 253

原创 重读《C++ Primer Plus》笔记 之 对main()的理解

从上学开始学C语言,就知道写程序要有个入口,就是main()这个方法;好像它从来都是一个有特殊地位的、不需要解释的、被忽略存在。直到现在才突然想起来,研究一下这个main()方法到底特殊在哪里。首先列一下我想到的关于main()方法的几点特殊之处:谁来调用这个main()方法可以写int main();也可以写int main(int argc, char** argv);C语言不支持多态,调用m...

2018-07-01 00:59:51 197

原创 重读《C++ Primer Plus》笔记 之 cout与endl

cout << "Hello World" << endl; 这几乎要成为所有刚学C++同学的第一行代码;可是回头来看,这一句里的问题可真不少,我先列一下我想到的:cout是啥,关键字么?不是。那是普通变量?那它在哪定义的?是什么类型?'<<'是啥?哦,可能是运算符重载endl是啥?是个特定字符串么?这些问题咱们来一个一个解决。cout是啥首先跳到cout的定义...

2018-07-01 00:58:36 744

原创 重读《C++ Primer Plus》笔记 之 C++与C的区别

无参方法中使用void在C中,空的参数列表表示方法可以接受任意数量的参数;而使用void则表示不能接受任何参数;在C++中,空参数列表表示方法不能接受任何参数;两者的差异在编译阶段体现:如下例,// Program 1 (Compiles and runs fine in C, but not in C++)void fun() { } int main(void){ fun(10...

2018-06-30 18:01:15 1612 1

原创 VS2012+wdk8.0+vmware10联机调试环境

Host:win8.1Guest:win8.1按照MSDN搭建:http://msdn.microsoft.com/zh-cn/library/dn265572(v=vs.85).aspx为满足Host和Guest互相能ping通,经数次尝试得出:Vmware网络选择仅主机模式,Host和Guest的共享设置在专用、来宾或公用均启用网络发现和文件打印机共享。位置:控制面板\网络

2014-02-16 13:39:54 1764

原创 VS2012 + MFC 创建新的对话框窗口(初学)

以前都是编的没界面的东东,刚开始试着用MFC,发现在窗口里边做东西首先要对消息机制有所了解。再想高端一点,多线程也是必须的。但是到刚才,我还一直不会实现创建新的窗口。网上好多代码都用在VC6中,亲测对于我这种初学者,在VS2012创建的MFC工程中不是特别简单实用。于是经过一番研究,整理结果如下:环境:win7 64 VS2012从开始创建一个基于对话框的MFC程序开始说起:之

2014-01-03 00:13:40 18588 2

MHDD 光盘版

检测磁盘坏道并修复 MHDD 是一款由俄罗斯人所开发的免费硬盘实体扫描维护程序,比起一般的硬盘表层扫描, MHDD 有相当令人激赏的扫描速度,让使用者不再需要花费数个小时来除错,只需几十分钟,一颗 80G 大小的硬盘就可以扫瞄完成,且 MHDD 还能够帮使用者修复坏轨,让使用者能够继续延续该硬盘的生命余光。

2012-12-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除