<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[HK_Milky的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/HK_Milky</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; HK_Milky]]></copyright><item><title><![CDATA[第02章、MySQL环境搭建]]></title><link>https://blog.youkuaiyun.com/HK_Milky/article/details/123303581</link><guid>https://blog.youkuaiyun.com/HK_Milky/article/details/123303581</guid><author>HK_Milky</author><pubDate>Fri, 09 May 2025 21:43:27 +0800</pubDate><description><![CDATA[文章目录第02章、MySQL环境搭建1、MySQL的卸载【1】停止MySQL服务【2】软件的卸载【3】残余文件的清理【4】清理注册表（选做）【5】删除环境变量配置2、MySQL的下载、安装、配置【1】MySQL的4大版本【2】软件的下载【3】MySQL8.0版本的安装【4】配置MySQL8.0【5】配置MySQL8.0 环境变量【6】MySQL5.7 版本的安装、配置【7】安装失败问题3、MySQL的登录【1】服务的启动与停止【1.1】使用图形界面工具【1.2】使用命令行工具【2】自带客户端的登录与退出【2]]></description><category></category></item><item><title><![CDATA[第01章、数据库概述]]></title><link>https://blog.youkuaiyun.com/HK_Milky/article/details/123279630</link><guid>https://blog.youkuaiyun.com/HK_Milky/article/details/123279630</guid><author>HK_Milky</author><pubDate>Sat, 05 Mar 2022 22:59:34 +0800</pubDate><description><![CDATA[文章目录第01章、数据库概述1、为什么要使用数据库2、数据库与数据库管理系统【1】数据库的相关概念【2】数据库与数据库管理系统的关系【3】常见的数据库管理系统排名(DBMS)【4】常见的数据库介绍3、MySQL介绍【1】概述【2】MySQL发展史重大事件【3】关于MySQL 8.0【4】Why choose MySQL?【5】Oracle vs MySQL4、RDBMS 与 非RDBMS【1】关系型数据库(RDBMS)【1.1】实质【1.2】优势【2】非关系型数据库(非RDBMS)【2.1】介绍【2.2】有]]></description><category></category></item><item><title><![CDATA[17、分析GC日志]]></title><link>https://blog.youkuaiyun.com/HK_Milky/article/details/122915837</link><guid>https://blog.youkuaiyun.com/HK_Milky/article/details/122915837</guid><author>HK_Milky</author><pubDate>Sun, 13 Feb 2022 23:02:33 +0800</pubDate><description><![CDATA[文章目录第1章、GC日志参数第2章、GC日志格式1、GC分类2、GC日志分类【1】MinorGC【2】FullGC3、GC日志结构剖析【1】垃圾收集器【2】GC原因【3】GC前后情况【4】GC时间4、Minor GC 日志解析5、Full GC 日志解析第3章、GC日志分析工具1、GCEasy2、GCViewer3、其他工具
第1章、GC日志参数


-verbose:gc

输出日志信息，默认输出的标准输出
可以独立使用



-XX:+PrintGC

