Java 第43页
Java为什么是跨平台的?-编程社

Java为什么是跨平台的?

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

JVM内存模型

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

jdk动态代理和cglib的区别

JDK代理只能对实现接口的类生成代理;CGLib是针对类实现代理,对指定的类生成一个子类,并覆盖其中的方法,这种通过继承类的实现方式,不能代理final修饰的类。 JDK代理使用的是反射机制实现aop...
清欢渡的头像-编程社钻石会员清欢渡1年前
0558
Java为什么既是编译型也是解释型的?-编程社

Java为什么既是编译型也是解释型的?

首先在Java经过编译之后生成字节码文件,接下来进入JVM中,就有两个步骤编译和解释。 如下图: 编译性: Java源代码首先被编译成字节码,JIT 会把编译过的机器码保存起来,以备下次使用。 解释性...
清欢渡的头像-编程社钻石会员清欢渡1年前
0546
面试题-JS模块化以及模块打包器-编程社

面试题-JS模块化以及模块打包器

如今的前端已经是一套非常复杂的体系了,甚至延伸出来了所谓“微前端”的概念。而支撑这些复杂逻辑的前提就是模块化的概念。 但是,我在和很多的同学沟通(做技术摸底)的过程中,却发现:很多...
清欢渡的头像-编程社钻石会员清欢渡1年前
05210
spring三级缓存是什么?-编程社

spring三级缓存是什么?

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

CompletableFuture原理是什么?

CompletableFuture是由Java 8引入的,在Java8之前我们一般通过Future实现异步。 Future用于表示异步计算的结果,只能通过阻塞或者轮询的方式获取结果,而且不支持设置回调方法,Java 8之前若要...