用户头像

Alex🐒

还未添加个人签名

2020.4.30 加入

还未添加个人简介
关注
  • 12

    发布数

  • 0

    关注者

  • 1

    关注了

JVM 类加载机制

JVM 类加载机制分为五个部分:加载,验证,准备,解析,初始化。

JVM 对象内存布局

Openjdk 提供 jol 工具可查看对象内存布局,以下内容适用 HotSpot

JVM 垃圾回收器 G1

G1 收集器是一款面向服务端应用的垃圾收集器,主要针对多 CPU 以及大容量内存的场景,在缩短 STW 的同时,具备高吞吐的特征(大概率)。在启动 JVM 参数加上 -XX:+UseG1GC -Xmx32g -XX:MaxGCPauseMillis=200 启用 G1 作为垃圾回收器。

JVM 垃圾回收器 CMS

CMS(Concurrent Mark-Sweep)是以牺牲吞吐量为代价来获得最短回收停顿时间的老年代垃圾回收器,基于“标记 - 清除”算法的“多线程”垃圾回收。对于要求服务器响应速度的交互式应用,这种垃圾回收器非常适合。在启动 JVM 参数加上 -XX:+UseConcMarkSweepGC 启

JVM 垃圾回收机制

垃圾回收(Garbage Collection,GC)针对堆(以及方法区)中的垃圾数据进行清理,防止内存泄漏,有效的使用可以使用的内存。

JVM 运行时数据区

JVM 的内存在不同的运行时数据区进行操作。包括方法区(method area)、堆(heap)、栈(stacks)、程序计数器(program counter registers)、本地方法栈(native method stacks)。其中堆、方法区是线程共享的,栈、本地方法栈、计数器是线程隔离的。

【数据结构】Java 常用集合类 ArrayDeque

ArrayDeque 使用循环数组实现的双端队列实现,继承自抽象类 AbstractCollection,同时实现了 Deque 接口(和 Cloneable、Serializable 接口)。双端队列可以实现单端队列的先入先出的方式,也可以实现栈结构的先入后出的方式。ArrayDeque 是非线程安全的。

【数据结构】Java 常用集合类 PriorityQueue

PriorityQueue 继承自抽象父类 AbstractQueue 的优先级队列,使用小顶堆实现每次取出的元素都是队列中权值最小的。元素大小的判断可以通过传入的比较器计算,否则采用自然排序。不允许放入 null。

【数据结构】Java 常用集合类 HashMap(JDK 1.8)

HashMap 实现了 Map 接口,存储 key-value 的散列表。与 HashTable 类似相似,区别是:

【数据结构】Java 常用集合类 ConcurrentHashMap(JDK 1.8)

常用的 HashMap 是线程不安全的, Hashtable 是线程安全的。Hashtable 通过在方法上添加 synchronized 保证线程安全,相当于 Hashtable 实例只有一把锁,导致高并发场景下使用效率低。

【源码系列】Spring Cloud Gateway

Spring Cloud Gateway 是 Spring 官方基于 Spring 5.0、Spring Boot2.0 和 Project Reactor 等技术开发的网关组件,旨在为微服务架构提供简单、有效和统一的 API 路由管理方式,同时提供安全性、监控 / 度量和限流,Spring Cloud Gateway 作为 Spring Cloud 生

【源码系列】Spring Cloud Eureka

Spring Cloud Eureka 实现了服务的注册与发现, 同时包含了服务端和客户端组件,均采用 Java 编写。

Alex🐒