ThreadLocal
1. 简介 ThreadLocal叫做线程变量,意思是ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。ThreadLocal为变量在每个线程中都创建了...
七、堆
堆(Heap)的核心概述 堆针对一个JVM进程来说是唯一的,也就是一个进程只有一个JVM,但是进程包含多个线程,他们是共享同一堆空间的。 一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心...
ThreadPoolExecutor 核心线程与等待队列相关问题探讨
先来回顾下线程池的执行流程: 任务加入等待队列的条件是核心线程池已满,且等待队列未满。我原本以为这个核心线程池已满,指的是核心线程都在执行任务,但是我今天遇到一个现象,发现并不是我...
Servlet 生命周期
1. Servlet接口 Servlet生命周期对应其中的三个方法:init()、service()、destroy() 2. 生命周期 2.1 验证 发起两次请求后关闭tomcat 2.2 打印结果分析 第一次请求时,Servlet会实例化(构造方...
volatile
volatile关键字仅能用来修饰变量,能用来保证变量在线程间的可见性,同时能避免指令重排保证有序性,但是不能保证原子性。 有以下代码: /** * @Author shenxy * @Date 2022/7/24 17:57 * @Vers...
Listener
1. 概念 监听器:专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动。 Servlet监听器:Servlet规范中定义的一种特殊...
Servlet 会话
HTT协议本身P是无状态的,服务器无法区分两次请求是否是同一个客户端发送过来的。所以两个用户操作时,便会产生数据错误。因此通过会话跟踪技术来解决这个问题。 1. Cookie 1.1 本质 在浏览器端...
二、类加载子系统
类加载器子系统作用 类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Eng...
Servlet 获取请求参数流程
1. 前段代码 index.html中新建一个form表单 2. 后端代码 客户端向服务端发送请求,服务端会将请求封装为HttpRequest。 创建AddServlet,普通类是无法获取用户发送的请求数据的,需要继承HttpSer...