04 2021 档案
多线程的相关方法
摘要:run方法和start方法的区别: start()方法是线程的启动方法,通过这个方法,线程会进入到就绪状态,等拿到CPU的时候就会去调用run方法,进入运行状态。 run()方法是线程体方法,如果是直接调用run方法是不会有新的进程出现的。 执行顺序图已标记,因为此时只是一个简单的调用,线程只有ma
阅读全文
多线程
摘要:进程和线程的关系: 1.一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。 2.资源是分配给进程的,同一进程的所有线程共享该进程的所有资源 使用多线程的好处: 多线程可以提高程序的效率。 实例:寺庙里面没有水了,老和尚让小和尚去挑水,如果小和尚一个人去挑的话就需要跑四趟。但是小和
阅读全文
Map集合
摘要:Map 是一种键-值对(key-value)集合,其中,键对象不允许重复,而值对象可以重复 Map 接口主要有两个实现类:HashMap 类和 TreeMap 类。其中,HashMap 类按哈希算法来存取键对象,而 TreeMap 类可以对键对象进行排序。 上图所示既可以放String类型,又可以放
阅读全文
set集合的TreeSet类
摘要:TreeSet 类 TreeSet类是Set接口的一个实现类,主要作用是用于对对象的排序以及确定存入对象的唯一性. 它的底层是红黑树,用来确保元素的排序和唯一性的,基于map对象,TreeSet是对TreeMap的简单包装 红黑树: (1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(3)每
阅读全文
HashSet 存对象的时候是如何判断是不是同一个对象,其中含有重写equals方法和hashcode方法 后续
摘要:一开始,set集合里面只存进一个对象, 存第二个对象时候,由于重写了hashcode方法,只要价格都是10就返回1,所以hashcode一样的话,再去进行equals方法判断,此时这个也重写了,this代表的当前这个要想集合里面添加的对象, 也就是two,而括号里面传的要比的对象,也就是one,因为
阅读全文
HashSet 存对象的时候是如何判断是不是同一个对象,其中含有重写equals方法和hashcode方法
摘要:以下面book这个类来说,它的hash值默认是按照里面的属性,进行循环 如上图所示,这里会进行循环遍历里面的值,最后会得到有个累加的值。 这是测试类: 这是实例对象,里面重写了equals方法和hashcode方法 第一次add的时候,集合里面没有对象,对象实例化,然后进入hashcode方法,返回
阅读全文