排序
Java为什么是跨平台的?
Java 能支持跨平台,主要依赖于 JVM 关系比较大。 JVM也是一个软件,不同的平台有不同的版本。我们编写的Java源码,编译后会生成一种 .class 文件,称为字节码文件。Java虚拟机就是负责将字节码...
JVM内存模型
根据 JVM8 规范,JVM 运行时内存共分为虚拟机栈、堆、元空间、程序计数器、本地方法栈五个部分。 还有一部分内存叫直接内存,属于操作系统的本地内存,也是可以直接操作的。 JVM的内存结构主要...
jdk动态代理和cglib的区别
JDK代理只能对实现接口的类生成代理;CGLib是针对类实现代理,对指定的类生成一个子类,并覆盖其中的方法,这种通过继承类的实现方式,不能代理final修饰的类。 JDK代理使用的是反射机制实现aop...
Java为什么既是编译型也是解释型的?
首先在Java经过编译之后生成字节码文件,接下来进入JVM中,就有两个步骤编译和解释。 如下图: 编译性: Java源代码首先被编译成字节码,JIT 会把编译过的机器码保存起来,以备下次使用。 解释性...
面试题-JS模块化以及模块打包器
如今的前端已经是一套非常复杂的体系了,甚至延伸出来了所谓“微前端”的概念。而支撑这些复杂逻辑的前提就是模块化的概念。 但是,我在和很多的同学沟通(做技术摸底)的过程中,却发现:很多...
spring三级缓存是什么?
三级缓存主要是为了解决单例模式下的循环依赖的问题。 循环依赖指的是两个类中的属性相互依赖对方:例如 A 类中有 B 属性,B 类中有 A属性,从而形成了一个依赖闭环,如下图。 循环依赖问题在Sp...
CompletableFuture原理是什么?
CompletableFuture是由Java 8引入的,在Java8之前我们一般通过Future实现异步。 Future用于表示异步计算的结果,只能通过阻塞或者轮询的方式获取结果,而且不支持设置回调方法,Java 8之前若要...













