-
Java WebSocket 获取 HttpSession
原理 WebSocket在建立时握手阶段是建立在HTTP协议之上,握手成功升级为TCP长链接。在握手阶段获取HttpSession,设置到WebSocket的S
-
Java 中的 WebSocket
介绍 握手阶段基于HTTP。握手成功后升级为TCP。 HTTP/1.1 101:表示使用HTTP的1.1版本且HTTP状态码为101。 Connection:
2021-04-20, Views: 3186 , Topics: Java JavaScript WebSocket
-
Java 中类的变量、代码块、构造方法加载的顺序
加载顺序 父类静态变量 父类静态代码块 子类静态变量 子类静态代码块 父类成员变量 父类代码块 父类构造方法 子类成员变量 子类代码块 子类构造方法 示例代
-
Java 消除 if else 代码的几种方式
提前 return 优化前 if(condition) { //doSomething } else { return; } 优化后
-
Java 进程间通讯的几种方式
IPC 进程间通讯:InterProcess Communication。不同进程间的数据读写。 Socket 方式 如HTTP、TCP、RPC等可以实现直接的
-
Java 中的序列化 Serializable 和 Externalizable
Serializable 被static修饰的字段是不会被序列化的。 被transient修饰符修饰的字段也是不会被序列化的。 public class Per
-
Java 中的 InheritableThreadLocal
使用场景 父子线程中传递数据的方式。 示例代码 main线程中设置了abc,之后再new一个child线程,在child线程中使用inheritableThre
-
Java 中的 ThreadLocal
说明 这里的内存泄露指的是:Thread长时间运行,尤其是线程池中的线程,由于Thread中的threadLocals中的Entry数组包含了关联ThreadL
-
Java 中 Thread 的中断方法
interrupt() 给线程设置一个中断状态,线程仍会继续运行。 但如果线程正好处于等待状态(如:调用wait()、sleep()、join()方法),此时调
-
Java 中 Thread 的 join 方法
介绍 Waits for this thread to die. join()方法上的注释是等待该线程销毁。 t1.join()表示等待t1线程执行完成,继
-
Java 中 Thread 的状态
示意图 NEW 初始化状态 new一个Thread(Runnable)或Thread子类等(不调用start()方法),线程就进入NEW状态。 Thread
-
Java 并发的基石 LockSupport
LockSupport LockSupport类使用了一种名为Permit(许可)的概念来做到阻塞和唤醒线程的功能。 每个线程都有一个许可(Permit)。 p
-
Java 中的锁 StampedLock
主要方法 readLock():获取悲观读锁,阻塞等待。 unlockRead():释放读锁。 writeLock():获取悲观写锁,阻塞等待。 unlock
-
Java 中的锁 ReentrantReadWriteLock 读写锁
读写锁 读读不互斥,读写互斥,写写互斥。 代码示例 public class ReadWriteLockDemo { public static vo
-
Java 中的锁 ReentrantLock
特性 可重入、互斥(读写互斥、写写互斥、读读互斥),只能有一个线程进行操作。 默认是非公平锁,可通过构造函数指定是否是公平锁。非公平锁性能略微好一些,主要是第一
-
Java 中的自旋锁
自旋锁 使用CAS+无限循环组成自旋锁。 原子引用类保存持有锁的线程,其他线程将使用CAS+自旋争夺锁。 示例代码 public class SpinLockD
-
Java 中的死锁
描述 线程A先锁定DeadLock字节码对象,在内部延迟1秒,再锁定Object字节码对象。 线程B先锁定Object字节码对象,在内部延迟1秒,再锁定Dead
-
Java 中的锁 synchronized
锁的状态 无锁状态、偏向锁、轻量级锁、重量级锁。 偏向锁加锁过程 访问Mark Word中偏向锁的标识是否设置成1,锁标志位是否为01,确认为可偏向状态。 如
-
Java 中的锁
关键词和类 synchronized ReentrantLock ReentrantReadWriteLock StampedLock LockSupport
-
Java 中的强引用、软引用、弱引用、虚引用、引用队列
强引用 不会被垃圾回收,OOM也不会对该对象进行回收。因此强引用也是造成Java内存泄漏的主要原因之一。 new出来的对象为强引用,obj2指向obj1后obj