Java
文章平均质量分 66
尹中文
移动开发者
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java 生产者消费者模式介绍
的基本线程数就把任务扔到阻塞队列里,这种做法比只使用一个阻塞队列来实现生产者和消费者模式显然要高明很多,因为消费者能够处理直接就处理掉了,这样速度更快,而生产者先存,消。来处理不同性质的任务,比如线程池1将数据读到内存之后,交给线程池2里的线程继续处理压缩。在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程。直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于一。要继续处理,于是消费者处理完数据之后,它又要作为生产者把数据放在新的队列里,交给其他。原创 2024-06-06 11:20:48 · 572 阅读 · 1 评论 -
java内存中有哪些内存空间:栈空间,堆空间,和方法区介绍
位于“=”前的p1是一个在main()方法中定义的变量,可见,它是一个局部变量,因此,它被会添加到了执行main()方法的主线程的JAVA方法调用栈中。接着,Java虚拟机定位到方法区中Test类的Main()方法的字节码,开始执行它的指令。中的Person实例,再根据Person实例持有的引用,定位到方法去中SPerson类的类型信息,从而获得print()方法的字节码,接着执行print()方法包含的指令。的引用,实际上指的是Person类的类型信息在方法区中的内存地址,其实,就是有点类似于C 语。原创 2023-08-31 15:29:53 · 409 阅读 · 0 评论 -
HashMap的负载因子为什么不设置成1
从代码中我们可以看到,在向HashMap中添加元素过程中,如果 元素个数(size)超过临界值(threshold) 的时候,就会进行自动扩容(resize),并且,在扩容之后,还需要对HashMap中原有元素进行rehash,即将原来桶中的元素重新分配到新的桶中。那就是当其中的元素个数达到临界值的时候,而这个临界值前面说过和loadFactor有关,换句话说,设置一个合理的loadFactor,可以有效的避免哈希冲突。负载因子为log(2)的时候,可以既减少哈希冲突,又浪费空间,是时间和空间的权衡。原创 2023-01-14 11:25:06 · 926 阅读 · 0 评论 -
LinkedList为什么不支持高效的随机访问
那关键的问题我想随即访问一个元素,比如说有1W个元素LinkedList,你现在要访问第9999个元素,他是这么访问的,他先将第一个元素拿出来看下不是,然后找A的引用,再将B拿出来还是不是,然后再找,他就这样一直找啊找,找啊找,在他找第9998还是不是在把9998的引用指向的元素拿出,oh year找到了,然后给你。LinkedList是由链表实现的,针对元素的插入删除比较高效,但是不支持随机访问,只能一个元素一个元素的遍历,数组根据下标支持随机访问。因此,获取最后一个元素比第一个元素花费更多的时间。原创 2023-01-11 17:11:28 · 952 阅读 · 0 评论 -
new Integer(123) 与Integer.valueOf(123) 的区别?他们相等吗?
在jdk 1.8 所有的数值类缓冲池中,Integer 的缓冲池IntegerCache 很特殊, Integer.valueOf(123) 会使用缓存池中的对象,多次调用会取得同一个对。valueOf() 方法的实现比较简单,就是先判断值是否在缓存池中,如果在的话就。这个缓冲池的下界是- 128,上界默认是127,但是这个上界是可调的,在启动。围内的Integer 实例使用自动装箱来创建,那么就会引用相同的对象。在使用这些基本类型对应的包装类型时,如果该数值范围在缓冲池范围内,就可。原创 2023-01-06 15:11:18 · 675 阅读 · 0 评论
分享