![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
架构师-性能优化
文章平均质量分 95
立志成为一名架构师
zhz小白
只是为了自己学习,不爽的别看,谢谢理解---不要白嫖咯,点点赞啥的
展开
-
JVM——对象创建与内存分配机制
文章目录1、对象的创建1.1、类加载检查1.2、分配内存1.3、初始化1.4、设置对象头1.5、执行方法1、对象的创建对象创建的主要流程:1.1、类加载检查虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。new指令对应到语言层面上讲是,new关键词、对象克隆、对象序列化等。1.2、分配内存 在类加载检查通过后,接下来虚拟机将为新生对象分配内存原创 2021-04-30 23:06:31 · 1214 阅读 · 0 评论 -
JVM——字节码指令手册
请合理利用Ctrl+F栈和局部变量操作将常量压入栈的指令aconst_null 将null对象引用压入栈iconst_m1 将int类型常量-1压入栈iconst_0 将int类型常量0压入栈iconst_1 将int类型常量1压入操作数栈iconst_2 将int类型常量2压入栈iconst_3 将int类型常量3压入栈iconst_4 将int类型常量4压入栈iconst_5 将int类型常量5压入栈lconst_0 将long类型常量0压入栈lconst_1 将long类型常量原创 2021-04-29 23:27:30 · 1264 阅读 · 0 评论 -
面试专题——JVM(JDK8)
文章目录1、类加载机制2、双亲委派机制(先找父亲加载,不行再由儿子自己加载)2.1、类加载器2.2、加载器初始化过程2.3、双亲委派机制2.4、为什么要设计双亲委派机制?2.5、全盘负责委托机制2.6、自定义类加载器示例3、tomcat怎么破解类加载机制4、内存模型4.1、线程私有区域4.2、线程共享区域5、对象的创建5.1、对象大小与指针压缩5.1.1、对象大小5.1.2、什么是java对象的指针压缩?5.1.3、为什么要进行指针压缩?6、对象的分配过程6.1、栈上分配6.2、对象在Eden区分配(大部分原创 2021-01-23 14:02:29 · 12293 阅读 · 41 评论 -
面试专题——JUC并发编程+集合
sss原创 2021-01-20 16:43:53 · 4080 阅读 · 2 评论 -
MySQL—— MySQL的索引最佳实践
文章目录1、测试表2、最佳实战2.1、全值匹配2.2、最左前缀法则2.3、不在索引列上做任何操作(计算、函数、(自动or手动)类型转换),会导致索引失效而转向全表扫描2.4、存储引擎不能使用索引中范围条件右边的列2.5、尽量使用覆盖索引(只访问索引的查询(索引列包含查询列)),减少 select * 语句2.6、.mysql在使用不等于(!=或者<>),not in ,not exists 的时候无法使用索引会导致全表扫描< 小于、 > 大于、 <=、>= 这些,mysq原创 2021-01-26 16:01:01 · 1350 阅读 · 0 评论 -
MYSQL —— 一条SQL在MySQL中是如何执行
文章目录1、MySQL的内部组件结构1.1、Server层1.2、Store层1.3、演示的DDL:2、连接器1、MySQL的内部组件结构总体来说:MySQL 可以分为 Server 层和存储引擎层两部分。1.1、Server层主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。1.2、Store层存储引擎层负责数据的存储和提原创 2021-01-14 01:01:35 · 1553 阅读 · 0 评论 -
MySQL—— MySQL的执行计划详解(Explain)
文章目录1、MySQL执行计划的定义2、MySQL整个查询的过程3、如何启动执行计划4、Explain分析示例4、explain的 两个变种(我的版本是5.7)5、explain中的列5.1、id5.2、select_type5.3、table5.4、type5.5、possible_keys5.6、key5.7、key_len5.8、ref5.9、rows5.10、fitered5.11、Extra1、MySQL执行计划的定义在 MySQL 中可以通过 explain 关键字模拟优化器执行 SQL语原创 2021-01-06 18:20:18 · 17248 阅读 · 1 评论 -
JVM——jvisualvm安装Visual GC插件
1、地址:visualvm新访问地址进入“Plugins”,找到对应自己JDK版本的更新地址2、进入jvisualvm的插件管理“工具” - “插件”在"设置"中修改url地址为刚才我们在github上找到的对应我们JDK版本的地址修改成功后,可用插件即可刷新出来3、安装VisualGC插件4、重启即可看到VisualGC一:整个区域分为三部分:spaces、graphs、histogram 1,spaces区域:代表虚拟机内存分布情况。从图中可以看出,虚拟机被分为Pe原创 2020-12-31 13:23:26 · 1364 阅读 · 0 评论 -
JVM——彻底剖析JVM类加载机制(二)
文章目录1、往期地址2、Tomcat如何打破双亲委派机制2.1、以Tomcat类加载为例,Tomcat 如果使用默认的双亲委派类加载机制行不行?3、Tomcat自定义加载器详解4、模拟实现Tomcat的webappClassLoader加载自己war包应用内不同版本类实现相互共存与隔离5、模拟实现Tomcat的JasperLoader热加载1、往期地址彻底剖析JVM类加载机制(一)2、Tomcat如何打破双亲委派机制2.1、以Tomcat类加载为例,Tomcat 如果使用默认的双亲委派类加载机制行不原创 2020-12-31 13:07:38 · 1364 阅读 · 2 评论 -
JVM——彻底剖析JVM类加载机制(一)
文章标题一、类加载机制1、类加载运行全过程1.1、证明1.2、类加载器和双亲委派机制1.3、加载器初始化过程:2、双亲委派机制2.1、为什么要设计双亲委派机制?2.2、全盘负责委托机制2.3、自定义类加载器示例2.4、如何打破双亲委派机制呢一、类加载机制1、类加载运行全过程当我们用java命令运行某个类的main函数启动程序时,首先需要通过类加载器把主类加载到JVM。package com.zhz.jvm;/** 1. @author :zhz 2. @date :Created in 20原创 2020-12-31 12:47:10 · 1455 阅读 · 2 评论