- 博客(10)
- 收藏
- 关注
原创 为什么要同时重写hashcode和equals?
因为jdk基于这个特性,实现了HashMap或HashSet等类,key在使用之前都经过hashcode,所以,假如一个类只重写equals方法,创建了两个字段值一致的对象(equals返回true),而hashcode没有重写,默认根据内存地址来计算,所以两者不一致。可以看到,实现上其实是同时判断了 “hashCode是否一致” 和 “是否equals” ,因为它遵循了JDK对hashCode的约定(两个对象调了equals返回true,则两个对象的hash code是一样的)。
2020-01-05 23:14:48 1115 2
原创 jvm内存模型总结
JVM内存模型之前看过很多关于jvm内存模型的文章,什么有堆栈,方法区,程序计数器等划分,也有文章说主存和工作内存的模型。 这里我觉得无论是jvm内存区域的划分,还是主存工作内存的使用,都是属于jvm内存模型内的知识。基于自己的理解,简单总结一下,单纯只是个人总结,不一定是正确的,假如看到有错误的地方可以帮忙指出。一、jvm运行期的内存区域划分:上述图可以比较直观的看出jvm运行期,哪些内存区域属
2017-08-19 12:13:30 546 2
原创 区分replace和replaceAll
首先给出这两个方法的注释:1. replaceAllpublic String replaceAll(String regex, String replacement)Replaces each substring of this string that matches the given regular expression wi
2017-04-20 15:49:36 334
原创 前端获取后台json过程由于转义字符出现的问题
数据库存储信息,特别是什么属性名称,由用户手动输入,通常会包含有一些特殊字符,比如说双引号,单引号,转义字符\等取数据将其显示在页面上的时候,特别是当我们把这些信息以json的格式返回给页面,前端插件拿着json来加载一些结果,比如一棵树。由于json格式是{"A":"XXXX"}的形式那如果XXXX包含了双引号,单引号或者转义字符,那么从数据库获取的数据如果是想自己在后台拼凑成一个j
2017-04-20 15:30:37 22167
原创 使用BigInteger.setBit与BigInteger.testBit来实现权限控制
使用BigInteger.setBit与BigInteger.testBit来实现权限控制
2017-04-09 01:03:12 4820 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人