JVM内存分配与垃圾回收|JVM-GC前言 JAVA GC(Garbage Collection,垃圾回收)机制是区别C++的一个重要特征,C++需要开发者自己实现垃圾回收的逻辑,而JAVA开发者则只需要专注于业务开发,因为垃圾回收这件繁琐的事情JVM已经为我们代劳了,从这一点上来说,JAVA还是要做的比较完善一些。但这并不意味着我们不 ...
Read more
Java堆外内存|内存定义广义的堆外内存除了堆栈内存,剩下的就都是堆外内存了,包括了jvm本身在运行过程中分配的内存,codecache,jni里分配的内存,DirectByteBuffer分配的内存等等
狭义的堆外内存 - DirectByteBuffer而作为java开发者,我们常说的堆外内存溢出了,其实是狭义的堆外 ...
Read more
http请求头和响应头HTTP/2 200
content-type: application/json; charset=UTF-8
x-content-type-options: nosniff
date: Tue, 15 Jun 2021 03:43:49 GMT
alt-svc: clear
accept-ra ...
Read more
Java中4种引用类型|对象引用对象执行 new 指令之后会接着把对象按照程序员的意愿进行初始化(构造方法)。
在 HotSpot 虚拟机中,对象在内存中存储的布局可以分为 3 块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。
对象头包括两部分信息,第一部分用于存储对象自身的 ...
Read more
Java线程锁原理|多线程锁等级偏向锁轻量级锁重量级线程锁synchronized特性
发生异常后自动释放
可重入锁
synchronized不建议使用String、int、long类型
锁只能升级不能降级
ReentrantLoock特性
ReentrantLock提供了内置锁类似的功能和内存语义。
此外,Reetran ...
Read more
单例模式|设计模式概念单例模式(Singleton Pattern)目的是保证虚拟机中只有一个实例。
Java实现饿汉模式懒汉模式123456789101112public class Singleton { private final static Singleton singleton = ...
Read more
java线程创建的三种方式|多线程三种方式
继承Thread类创建线程类
通过Runnable接口创建线程类
通过Callable和Future创建线程
从线程池获取(该方式不一定算)
创建线程的三种方式的对比
采用实现Runnable、Callable接口的方式创建多线程时,
优势是:线程类只是实现了Runnable接口或C ...
Read more
java线程创建的四种方式|多线程继承Thread类继承Thread类:您可以创建一个新的类,继承自Thread类,并重写run()方法。然后,您可以创建该类的实例,并调用start()方法来启动新线程。
12345678910class MyThread extends Thread { public void r ...
Read more
原子性(atomicity)|原子性概念原子性(atomicity)是没有中间状态,要么发生,要么不发生。在一个操作中就是cpu不可以在中途暂停然后再调度,既不被中断操作,要不执行完成,要不就不执行。
原子(atomicity)不能被进一步分割的最小颗粒。
原子操作(atomicity operation)不能被中断的一个或一系列操作 ...
Read more