java 安全管理器

参考文档: System.getSecurityManager() 原]一个例子理解AccessController.doPrivileged() 透过AccessController深入了解Java安全模型 Java 安全模型

基础 

JAVA 四种引用类型

1. 强引用 在 Java 中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的,即使该对象以后永远都不会被用到 JVM 也不会回收。因此强引用是造成 Java 内存泄漏的主要原因之一。 2. 软引

基础 

java 代码执行

参考文档:【Java核心技术卷】Java的解释执行与编译执行 1. JVM 简介 一种能够运行 Java 字节码 (class) 的虚拟机。 JVM 有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有一套字节码指令集。JVM 屏蔽了与具体操作系统平台相关的信息,使得Java 程序只需要生成在 J

基础 

Unsafe 类

参考文档: 浅析 Unsafe 的使用 干掉Random:这个类已经成为获取随机数的王者 1. Unsafe 简介 Unsafe 是 java 留给开发者的后门,用于直接操作系统内存且不受 jvm 管辖,实现类似 C++ 风格的操作。 Oracle 官方一般不建议开发者使用 Unsafe 类,因为正

基础 

java 对象头

参考文档:Java对象结构与锁实现原理及MarkWord详解 1. 简介 我们都知道,Java 对象存储在堆(Heap)内存。那么一个 Java 对象到底包含什么呢?概括起来分为对象头、对象体和对齐字节。如下图所示: 对象的几个部分的作用: 对象头中的 Mark Word(标记字)主要用来表示对象的

基础 

java module

参考文档:JDK9的新特性:JPMS模块化 1. 简介 JDK9 引入了一个新的特性叫做 JPMS(Java Platform Module System),也可以叫做 Project Jigsaw。模块化的本质就是将一个大型的项目拆分成为一个一个的模块,每个模块都是独立的单元,并且不同的模块之间可

基础 

ThreadLocal

参考文献:深入分析 ThreadLocal 内存泄漏问题 1. 实现原理 ThreadLocal 的实现是这样的:每个 Thread 维护一个 ThreadLocalMap 映射表,这个映射表的 key 是 ThreadLocal 实例本身,value 是真正需要存储的Object。 也就是说 Th

基础 

java 时间

1. 名词解释 1.1 UTC Coordinated Universal Time协调世界时, 是个世界标准时间。 1.2 GMT GMT(Greenwich Mean Time,格林威治时间)是时区时间。 GMT = UTC +0, 和 UTC 的值是一样的。 Tue Mar 15 03:25:

基础 

flatMap

参考文献: Java Stream中map和flatMap方法 map 方法 map 是一个中间操作,这意味着它返回 Stream 对象。 List<String> funs = Arrays.asList("F", "U", "N"); funs.stream().map(x -> x + "00

基础 

volatile 关键字

volatile 关键字 参考文献:面试官最爱的volatile关键字 1. volatile 关键字的作用 保证了不同线程对该变量操作的内存可见性 禁止指令重排序 2. java 内存模型 Java 虚拟机规范试图定义一种 Java 内存模型(JMM), 来屏蔽掉各种硬件和操作系统的内存访问差异,

基础