等同于-verbose:gc，表示打开简化的日志
]]></description><category></category></item><item><title><![CDATA[16、JVM运行时参数]]></title><link>https://blog.youkuaiyun.com/HK_Milky/article/details/122915764</link><guid>https://blog.youkuaiyun.com/HK_Milky/article/details/122915764</guid><author>HK_Milky</author><pubDate>Sun, 13 Feb 2022 23:02:07 +0800</pubDate><description><![CDATA[文章目录第1章、JVM参数选项1、类型1：标准参数选项【1】特点【2】各种选项【3】补充内容：-server与-client2、类型2：-X参数选项【1】特点【2】各种选项【3】JVM的JIT编译模式相关的选项【4】注意事项3、类型3：-XX参数选项【1】特点与作用【2】分类【3】注意事项第2章、添加JVM参数选项1、Eclipse2、IDEA3、运行jar包4、通过Tomcat运行war包5、程序运行过程中第3章、常用的JVM参数选项【1】打印设置的XX选项及值【2】堆、栈、方法区等内存大小设置【2.1】]]></description><category></category></item><item><title><![CDATA[15、JVM监控及诊断工具-GUI篇]]></title><link>https://blog.youkuaiyun.com/HK_Milky/article/details/122915391</link><guid>https://blog.youkuaiyun.com/HK_Milky/article/details/122915391</guid><author>HK_Milky</author><pubDate>Sun, 13 Feb 2022 22:53:34 +0800</pubDate><description><![CDATA[文章目录第1章、工具概述第2章、jConsole1、基本概述2、启动3、三种连接方式【1】Local【2】Remote【3】Advanced4、主要作用第3章、Visual VM1、基本概述2、插件的安装3、连接方式4、主要功能第4章、Eclipse MAT1、基本概述2、获取堆dump文件【1】dump文件内存【2】说明【2】获取dump文件3、分析堆dump文件【1】histogram【2】thread overview【3】获得对象互相引用的关系【4】浅堆与深堆【5】支配树第5章、关于内存泄露的那点事]]></description><category></category></item><item><title><![CDATA[14、JVM监控及诊断工具-命令行篇]]></title><link>https://blog.youkuaiyun.com/HK_Milky/article/details/122915287</link><guid>https://blog.youkuaiyun.com/HK_Milky/article/details/122915287</guid><author>HK_Milky</author><pubDate>Sun, 13 Feb 2022 22:26:26 +0800</pubDate><description><![CDATA[文章目录第1章、概述1、简单命令行工具第2章、jps：查看正在运行的Java进程1、基本情况2、基本语法【1】options参数【2】hostid参数第3章、jstat：查看JVM统计信息1、简介2、基本语法【1】option参数【2】interval参数【3】count参数【4】-t参数【5】-h参数3、补充第4章、jinfo：实时查看和修改JVM配置参数1、基本情况2、基本语法【1】查看【2】修改3、拓展第5章、jmap：导出内存映像文件&amp;内存使用情况1、基本情况2、基本语法3、使用：导出内存映]]></description><category></category></item><item><title><![CDATA[13、概述篇]]></title><link>https://blog.youkuaiyun.com/HK_Milky/article/details/122915268</link><guid>https://blog.youkuaiyun.com/HK_Milky/article/details/122915268</guid><author>HK_Milky</author><pubDate>Sun, 13 Feb 2022 22:19:40 +0800</pubDate><description><![CDATA[文章目录第1章、大厂面试题第2章、背景说明1、生产环境中遇到的问题2、为什么要调优3、不同阶段的考虑第3章、调优概述1、监控的依据2、调优的大方向第4章、性能优化的步骤1、第1步：性能监控【发现问题】2、第2步：性能分析【排查问题】3、第3步：性能调优【解决问题】第5章、性能评价/测试指标1、停顿时间（或响应时间）2、吞吐量3、并发数4、内存占用5、相互间的关系
第1章、大厂面试题


支付宝：

支付宝三面：JVM性能调优都做了什么？



小米：


有做过JVM内存优化吗？


从SQL、JVM、架构]]></description><category></category></item><item><title><![CDATA[12、再谈类的加载器]]></title><link>https://blog.youkuaiyun.com/HK_Milky/article/details/122564771</link><guid>https://blog.youkuaiyun.com/HK_Milky/article/details/122564771</guid><author>HK_Milky</author><pubDate>Sun, 13 Feb 2022 22:17:30 +0800</pubDate><description><![CDATA[第1章、概述

类加载器是JVM执行类加载机制的前提
ClassLoader的作用：

