排序
为什么Java解释和编译都有?
首先在Java经过编译之后生成字节码文件,接下来进入JVM中,就有两个步骤编译和解释。 如下图: 编译性: Java源代码首先被编译成字节码,JIT 会把编译过的机器码保存起来,以备下次使用。 解释性...
Java中的序列化和反序列化是什么?
序列化其实就是将对象转化成可传输的字节序列格式,以便于存储和传输。 因为对象在 JVM 中可以认为是“立体”的,会有各种引用,比如在内存地址Ox1234 引用了某某对象,那此时这个对象要传输到...
Java并发Map的get方法要加锁吗
不需要加锁。 保证 put 的时候线程安全之后,get 的时候只需要保证可见性即可,而可见性不需要加锁。 具体是通过Unsafe#getXXXVolatile 和用 volatile 来修饰节点的 val 和 next 指针来实...
什么是Java内存模型(JMM)?
JMM即Java Memory Model,Java内存模型。 它的基本目标是: 确保基本的读写操作的原子性:多个线程对一个变量的读写操作是不可分割的 确保线程的可见性:一个线程对共享变量的修改,能够被其他...
JVM内存模型
根据 JVM8 规范,JVM 运行时内存共分为虚拟机栈、堆、元空间、程序计数器、本地方法栈五个部分。 还有一部分内存叫直接内存,属于操作系统的本地内存,也是可以直接操作的。 JVM的内存结构主要...
CompletableFuture原理是什么?
CompletableFuture是由Java 8引入的,在Java8之前我们一般通过Future实现异步。 Future用于表示异步计算的结果,只能通过阻塞或者轮询的方式获取结果,而且不支持设置回调方法,Java 8之前若要...