- 博客(5)
- 收藏
- 关注
转载 Java 中的 hashCode
所以,如果你的 hashCode() 方法依赖于对象中易变的数据,用户就要当心了,因为此数据发生变化时,hashCode() 就会生成一个不同的哈希值,相当于产生了一个不同的键。原因就在于重写 equals() 方法的时候没有重写 hashCode() 方法,而在默认情况下,hashCode() 方法是一个本地方法,会返回对象的存储地址,而 put() 中的 employee1 和 map.get(employee2) 中的对象是两个对象,所以它们的存储地址一定是不同的。
2023-11-07 13:56:29
2025
原创 关于Java并发编程的synchronized与ObjectMonitor、volatile和内存屏障
volatile实现了Java内存模型中的可见性和有序性,它的这两大特性则是通过内存屏障来实现的,同时volatile无法保证原子性。
2023-08-29 11:15:03
140
转载 (转载)Java类加载过程解析
最近分析了一款叫VeSys的软件,未对这个软件做深入了解,只奔着需求点分析需求点就是分析出新建用户的默认密码是什么,这个软件也够奇葩的,新建的用户密码不能修改,也看不到默认密码(非空密码),就导致新建的用户也登录不上…分析过程中遇到*.cjar文件,里面是加密的class的文件,需要先把class文件解密了才能愉快的分析需求…以下为记录分析*.cjar的过程,本文仅研究学习使用。
2023-07-26 11:53:21
142
转载 网络编程之token、session、cookie详解
理解cookie、session和token的关键在于它们三者都是为了解决web身份验证而诞生的。session保存在服务器端,cookie和token保存在客户端,从这个方面入手可以联想出很多区分点。建议不要死记硬背这三者的概念和区别,要从认证流程出发思考它们之间的关系。
2023-02-26 18:07:16
1773
转载 Spring发生循环依赖的原因以及如何解决循环依赖的
首先从单例池中查找Aservice,发现没找到。在创建Aservice时,发现需要依赖Bservice,Spring从单例池中查找Bservice,此时Bservice还未创建,则先实例化Bservice并填充Aservice属性,Spring又会去单例池中查找Aservice,由于Aservice还未创建,则实例化Aservice…单例池–>找不到—>二级缓存—>找不到----->creatingSet—>找到了---->三级缓存—>拿到原始对象—>发生提前AOP---->产生的代理对象放入二级缓存。
2023-02-26 16:27:20
1484
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人