只有注册用户登录后才能阅读该文。 阅读全文
摘要:
这个代码是求x^(-1/2),使用牛顿迭代法迭代求解, 神奇的是其效率精度比默认函数还要高。 其中神秘的0x5f375a86是迭代的初始值,理论上可以使任意值,从它开始向最终结果逼近。 通过枚举可以验证选择0x5f375a86的精度最高。 阅读全文
摘要:
可以发现其仅是根据字符内容采用加权求和的方法得到hashcode 特殊的是其选择的质数31,31有什么特殊的含义呢? 经查阅相关资料: 31可以被 JVM 优化,31 * i = (i << 5) - i。 降低哈希算法得冲突率 关于第二点,由于int仅32位,而字符串是无限的,所以必定会出现冲突, 阅读全文
摘要:
HashSet在执行add时会首先根据目标类的hashcode判断是否有与其hashcode相同的对象,若有则使用equals该对象判断是否与其相同。 HashSet保证了元素的唯一性, 我们可以通过修改目标类的hashcode和equals函数来改变对唯一性的判断标准。 需要注意的是object类 阅读全文
摘要:
从项目目录来看 ,分级为project-module-package-classname.java 其中.java文件中包含至多一个publicclass.class文件和多个普通.class文件 .java文件名必须与publicclass类名相同,若无publicclass则可与任意普通类相同 阅读全文
摘要:
先按从基类到导出类的顺序初始化静态域(之前已经初始化过的静态域不再初始化) 再按从基类到导出类的顺序初始化类,即基类普通字段+基类构造器主体+导出类字段+导出类主体... grandfatherstatic1grandfatherstatic2fatherstatic1fatherstatic2so 阅读全文