ClassLoader是Java的核心组件，所有的Class都是由ClassLoader进行加载的
ClassLoader负责通过各种方式将Class信息的二进制数据流读入JVM内部，转换为一个与目标类对应的java.lang.Class对象实例。然后交给Java虚拟机进行链接、初始化等操作。因此，ClassLoader在整个装载阶段，只能影响到类的加载，而无法通过ClassLoader去改变类的链接和初始化行为。至于它]]></description><category></category></item><item><title><![CDATA[11、类的加载过程(类的生命周期)详解]]></title><link>https://blog.youkuaiyun.com/HK_Milky/article/details/121583213</link><guid>https://blog.youkuaiyun.com/HK_Milky/article/details/121583213</guid><author>HK_Milky</author><pubDate>Sat, 27 Nov 2021 20:51:56 +0800</pubDate><description><![CDATA[文章目录第1章、概述第2章、过程1：Loading(加载)阶段1、加载完成的操作2、二进制的获取方式3、类模型与Class实例的位置4、数组类的加载第3章、过程2：Linking(链接)阶段1、环节1：Verification(验证)2、环节2：Preparation(准备)3、环节3：Resolution(解析)第4章、过程3：Initialization(初始化)阶段1、static与final的搭配问题2、\()的线程安全性3、类的初始化情况：主动使用 vs 被动使用【1】主动使用【2】被动使用第5章]]></description><category></category></item><item><title><![CDATA[10、字节码指令集与解析举例]]></title><link>https://blog.youkuaiyun.com/HK_Milky/article/details/121503740</link><guid>https://blog.youkuaiyun.com/HK_Milky/article/details/121503740</guid><author>HK_Milky</author><pubDate>Tue, 23 Nov 2021 22:01:03 +0800</pubDate><description><![CDATA[文章目录第1章、概述1、执行模型2、字节码与数据类型3、指令分析第2章、加载与存储指令1、复习：操作数栈与局部变量表【1】操作数栈（Operand Stacks）【2】局部变量表（Local Variables）2、局部变量压栈指令【1】简介【2】压栈指令集【3】举例第2章、加载与存储指令3、常量入栈指令【1】常量入栈指令集【2】简介4、出栈装入局部变量表指令【1】出栈装入局部变量表指令集第3章、算数指令1、作用与分类2、byte、short、char和boolean类型说明3、运算时溢出4、运算模式5、N]]></description><category></category></item><item><title><![CDATA[9、Class文件结构]]></title><link>https://blog.youkuaiyun.com/HK_Milky/article/details/121503981</link><guid>https://blog.youkuaiyun.com/HK_Milky/article/details/121503981</guid><author>HK_Milky</author><pubDate>Tue, 23 Nov 2021 22:00:08 +0800</pubDate><description><![CDATA[文章目录第1章、Class文件结构1、概述【1】字节码文件的跨平台性【2】Java的前端编译器【3】通过字节码指令查看代码细节2、虚拟机的基石：Class文件3、Class文件结构【1】字节码解析【2】魔数：Class文件的标志【3】Class文件版本号【4】常量池：存放所有常量【3.1】常量池计数器【3.2】常量池表【3.2.1】字面量和符号引用【3.2.2】常量类型和结构【3.2.3】总结【5】访问标识【6】类索引、父类索引、接口索引集合【6.1】类索引【6.2】父类索引【6.3】interfaces【]]></description><category></category></item><item><title><![CDATA[1、Spring——IOC、DI]]></title><link>https://blog.youkuaiyun.com/HK_Milky/article/details/121470742</link><guid>https://blog.youkuaiyun.com/HK_Milky/article/details/121470742</guid><author>HK_Milky</author><pubDate>Mon, 22 Nov 2021 15:58:41 +0800</pubDate><description><![CDATA[文章目录第1章、Spring概述1、Spring简介2、Spring体系结构第2章、入门案例1、案例代码2、几个细节第3章、IOC和Bean的配置1、IOC和DI2、通过类型获取bean3、简单的Spring配置【1】别名配置【2】Bean配置【3】import配置4、给bean的属性赋值【1】赋值的途径【1.1】通过bean的setXxx()方法赋值【1.2】通过bean的构造器赋值【1.3】给bean的级联属性赋值【1.4】p名称空间【1.5】c命名空间注入（了解）【2】可以使用的值【2.1】字面量【2]]></description><category></category></item><item><title><![CDATA[8、垃圾回收]]></title><link>https://blog.youkuaiyun.com/HK_Milky/article/details/121257857</link><guid>https://blog.youkuaiyun.com/HK_Milky/article/details/121257857</guid><author>HK_Milky</author><pubDate>Wed, 10 Nov 2021 22:14:52 +0800</pubDate><description><![CDATA[文章目录第1章、垃圾回收概述1、什么是垃圾【1】什么是垃圾？2、为什么需要GC？3、早期的垃圾回收4、Java垃圾回收机制【1】担忧第2章、垃圾回收相关算法1、标记阶段：引用计数算法【1】垃圾标记阶段：对象存活判断【2】引用计数算法【3】小结2、标记阶段：可达性分析算法【1】可达性分析算法【2】GC Roots【3】注意【4】指针碰撞3、对象的finalization机制【1】对象的finalization机制【2】生存还是死亡？【3】具体过程4、MAT与JProfiler的GC Roots溯源【1】MAT]]></description><category></category></item><item><title><![CDATA[7、StringTable]]></title><link>https://blog.youkuaiyun.com/HK_Milky/article/details/121092776</link><guid>https://blog.youkuaiyun.com/HK_Milky/article/details/121092776</guid><author>HK_Milky</author><pubDate>Tue, 02 Nov 2021 07:55:53 +0800</pubDate><description><![CDATA[文章目录第1章、StringTable1、String的基本特性2、String的内存分配3、字符串拼接操作4、intern()的使用【1】面试题5、StringTable的垃圾回收6、G1中的String去重操作
第1章、StringTable
1、String的基本特性

