java
文章平均质量分 84
小埋的哥哥--hmy
这个作者很懒,什么都没留下…
展开
-
垃圾回收器详解
介绍一下垃圾回收器(不分顺序)Serial:新生代垃圾回收器,单线程,采用的是复制算法,这个垃圾回收器在工作的时候,用户线程是不可以能工作的,这个用户线程停顿的时间,就称为stop-the-world,简称STWParallel Scavenge:新生代垃圾回收器,多线程,复制算法,会产生STW(JDK8默认的垃圾回收器组合是parallel Scavenge和parallel Old)ParNew:新生代垃圾回收器,多线程,采用复制算法,会产生CMS,这个和parallel scavenge类原创 2021-01-07 11:04:42 · 290 阅读 · 1 评论 -
索引优化实战
1、 全值匹配2、 最佳左前缀法则:如果索引多列,要遵守最左前缀法则。指的是查询从索引的最左钱磊开始且不跳过索引中的列3、 不在索引上做任何操作(计算,函数,类型转换),会导致索引失效4、 存储引擎不能使用索引中范围条件右边的列5、 尽量使用覆盖索引(只访问索引的查询(索引列和查询列一致)),减少select *6、 Mysql在使用不等于(!=或者<>)的时候无法使用索引会导致全表扫描7、 Is null 和is not null 也无法使用索引8、 Like以通配符开头(’%.原创 2020-12-23 16:25:12 · 171 阅读 · 0 评论 -
学习Explain
使用EXPLAIN关键字可以模拟优化器执行SQL的查询语句,从而知道MYSQL是如何处理你的SQL语句的。通常我们使用此功能分析是否需要进行sql优化或者索引优化。怎么使用EXPLAIN?使用EXPLAIN的方法很简单,在查询语句前面,添加EXPLAIN就可以了。例如:explain SELECT * from t1;id:表示查询中执行select子句或操作表的顺序三种情况: Id相同,从上到下执行 Id不同,如果是子查询,id序号会依次递增,id大的先执行 Id有相同有不相同,相同的原创 2020-12-21 11:37:50 · 155 阅读 · 0 评论 -
Mysql的七种join
首先准备一下需要的表和数据(以Mysql为准)CREATE TABLE `boy` ( `bid` int(11) NOT NULL, `bname` varchar(50) NOT NULL, `gid` int(11) DEFAULT NULL, PRIMARY KEY (`bid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO `boy` VALUES ('1', '李雷', '1');INSERT INTO `boy` VA原创 2020-12-14 11:35:17 · 125 阅读 · 1 评论 -
学习日记3--多线程
复习多线程,首先复习多线程的状态图首先先复习一下状态:新建状态(new):线程对象被创建。也就是 Thread thread = new Thread();就绪状态(runnable):线程执行了start()方法,线程进入就绪状态,此时线程还没有获取的CPU,还没有执行,只有在就绪状态的线程才能获取CPU。运行状态(running):运行状态,线程获取了CPU,正在执行该线程,只有就绪状态才能进入运行状态阻塞状态:正在运行中的线程,因为某种原因暂时放弃对CPU的使用权,停止执行。直到再次进入原创 2020-11-17 10:55:10 · 90 阅读 · 0 评论 -
学习日记2--JVM(下)
前面复习了JVM加载过程和JVM的内存区域,其中我们讲到了堆。堆是我们程序员遇到问题最多的地方,也是面试必问的地方,因为堆是垃圾回收主要工作的地方,我们在堆上建立对象,垃圾回收机制负责回收我们不再用的对象,那么引出第一个问题,JVM怎么知道我们那个对象不用了?如何判定对象为垃圾对象引用计数法原理:给对象加一个计数器,当对象被引用时,加1,当引用失效时减1,任何时刻,当计数器为0时,对象被回收。优点:实现简单,判断效率高确定:无法解决相互循环引用问题关于相互循环引用的问题,简单举个例子Husba原创 2020-11-10 15:19:09 · 94 阅读 · 0 评论 -
学习日记1--JVM(上)
Jvm是什么Jvm是Java Virtual Machine的缩写,它是一个虚拟出来的计算机,一种规范。通过在实际的计算机上仿真模拟各类计算机功能实现。JVM是如何运行代码的首先代码是我们程序员编写的,一般是以 .java的格式存在的。通过编译器把.java文件编译成.class文件,然后jvm把.class编译成机器码。类加载器如果jvm想要运行.class文件,我们需要将其装进一个类加载器中,类加载器会把.class文件加载到jvm类加载器类别:BootStrapClassLoader(启原创 2020-11-06 17:17:30 · 142 阅读 · 3 评论