ThreadLocal存储数据是使用ThreadLocalMap来存的,ThreadLocalMap基于Entry[]实现,存储数据时,本身ThreadLocal作为key来存取value数据。
key内存泄露:
ThreadLocal对象本事就是一个强引用,当方法弹栈后,因为线程池中线程还在,对ThreadLocal引用的Key还在,这会导致这个Threa...
创建 - 线程创建,分配地址
runnable - 就绪和运行统称Runnable
阻塞block - 没有拿到资源,synchronize等待
等待waiting - 挂起线程池,或者wait(),需要手动唤醒
time waiting - sleep(1000)睡眠的状态,到时间自动唤醒
终止terminated - 结束
public enum ...
多线程
并发和并行
并发
并行
在同一时刻,有多个指令在多个cpu同时执行
多线程三种实现方式对比
线程常用的方法
优先级
java默认使用的线程调度是抢占式调度,是一种随机的形式,对此我们可以为一个线程设计优先级,默认值是5.
优先级越高,抢占到的cpu越大。
守护线程
当非守护线程运行结束之后,守护线程就会陆续结束。
应用场景: 比如 在聊天窗口...
一、Java基础 44 道
解释下什么是面向对象?面向对象和面向过程的区别?
面向对象的三大特性?分别解释下?
JDK、JRE、JVM 三者之间的关系?
重载和重写的区别?
Java 中是否可以重写一个 private 或者 static 方法?
构造方法有哪些特性?
在 Java 中定义一个不做事且没有参数的构造方法有什么作用?
Java 中创建对象的几...
1.JVM、JRE 和 JDK 的关系
Jvm:java虚拟机,类似于一个小型的计算机,它能够将java程序编译后的.class 文件解释给相应平台的本地系统执行,从而实现跨平台。
jre:是运行java程序所需要的环境的集合,它包含了jvm的标准实现和java的核心类库。
jdk:是针对java开发的产品,其中包含了java运行环境jre和java的工具以...