代码改变世界

最好覆盖toString

2018-10-24 15:02 by 摘花, 128 阅读, 0 推荐, 收藏, 编辑
摘要:Object的toString只是输出一个“类名+@+一串字符串”,能给人的信息极其有限,我们需要覆盖soString方法去更好的描述对象。 阅读全文

适时覆盖equals,覆盖equals是要覆盖hasdCode

2018-10-24 14:55 by 摘花, 340 阅读, 0 推荐, 收藏, 编辑
摘要:符合以下情况是不需要覆盖equals的: 需要覆盖equals的类只有一种情况,我们关心的是对象里面的值,这个类有自己本身的‘值’相等逻辑,此时我们需要去覆盖equals,而且应遵守下列原则: 自反 对称 传递 一致 非NULL 对象和NULL作比较时,返回NULL 为了避免在覆盖让equals之后 阅读全文

消除过期的对象引用

2018-10-23 10:38 by 摘花, 163 阅读, 0 推荐, 收藏, 编辑
摘要:1,自己管理内存的类:我理解为类中有有属性保存了对象的指针,而没有及时的将指针指向NULL。 2,缓存造成内存泄漏. 3,监听器和其他回调. 阅读全文

避免创建不必要的对象

2018-10-23 09:28 by 摘花, 224 阅读, 0 推荐, 收藏, 编辑
摘要:我感觉我自己应该要避免的就是 1,在循环里面或者使用频繁的工具类里面创建对象,造成了不必要的开销。 2,用封装类型代替了基本数据类型。 两个大忌~ 阅读全文

私有化构造器强化不可实例化的能力

2018-10-23 09:23 by 摘花, 190 阅读, 0 推荐, 收藏, 编辑
摘要:读了这条之后,我以我浅薄的Java知识想了一下,这个貌似用虚类也可以做到,还不用写一个构造器~,不知道有什么疏漏,希望大家不吝赐教。 阅读全文

使用枚举去实现单例模式

2018-10-23 09:09 by 摘花, 981 阅读, 0 推荐, 收藏, 编辑
摘要:现在就我这个新手所知道的实现单例模式的写法就已经有6、7种了,但是不管是饿汉模式、懒汉模式、双重检验、静态内部类,都在抵御序列化和反射攻击时不够出色,而通过底层实现了防御序列化和反射攻击的枚举模式就是很完美的选择了,所以,直接枚举就好。 阅读全文

遇到多个构造器参数时考虑使用构建器

2018-10-23 09:04 by 摘花, 144 阅读, 0 推荐, 收藏, 编辑
摘要:书中说的非常有道理,JavaBean模式确实做不到线程安全,而且是可变的,但是这个可变的属性在web系统中却显得很重要,我们需要知道针对同一对象的属性地改变, 而不是每次都构建一个新的对象,数据没有互通性,那就没有意义了。 思路是很棒的,我们要针对目的去使用。 阅读全文

考虑用静态工厂代替构造方法

2018-10-19 14:19 by 摘花, 218 阅读, 0 推荐, 收藏, 编辑
摘要:在看之前,我自己思考了一下静态工厂相对于构造方法的优点 1,首先肯定是不需要每次都创建一个新的对象。 写了一条之后,我发现我只能得出这个结论 看书: 静态工厂有自己的名称:这个有什么好处呢,能够使方法的可读性更好, 可以返回原返回类型的子类对象:构造方法只能构造本类的对象,而静态工厂可以灵活的在代码 阅读全文

监听手机端和电脑端中文输入法的方法记录

2018-09-13 10:32 by 摘花, 341 阅读, 0 推荐, 收藏, 编辑
摘要:同事需监听一个input的值,当满足全是中文且长度大于N的时候触发某些动作。 PC端:compositionend,在PC端比较好使,移动端的浏览器兼容性不好,主流的浏览器基本能支持这个方法。 移动端:input propertychange可以监听到中文输入法 然后在JS判断一下是PC还是移动,应 阅读全文

Htmlunit 使用记录

2018-09-11 10:19 by 摘花, 377 阅读, 0 推荐, 收藏, 编辑
摘要:有时候HtmlElment 登录click之后,输出page没有改变不是没有反应,ajax可能已经提交,要试着请求登录之后的页面试试 请求iframe要使用当面page来请求getEnclosedPage。或者拿到src才去二次请求的方式 要在模拟浏览器和模拟ajax请求之间多切换尝试,或者强制触发 阅读全文