1、String：字符串，使用一对""引起来表示
2、String声明为final的，不可被继承
3、String实现了serializable接口：表示字符串是支持序列化的。实现了Comparable接口：表示String可以比较大]]></description><category></category></item><item><title><![CDATA[6、执行引擎]]></title><link>https://blog.youkuaiyun.com/HK_Milky/article/details/121073438</link><guid>https://blog.youkuaiyun.com/HK_Milky/article/details/121073438</guid><author>HK_Milky</author><pubDate>Mon, 01 Nov 2021 08:30:02 +0800</pubDate><description><![CDATA[文章目录第1章、执行引擎1、执行引擎的概述【1】简介【2】执行引擎的工作过程2、Java代码编译和执行的过程3、机器码、指令、汇编语言【1】机器码【2】指令【3】指令集【4】汇编语言【5】高级语言【6】字节码4、解释器【1】简介【2】解释器工作机制（或工作任务）【3】解释器分类【4】现状5、JIT编译器【1】Java代码的执行分类【2】为什么还要保留解释器?【3】HotSpot JVM的执行方式【4】JIT编译器【5】热点代码及探测方式【6】方法调用计数器【6.1】热度衰减【7】回边计数器【8】HotSpo]]></description><category></category></item><item><title><![CDATA[5、直接内存与对象的实例化内存布局与访问定位]]></title><link>https://blog.youkuaiyun.com/HK_Milky/article/details/121073416</link><guid>https://blog.youkuaiyun.com/HK_Milky/article/details/121073416</guid><author>HK_Milky</author><pubDate>Mon, 01 Nov 2021 08:29:26 +0800</pubDate><description><![CDATA[文章目录第1章、对象实例化1、创建对象的方式2、创建对象的步骤【1】判断对象对应的类是否加载、链接、初始化【2】为对象分配内存【3】处理并发安全问题【4】初始化分配到的空间【5】设置对象的对象头【6】执行init方法进行初始化第2章、对象的内存布局1、对象头（Header）【1】运行时元数据（Mark Word）【2】类型指针2、实例数据（Instance Data）【1】说明【2】规则3、对齐填充（Padding）4、小结第3章、对象的访问定位1、JVM是如何通过栈帧中的对象引用访问到其内部的对象实例的呢]]></description><category></category></item><item><title><![CDATA[4、运行时数据区【线程共享部分】]]></title><link>https://blog.youkuaiyun.com/HK_Milky/article/details/120999688</link><guid>https://blog.youkuaiyun.com/HK_Milky/article/details/120999688</guid><author>HK_Milky</author><pubDate>Wed, 27 Oct 2021 19:25:14 +0800</pubDate><description><![CDATA[文章目录第1章、堆1、堆(Heap)的核心概述【1】简单介绍【2】内存细分【3】堆空间内部结构（JDK7）【4】堆空间内部结构（JDK8）【5】JDK7与JDK8的堆的区别2、设置堆内存大小与OOM【1】堆空间大小的设置3、年轻代与老年代【1】简介【2】参数设置4、图解对象分配过程【1】对象分配过程概述【1.1】对象分配（一般情况）【1.2】对象分配（特殊情况）【2】常用调优工具5、Minor GC、Major GC与Full GC【1】简介【2】最简单的分代式GC策略的触发条件6、堆空间分代思想7、内存分]]></description><category></category></item><item><title><![CDATA[3、运行时数据区【线程独占部分】]]></title><link>https://blog.youkuaiyun.com/HK_Milky/article/details/120913574</link><guid>https://blog.youkuaiyun.com/HK_Milky/article/details/120913574</guid><author>HK_Milky</author><pubDate>Fri, 22 Oct 2021 21:25:24 +0800</pubDate><description><![CDATA[第1章、概述
1、简介
内存是非常重要的系统资源，是硬盘和CPU的中间仓库及桥梁，承载着操作系统和应用程序的实时运行。JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略，保证了JVM的高效稳定运行。不同的JVM对于内存的划分方式和管理机制存在着部分差异。
灰色的为单独线程私有的，红色的为多个线程共享的

