![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
Yisnow.
这个作者很懒,什么都没留下…
展开
-
ThreadLocal详解(基于jdk1.8)
在java的多线程模块中,ThreadLocal是经常被提问到的一个知识点,提问的方式有很多种,可能是循序渐进也可能是就像我的题目那样,因此只有理解透彻了,不管怎么问,都能游刃有余。 这篇文章主要从以下几个角度来分析理解 ThreadLocal是什么 ThreadLocal怎么用 ThreadLocal源码分析 ThreadLocal内存泄漏问题 下面 我们带着这些问题,一点一点揭开ThreadLocal的面纱。若有不正之处请多多谅解,并欢迎批评指正。以下源码均基于jdk1.8。 1、T转载 2020-08-26 10:37:29 · 469 阅读 · 0 评论 -
Java强引用、弱引用及举例
1、强引用 当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问题。 String str = "abc"; List<String> list = new Arraylist<String>(); list.add(str);123 在list集合里的数据不会释放,即使内存不足也不会 在ArrayList类中定义了一个私有的变量elementData数组,在调用方法清空数组时可以看到为每原创 2020-08-26 09:39:57 · 628 阅读 · 1 评论 -
僵尸进程和孤儿进程
1、僵尸进程 一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结构(系统调用exit,它的作用是使进程退出,但也仅仅限于将一个正常的进程变成一个僵尸进程,并不能将其完全销毁)。在Linux进程的状态中,僵尸进程是非常特殊的一种,它已经放弃了几乎所有内存空间,没有任何可执行代码,也不能被调度,仅仅在进程列表中保留一个位置,记载该进程的退出状态等信息供其他进程收集,除此之外,僵尸进程不再占有任何内存空间。这个僵尸进程需要它的父进程来为它收尸原创 2020-08-26 09:23:18 · 138 阅读 · 0 评论 -
Java线程池
1、ThreadPoolExecutor类 java.uitl.concurrent.ThreadPoolExecutor类是线程池中最核心的一个类,因此如果要透彻地了解Java中的线程池,必须先了解这个类。 其构造方法涉及到的参数: **corePoolSize:**核心池的大小,这个参数跟后面讲述的线程池的实现原理有非常大的关系。在创建了线程池后,默认情况下,线程池中并没有任何线程,而是等待有任务到来才创建线程去执行任务,除非调用了prestartAllCoreThreads()或者prestartC转载 2020-08-25 22:13:23 · 67 阅读 · 0 评论