编程 第12页
JVM内存模型-编程社

JVM内存模型

根据 JVM8 规范,JVM 运行时内存共分为虚拟机栈、堆、元空间、程序计数器、本地方法栈五个部分。 还有一部分内存叫直接内存,属于操作系统的本地内存,也是可以直接操作的。 JVM的内存结构主要...
清欢渡的头像-编程社钻石会员清欢渡1年前
0578
什么是Java内存模型(JMM)?-编程社

什么是Java内存模型(JMM)?

JMM即Java Memory Model,Java内存模型。 它的基本目标是: 确保基本的读写操作的原子性:多个线程对一个变量的读写操作是不可分割的 确保线程的可见性:一个线程对共享变量的修改,能够被其他...
清欢渡的头像-编程社钻石会员清欢渡1年前
04413
Java并发Map的get方法要加锁吗-编程社

Java并发Map的get方法要加锁吗

不需要加锁。 保证 put 的时候线程安全之后,get 的时候只需要保证可见性即可,而可见性不需要加锁。 具体是通过Unsafe#getXXXVolatile 和用 volatile 来修饰节点的 val 和 next 指针来实...
清欢渡的头像-编程社钻石会员清欢渡1年前
04514
Java中的序列化和反序列化是什么?-编程社

Java中的序列化和反序列化是什么?

序列化其实就是将对象转化成可传输的字节序列格式,以便于存储和传输。 因为对象在 JVM 中可以认为是“立体”的,会有各种引用,比如在内存地址Ox1234 引用了某某对象,那此时这个对象要传输到...
清欢渡的头像-编程社钻石会员清欢渡1年前
0408
为什么Java解释和编译都有?-编程社

为什么Java解释和编译都有?

首先在Java经过编译之后生成字节码文件,接下来进入JVM中,就有两个步骤编译和解释。 如下图: 编译性: Java源代码首先被编译成字节码,JIT 会把编译过的机器码保存起来,以备下次使用。 解释性...
清欢渡的头像-编程社钻石会员清欢渡1年前
0767
Java为什么是跨平台的?-编程社

Java为什么是跨平台的?

Java 能支持跨平台,主要依赖于 JVM 关系比较大。 JVM也是一个软件,不同的平台有不同的版本。我们编写的Java源码,编译后会生成一种 .class 文件,称为字节码文件。Java虚拟机就是负责将字节码...
清欢渡的头像-编程社钻石会员清欢渡1年前
03612
spring三级缓存是什么?-编程社

spring三级缓存是什么?

三级缓存主要是为了解决单例模式下的循环依赖的问题。 循环依赖指的是两个类中的属性相互依赖对方:例如 A 类中有 B 属性,B 类中有 A属性,从而形成了一个依赖闭环,如下图。 循环依赖问题在Sp...
清欢渡的头像-编程社钻石会员清欢渡1年前
0505