每个线程：独立包括程序计数器、栈、本地栈
线程间共享：堆、堆外内存（永久代或元空间、代码缓存）




2、关于线程间共享的说明

每个JVM只有一个Runtime实例。即为运行时环境，相当]]></description><category></category></item><item><title><![CDATA[2、类加载子系统]]></title><link>https://blog.youkuaiyun.com/HK_Milky/article/details/120913498</link><guid>https://blog.youkuaiyun.com/HK_Milky/article/details/120913498</guid><author>HK_Milky</author><pubDate>Fri, 22 Oct 2021 21:17:57 +0800</pubDate><description><![CDATA[第1章、内存结构概述



第2章、类加载器与类加载过程
1、类加载器子系统作用


类加载器子系统负责从文件系统或者网络中加载class文件，class文件在文件开头有特定的文件标识。
classLoader只负责class文件的加载，至于它是否可以运行，则由ExecutionEngine决定。
加载的类信息存放于一块称为方法区的内存空间。除了类的信息外，方法区中还会存放运行时常量池信息，可能还包括字符串字面量和数字常量（这部分常量信息是Class文件中常量池部分的内存映射）

2、类加载器ClassLo]]></description><category></category></item><item><title><![CDATA[1、JVM与Java体系结构]]></title><link>https://blog.youkuaiyun.com/HK_Milky/article/details/120913451</link><guid>https://blog.youkuaiyun.com/HK_Milky/article/details/120913451</guid><author>HK_Milky</author><pubDate>Fri, 22 Oct 2021 21:13:28 +0800</pubDate><description><![CDATA[第1章、基本知识

1、Java：跨平台的语言
查看语言排行榜：https://www.tiobe.com/tiobe-index/

2、JVM：跨语言的平台


随着Java7的正式发布，Java虚拟机的设计者们通过JSR-292规范基本实现在Java虚拟机平台上运行非Java语言编些的程序



Java虚拟机根本不关心运行在其内部的程序到底是使用何种编程语言编写的，它只关心“字节码”文件。也就是说Java虚拟机拥有语言无关性，并不会单纯地与Java语言“终身绑定”，只要其他编程语言的编译结果满足并包]]></description><category></category></item></channel></rss>