03 2025 档案

摘要:远离那些贬低你理想的人。狭隘的人经常如此,伟大的人会让你感觉自己也可以变好。 ——马克·吐温 按「数据结构」分类:B+tree索引、Hash索引、Full-text索引。 按「物理存储」分类:聚簇索引(主键索引)、二级索引(辅助索引) 按「字段特性」分类:主键索引、唯一索引、普通索引、前缀索引 按「 阅读全文
posted @ 2025-03-30 16:46 Tsukinor 阅读(24) 评论(0) 推荐(0)
摘要:远离那些贬低你理想的人。狭隘的人经常如此,伟大的人会让你感觉自己也可以变好。 ——马克·吐温 大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。 Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间 阅读全文
posted @ 2025-03-30 16:35 Tsukinor 阅读(19) 评论(0) 推荐(0)
摘要:远离那些贬低你理想的人。狭隘的人经常如此,伟大的人会让你感觉自己也可以变好。 ——马克·吐温 在MySQL中,IN 和 EXISTS 都是用来处理子查询的关键词,但它们在功能、性能和使用场景上有各在MySQL中,自的特点和区别。 IN关键字 IN 用于检查左边的表达式是否存在于右边的列表或子查询的结 阅读全文
posted @ 2025-03-30 15:32 Tsukinor 阅读(74) 评论(0) 推荐(0)
摘要:远离那些贬低你理想的人。狭隘的人经常如此,伟大的人会让你感觉自己也可以变好。 ——马克·吐温 外键约束的作用是维护表与表之间的关系,确保数据的完整性和一致性。让我们举一个简单的例子: 假设你有两个表,一个是学生表,另一个是课程表,这两个表之间有一个关系,即一个学生可以选修多门课程,而一门课程也可以被 阅读全文
posted @ 2025-03-30 15:22 Tsukinor 阅读(42) 评论(0) 推荐(0)
摘要:远离那些贬低你理想的人。狭隘的人经常如此,伟大的人会让你感觉自己也可以变好。 ——马克·吐温 IPv4 地址是一个 32 位的二进制数,通常以点分十进制表示法呈现,例如 192.168.1.1。 字符串类型的存储方式:直接将IP 地址作为字符串存储在数据库中,比如可以用 VARCHAR(15)来存储 阅读全文
posted @ 2025-03-30 15:19 Tsukinor 阅读(139) 评论(0) 推荐(0)
摘要:远离那些贬低你理想的人。狭隘的人经常如此,伟大的人会让你感觉自己也可以变好。 ——马克·吐温 数据库有以下几种联表查询类型: 内连接(INNER JOIN) 左外连接(LEFT JOIN) 右外连接(RIGHT JOIN) 全外连接(FULL JOIN) 自连接(SELF JOIN) 内连接(INN 阅读全文
posted @ 2025-03-30 15:13 Tsukinor 阅读(38) 评论(0) 推荐(0)
摘要:远离那些贬低你理想的人。狭隘的人经常如此,伟大的人会让你感觉自己也可以变好。 ——马克·吐温 第一范式(1NF):要求数据库表的每一列都是不可分割的原子数据项。 学号 姓名 家庭信息 202501 李白 2口人,长沙 202502 杜甫 3口人,上海 202503 王维 4口人,南京 在上面的表中, 阅读全文
posted @ 2025-03-30 14:56 Tsukinor 阅读(21) 评论(0) 推荐(0)
摘要:远离那些贬低你理想的人。狭隘的人经常如此,伟大的人会让你感觉自己也可以变好。 ——马克·吐温 SQL数据库,指关系型数据库-主要代表:SQL Server,Oracle,MySQL(开源)。PostgreSQL(开源)。 关系型数据库 存储结构化数据。这些数据逻辑上以行列二维表的形式存在,每一列代表 阅读全文
posted @ 2025-03-30 14:29 Tsukinor 阅读(10) 评论(0) 推荐(0)
摘要:悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 区别一:使用的范围不一样: CMS收集器是老年代的收集器,可以配合新生代的Serial和ParNew收集器一起使用。 G1收集器收集范围是老年代和新生代。不需要结合其他收集器使用 区别二:STW的时间: CMS收集器以最小的停顿时 阅读全文
posted @ 2025-03-29 15:54 Tsukinor 阅读(417) 评论(0) 推荐(0)
摘要:悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 在Java中,垃圾回收机制是自动管理内存的重要组成部分。根据其作用范围和触发条件的不同,可以将GC分为三种类型:MinorGc(也称为Young Gc)、Major Gc(有时也称为Old GC)、以及Full GC。以下是这三种 阅读全文
posted @ 2025-03-29 15:48 Tsukinor 阅读(168) 评论(0) 推荐(0)
摘要:悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 标记-复制算法应用在CMS新生代(ParNew是CMS默认的新生代垃圾回收器)和G1垃圾回收器中。标记复制算法可以分为三个阶段: 标记阶段,即从GC Roots集合开始,标记活跃对象; 转移阶段,即把活跃对象复制到新的内存地址上; 阅读全文
posted @ 2025-03-29 15:43 Tsukinor 阅读(98) 评论(0) 推荐(0)
摘要:悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 标记-清除算法:标记-清除算法分为"标记"和“清除"两个阶段,首先通过可达性分析,标记出所有需要回收的对象,然后统一回收所有被标记的对象。标记-清除算法有两个缺陷,一个是效率问题,标记和清除的过程效率都不高,另外一个就是,清除结束 阅读全文
posted @ 2025-03-29 15:35 Tsukinor 阅读(13) 评论(0) 推荐(0)
摘要:悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 在Java中,判断对象是否为垃圾(即不再被使用,可以被垃圾回收器回收)主要依据两种主流的垃圾回收算法来实现:引用计数法和可达性分析算法。 引用计数法(Reference Counting) 原理:为每个对象分配一个引用计数器,每当 阅读全文
posted @ 2025-03-29 15:33 Tsukinor 阅读(34) 评论(0) 推荐(0)
摘要:悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 Serial收集器(复制算法):新生代单线程收集器,标记和清理都是单线程,优点是简单高效; ParNew收集器 (复制算法):新生代收并行集器,实际上是Serial收集器的多线程版本,在多核CPU环境下有着比Serial更好的表现 阅读全文
posted @ 2025-03-29 15:29 Tsukinor 阅读(17) 评论(0) 推荐(0)
摘要:悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 垃圾回收(Garbage Collection,Gc)是自动管理内存的一种机制,它负责自动释放不再被程序引用的对象所占用的内存,这种机制减少了内存泄漏和内存管理错误的可能性。垃圾回收可以通过多种方式触发具体如下: 内存不足时:当J 阅读全文
posted @ 2025-03-29 15:26 Tsukinor 阅读(22) 评论(0) 推荐(0)
摘要:悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 1.类加载检查:虚拟机遇到一条 new 指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载过、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 2.分配内存: 阅读全文
posted @ 2025-03-29 14:42 Tsukinor 阅读(10) 评论(0) 推荐(0)
摘要:悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 1.加载 类的加载是指将读取类的class文件,将其转化为某种静态数据结构存储在方法区内,并在堆中为之创建一个Class类对象。类的加载过程是由类加载器完成,类加载器由JVM提供。我们也自己也可以通过继承ClassLoader来实 阅读全文
posted @ 2025-03-29 14:36 Tsukinor 阅读(18) 评论(0) 推荐(0)
摘要:悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 内存泄露:内存泄漏是指程序在运行过程中不再使用的对象仍然被引用,而无法被垃圾收集器回收,从而导致可用内存逐渐减少。虽然在Java中,垃圾回收机制会自动回收不再使用的对象,但如果有对象仍被不再使用的引用持有,垃圾收集器无法回收这些内 阅读全文
posted @ 2025-03-29 14:27 Tsukinor 阅读(34) 评论(0) 推荐(0)
摘要:悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 《深入理解Java虚拟机》书中对方法区(Method Area)存储内容描述如下:它用于存储已被虚拟机加载的类型信息、常量、静态变量、即时编译器编译后的代码缓存等。 类信息:包括类的结构信息、类的访问修饰符、父类与接口等信息。 常 阅读全文
posted @ 2025-03-29 14:19 Tsukinor 阅读(26) 评论(0) 推荐(0)
摘要:悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 我们先来说堆。堆是 OOM 故障最主要的发生区域。它是内存区域中最大的一块区域,被所有线程共享,存储着几乎所有的实例对象、数组。所有的对象实例以及数组都要在堆上分配,但是随着 JIT 编译器的发展与逃逸分析技术逐渐成熟,栈上分配、 阅读全文
posted @ 2025-03-29 14:15 Tsukinor 阅读(47) 评论(0) 推荐(0)
摘要:悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 类加载器Loading -- 虚拟机自带的加载器 1.Boot Strap Class Loader : 启动类(根加载器) 2.Extension Class Loader: 扩展类加载器 3.Application Class 阅读全文
posted @ 2025-03-29 14:08 Tsukinor 阅读(19) 评论(0) 推荐(0)
摘要:悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 HashMap 实现: 基于哈希表的数据结构,使用链地址法解决哈希冲突。从 Java 8 开始,当链表长度超过一定阈值时,链表会转换成红黑树,以提高查询性能。 线程安全: HashMap 是非线程安全的。在多线程环境下,如果多个线 阅读全文
posted @ 2025-03-28 10:57 Tsukinor 阅读(45) 评论(0) 推荐(0)
摘要:悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 List 是一个有序的集合,允许重复元素。List 中的元素可以通过索引来访问和操作。 主要实现类: ArrayList 基于动态数组实现,支持快速的随机访问和修改操作。插入和删除元素(特别是在中间位置)较慢,因为需要移动元素;如 阅读全文
posted @ 2025-03-28 10:51 Tsukinor 阅读(13) 评论(0) 推荐(0)
摘要:我们不能用创造问题的思维来解决问题。 ——阿尔伯特·爱因斯坦 像会永生那样去学习,像明天就要死亡那样去生活。 ——圣雄甘地 远离那些贬低你理想的人。狭隘的人经常如此,伟大的人会让你感觉自己也可以变好。 ——马克·吐温 当你把欢乐带给别人,你会收获更多欢乐。你应该认真思考自己能给他人带来什么样的幸福。 阅读全文
posted @ 2025-03-28 10:43 Tsukinor 阅读(21) 评论(0) 推荐(0)
摘要:我们只有敢于冒险,生活才能变得更好。我们首先要承担的最大风险,就是变得诚实。 ——沃尔特·安德森 final final 关键字主要有以下三个方面的作用:用于修饰类、方法和变量。 修饰类:当 final 修饰一个类时,表示这个类不能被继承,是类继承体系中的最终形态。例如,Java中的 string 阅读全文
posted @ 2025-03-28 10:12 Tsukinor 阅读(13) 评论(0) 推荐(0)
摘要:当你改变想法的时候,记得也要改变你的世界。 ——诺曼·文森特·皮尔 抽象类和接口的区别 两者的特点: 抽象类用于描述类的共同特性和行为,可以有成员变量、构造方法和具体方法。适用于有明显继承关系的场景。 接口用于定义行为规范,可以多实现,只能有常量和抽象方法(Java8 以后可以有默认方法和静态方法) 阅读全文
posted @ 2025-03-28 10:07 Tsukinor 阅读(45) 评论(0) 推荐(0)
摘要:当你把欢乐带给别人,你会收获更多欢乐。你应该认真思考自己能给他人带来什么样的幸福。 ——埃莉诺·罗斯福 面向对象的三个基本特征是:封装、继承、多态 1.封装 封装是指将对象的状态(属性)和行为(方法)包装在一起,并对外界隐藏对象的内部实现细节,限制外部对对象的直接访问,只提供必要的接口(方法)与外界 阅读全文
posted @ 2025-03-28 09:49 Tsukinor 阅读(98) 评论(0) 推荐(0)
摘要:远离那些贬低你理想的人。狭隘的人经常如此,伟大的人会让你感觉自己也可以变好。 ——马克·吐温 为什么需要 BigDecimal? Java 的基本数据类型 double 和 float 使用二进制浮点数表示,会导致精度问题: System.out.println(0.1 + 0.2); // 输出 阅读全文
posted @ 2025-03-27 15:16 Tsukinor 阅读(31) 评论(0) 推荐(0)
摘要:像会永生那样去学习,像明天就要死亡那样去生活。 ——圣雄甘地 String Java提供了String类来创建和操作字符串。在二进制中可以看到,String类内部的实现也是一个字节数组,这个数组是final类型的,因此String是不可变的对象,每次在对字符串类进行改变的时候都会生成一个新的字符串对 阅读全文
posted @ 2025-03-27 14:53 Tsukinor 阅读(42) 评论(0) 推荐(0)
摘要:“我们不能用创造问题的思维来解决问题。” ——阿尔伯特·爱因斯坦 Integer Integer对应是int类型的包装类,就是把int类型包装成Object对象,对象封装有很多好处,可以把属性也就是数据跟处理这些数据的方法结合在一起,比如Integer就有parselnt()等方法来专门处理int型 阅读全文
posted @ 2025-03-27 14:40 Tsukinor 阅读(29) 评论(0) 推荐(0)
摘要:世界上只有两种编程语言——要么充满了抱怨;要么没人使用 ——Bjarne Stroustrup (C++ 之父) Java支持数据类型分为两类:基本数据类型和引用数据类型 Java的基本数据类型分为四类八种: 1.整数类型 : (1)byte : 1个字节,有符号,取值范围为 -128 到 127。 阅读全文
posted @ 2025-03-27 12:54 Tsukinor 阅读(57) 评论(0) 推荐(0)
摘要:非淡泊无以明志 非宁静无以致远 ——《淮南子》刘安 JDK、JRE、JVM三者的关系 JDK是Java开发工具包,是开发Java程序所需的工具集合。它包含了JVM、编译器(jiavac)、调试器(jdb)等开发工具,以及一系列的类库(如Java标准库和开发工具库)。JDK提供了开发、编译、调试和运行 阅读全文
posted @ 2025-03-27 12:25 Tsukinor 阅读(11) 评论(0) 推荐(0)
摘要:学习不是填满水桶,而是点燃火焰! Education is not the filling of a pail but the lighting of a fire. ——叶芝 (爱尔兰诗人) Java的特点 平台无关性:Java的编写一次,运行无处不在 是其最大的特点之一。Java编译器将源代码编 阅读全文
posted @ 2025-03-27 12:21 Tsukinor 阅读(53) 评论(0) 推荐(0)