- 博客(9)
- 收藏
- 关注
原创 MySQL 之 Explain 输出分析
MySQL 之 Explain 输出分析1、Explain工具介绍使用EXPLAIN关键字可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈 。在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询会返回执行计划的信息,而不是执行这条SQL。注意:如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中2、explain中的列2.1、id列id列的编号是 select 的序列号,有几个 select 就有几个id,并且id的顺
2021-03-28 17:19:00
218
原创 了解Java对象,简单聊聊JVM调优分析
1、oop模型 Klass模型请看jvm底层之类加载,它是Java类的元信息在JVM中的存在形式。而oop模型是Java对象在JVM中的存在形式,在 Java 程序运行的过程中,每创建一个新的对象,在 JVM 内部就会相应地创建一个对应类型的 oop(普通对象指针) 对象。各种 oop 类的共同基类为 oopDesc 类。 在 JVM 内部,一个 Java 对象在内存中的布局可以连续分成两部分:对象头(instanceOopDesc) 和实例数据(成员变量)。 sychronized的底.
2020-12-15 02:14:52
302
原创 执行引擎、JIT、逃逸分析
执行引擎就是 JVM运行Java程序的一套子系统Java是半编译半解释型语言如果面试官问你这个问题,要分成两个角度来讲解 1、javac编译,java运行 2、运行期即时编译+解释执行(字节码解释器解释执行,模板解释器编译执行)两种解释器的底层实现JVM中目前来说有两种解释器具体细节见课堂上操作实战1、字节码解释器做的事情是:java字节码->c++代码->硬编码根据不同的字节码指令,执行不同的操作。比如下面代码0 new #4 <com/luban/tes.
2020-12-12 23:03:43
320
2
原创 干了两晚,带你探索那讲不清的字符串
常量池(后期专门找一篇说一下)1、class文件中 通过命令:javap -verbose XXXConstant pool: #1 = Methodref #23.#50 // java/lang/Object."<init>":()V #2 = Methodref #22.#51 // com/luban/ziya/string/TestIntern.test5:()V #3 = String
2020-12-12 13:46:03
308
11
原创 内存池与JVM内存模型
可以这样理解:JVM内存模型其实就是JVM在启动的时候从操作系统内存中要了一块大内存,然后将这个大内存分成五个区域:方法区、堆区、虚拟机栈、本地方法栈、程序计数器。 这里说的JVM内存模型其实在JVM中是不存在这个实体的,而是将CHeapObj,ValueObj,AllStatic这三的类的子类统称为内存模型。注意区分JVM内存模型与JMM(Java Memory Model)四个名词class文件即硬盘上的.class文件class content类加载器将硬盘上的.class文
2020-12-08 22:07:37
214
2
原创 类加载器子系统与SPI
本篇主要记录一下类加载器类加载子系统 = 三层类加载器 + 双亲委派类加载器 JVM中有两种类型的类加载器,由C++编写的及由Java编写的。除了启动类加载器(Bootstrap Class Loader)是由C++编写的,其他都是由Java编写的。由Java编写的类加载器都继承自类java.lang.ClassLoader。 另外JVM还支持自定义类加载器。 各种类加载器之间存在着逻辑上的父子关系,但不是真正意义上的父子关系,因为它们直接没有从属关系。启动类加载器 因为启动
2020-12-06 00:37:43
159
原创 JVM底层之类加载
1、Klass模型首先明确class 和klass的区别: class是Java类(Java代码),而klass是Java类在JVM的存在形式(c++代码)Java的每个类,在JVM中,都有一个对应的Klass类实例与之对应,存储类的元信息如:常量池、属性信息、方法信息……从继承关系上也能看出来,类的元信息是存储在原空间的(instanceKlass) ,对象是存储在堆区的(InstanceMirrorKlass)类加载器将.class文件加载进系统,将.class文件解析,那么生成的是什么
2020-12-04 19:21:53
598
原创 记录 ftpClient.listFiles(path) 没有反应
最近项目涉及到了ftp上传功能,用到了FTPClient。当执行到ftpClient.listFiles(path);的时候就没有反应了,很烦。。。。。最后我把ftpClient.enterLocalPassiveMode(); 放到了ftpClient.listFiles(path);之前执行就没有问题了。。但是还是不明白什么原理。当ftp根目录下没内容的时候,是没有问题的,当有...
2019-07-04 10:12:59
1992
转载 cron4j 表达式详解
定时调度的工具cron4j,最大的特点就是小巧,简单,功能说实话没什么可说的,就是模仿unix的crontab,门槛非常低,编程非常简单. 可以执行一些简单的定时调度功能,太复杂的还是用quartz比较好.请注意,cron 表达式最多只允许五部分,每部分用空格分隔开来,这五部分从左到右依次表示分、时、天、月、周,其具体规则如下:分 :从 0 到 59时 :从 0 到 23天 :从 ...
2019-07-02 08:48:30
2176
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人