- 博客(14)
- 收藏
- 关注
原创 JVM中GC的流程
Java程序中新创建的对象在JVM中的堆内存中分配空间,堆内存是线程共享的,分为两个区域年轻代和老年代,年轻代一般存放一些用完就释放的对象,老年代一般存放常驻内存的对象。
2023-05-08 23:44:25 419
原创 为什么重写equals()就要重写hashcode()
hashcode()方法是Object类的一个本地方法一个对象调用hashcode方法返回的是将该对象在堆中的地址通过哈希算法计算出的哈希值,每次调用返回的都是同一个哈希值equals()方法也是Object类的方法 通过 == 比较两个对象在Java中 如果通过==比较两个引用类型则比较他们所指向的对象在堆中是否为同一块地址既然equals方法可以通过地址比较是否为同一对象,那么为什么还需要hashcode()方法?
2023-02-25 17:45:51 132
原创 接口和抽象类的区别
接口是自上向下的 也就是说定义接口时不需要考虑子类的实现,子类只需遵守接口的规范抽象类是自下向上的 我们把属性方法有共性的类抽离出来 才定义出了一个抽象类
2023-02-22 18:28:56 52
原创 浅谈ThreadLocal
ThreadLocal也称线程变量,实现了数据在同一个线程间的共享,也通过线程隔离解决了多线程数据安全的问题ThreadLocal为每一个线程提供了一个副本,给每个副本关联一个数据(对象),该数据是该线程独有的,其他线程无法访问,每一个ThreadLocal对象只能关联一个数据,如果想关联多个数据,就要创建多个ThreadLocall对象ThreadLocal对象通常声明为private static类型ThreadLocal关联的数据通常在线程销毁时释放。
2023-02-06 16:47:13 141 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人