多表查询


多表查询 多表查询,也称为关联查询,指两个或更多个表一起完成查询操作。 前提条件:这些一起查询的表之间是有关系的(一对一、一对多),它们之间一定是有关联字段,这个 关联字段可能建立了外键,也可能没有建立外键。比如:员工表和部门表,这两个表依靠“部门编号”进 行关联。 笛卡尔积 笛卡尔乘积是一个数学运

AOP 实现原理


AOP 实现原理 什么是 AOP? 全称为 Aspect Oriented Programming: 面向切面编程 . 通过预编译方式和运行期动态代理的方式实现功能的一种技术 。 利用 AOP 可以对业务逻辑的各个部分进行隔离 , 从而使得业务逻辑各部分之间的耦合度降低 , 提高程序的可重用性 ,

垃圾回收器


垃圾回收器 GC 分类与性能指标 垃圾回收器概述 垃圾收集器没有在规范中进行过多的规定,可以由不同的厂商、不同版本的 JVM 来实现。 由于 JDK 的版本处于高速迭代过程中,因此 Java 发展至今已经衍生了众多的 GC 版本。 从不同角度分析垃圾收集器,可以将 GC 分为不同的类型。

垃圾回收概述和相关算法


垃圾回收概述和相关算法 垃圾回收概述 Java 和 C++ 语言的区别,就在于垃圾收集技术和内存动态分配上,C++ 语言没有垃圾收集技术,需要程序员手动的收集。 垃圾收集,不是 Java 语言的伴生产物。早在 1960 年,第一门开始使用内存动态分配和垃圾收集技术的 Lisp 语言诞生。 关于垃圾收

垃圾回收相关概念


垃圾回收相关概念 System.gc() 在默认情况下,通过 System.gc() 或者 Runtime.getRuntime().gc() 的调用,会显式触发 Full GC,同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存。 然而 System.gc() 调用附带一个免责声明,无法保

字符串常量池


字符串常量池 String的基本特性 String:字符串,使用一对 "" 引起来表示 String s1 = "atguigu" ; // 字面量的定义方式 String s2 = new String("hello"); // new 对象的方式Copy t


堆 堆的核心概述 堆与进程 堆针对一个 JVM 进程来说是唯一的。也就是一个进程只有一个 JVM 实例,一个 JVM 实例中就有一个运行时数据区,一个运行时数据区只有一个堆和一个方法区。 进程包含多个线程,他们是共享同一堆空间的。 一个 JVM

虚拟机栈


虚拟机栈 介绍 为什么使用栈 由于跨平台性的设计,Java 的指令都是根据栈来设计的。不同平台 CPU 架构不同,所以不能设计为基于寄存器的 「如果设计成基于寄存器的,耦合度高,性能会有所提升,因为可以对具体的 CPU 架构进行优化,但是跨平台性大大降低」。 优点是跨平台,指令集小,编译器容易实现,

运行时数据区


运行时数据区 结构图 类的加载 --> 验证 --> 准备 --> 解析 --> 初始化,这几个阶段完成后就会用到执行引擎对我们的类进行使用,同时执行引擎将会使用到我们运行时数据区 运行时数据区结构

JVM和Java体系架构


JVM和Java体系架构 内存结构概述 JVM的位置 JVM 介于操作系统和字节码文件的中间。