摘要: 缓存分为:本地缓存 分布式缓存本地缓存:https://blog.csdn.net/weixin_42578444/article/details/80878611 guava和ehcache都是本地缓存,在guava之前用的是ConcurrentMap,因为能友好的支持并发。但它并不支持缓存的一些 阅读全文
posted @ 2020-12-10 19:27 why414 阅读(557) 评论(0) 推荐(0)
摘要: https://blog.csdn.net/qq_34337272/article/details/80031702MQ使用场景:1.流量缓冲2.异步3.扩容4.解耦 activeMQ怎么实现高可用:主备部署 收发消息https://www.cnblogs.com/sjcq/p/7469449.ht 阅读全文
posted @ 2020-12-10 19:25 why414 阅读(90) 评论(0) 推荐(0)
摘要: 1.哪些情况需要创建索引(1千万条就没必要加索引了)(1)主键自动创建唯一性索引(2)频繁作为查询查询条件的字段(3)多表关联查询时,关联字段应该创建索引(4)查询中统计或者分组的字段(5)查询中用于排序的字段(6)单列索引/组合索引的选择问题,高并发情况下倾向于组合索引 2.哪些情况不需要创建索引 阅读全文
posted @ 2020-12-10 19:23 why414 阅读(118) 评论(0) 推荐(0)
摘要: 组合索引的创建节省了索引的存储空间 如何创建组合索引1.选择哪些列来创建组合索引?#常见where条件中的列,至于组合索引的顺序很重要,使用最左前缀原则,但是因为查询优化器,所以组合索引字段的顺序不一定是where条件的顺序#常见order by 和group by 语句的列#常见的select 语 阅读全文
posted @ 2020-12-10 19:21 why414 阅读(274) 评论(0) 推荐(0)
摘要: 为啥选择B+树二叉树:极端情况下会形成歪树,IO平衡二叉树:B树:为磁盘或其他存储设备而涉及的一种多叉平衡查找树B+树:分批加载数据到缓存 B和B+树区别:(1)B树叶子节点和非叶子节点都会存储数据(2)B+树只有叶子节点才会存储数据,而且存储的数据都在一行上,这些数据都有指针指向的 聚集索引(In 阅读全文
posted @ 2020-12-10 19:20 why414 阅读(163) 评论(0) 推荐(0)
摘要: 全值匹配我最爱,最左前缀要遵守;带头大哥不能死,中间兄弟不能断;索引列上少计算,范围之后全失效;LIKE百分写最右,覆盖素引不写星;不等空值还有or,索引失效要少用; 查看索引结构mysql> show index from staffs;+ + + + + + + + + + + + + +| T 阅读全文
posted @ 2020-12-10 19:19 why414 阅读(42) 评论(0) 推荐(0)
摘要: 代理模式:public interface Animal { void run();}package com.mrchen.mythirdspring.proxytest;public class Dog implements Animal{ @Override public void run() 阅读全文
posted @ 2020-12-10 19:17 why414 阅读(62) 评论(0) 推荐(0)
摘要: 1、饿汉式(静态常量)(线程安全) public class Singleton { private final static Singleton INSTANCE = new Singleton(); private Singleton(){} public static Singleton ge 阅读全文
posted @ 2020-12-10 19:16 why414 阅读(52) 评论(0) 推荐(0)
摘要: 1、实现:接口类与实现类2、泛化(继承):父子类3、关联:强依赖。形式有:一对一、一对多、多对多;订单与客户,人与自行车,学生与老师;在JAVA中,关联关系一般使用成员变量来实现。4、聚合:关联关系特例,has-a 例如:大雁队与大雁。聚合关系一般使用成员变量来实现5、组合:关联关系特例,conta 阅读全文
posted @ 2020-12-10 19:15 why414 阅读(61) 评论(0) 推荐(0)
摘要: 一.Linux 系统下 cpu 使用率过高的分析方法1、通过 top 命令可以很明显查看出哪个进程耗cpu比较高2.使用 top -H -p <pid> 查看进程里面的线程占用情况3.将需要的线程ID转换为16进制格式4.sudo jstack 25147|grep 6268 1. 查找进程 top 阅读全文
posted @ 2020-12-10 19:14 why414 阅读(104) 评论(0) 推荐(0)
摘要: 参考文章:https://www.cnblogs.com/chenpt/p/9803298.html 垃圾回收算法:(1)引用计数法 (2)可达性分析标记整理:需要扫描两次,效率低 标记清除:两次扫描,效率低,容易产生内存碎片 >老年代算法复制算法:效率高,但是空间利用率低 >新生代算法 可达性分析 阅读全文
posted @ 2020-12-10 19:13 why414 阅读(200) 评论(0) 推荐(0)
摘要: 类加载器的所用:加载class文件 一.类加载器包括:启动类加载器:加载java核心类,jre/lib/rt.jar扩展类加载器: 它负责加载JRE的扩展目录,lib/ext或者由java.ext.dirs系统属性指定的目录中的JAR包的类。应用类加载器: JVM启动时加载来自Java命令的-cla 阅读全文
posted @ 2020-12-10 19:10 why414 阅读(78) 评论(0) 推荐(0)
摘要: jvm调优参考文章:https://www.cnblogs.com/therunningfish/p/5524238.html JVM:Java虚拟机用来执行.class文件的操作系统硬件 java >class >类加载器 >运行时数据区(方法区,堆,Java栈,本地方法栈,程序计数器) >本地方 阅读全文
posted @ 2020-12-10 19:09 why414 阅读(56) 评论(0) 推荐(0)
摘要: CompareAndSet >CAS 比较并交换 CAS是什么:全称为CompareAndSet,是一条CPU并发原语。它的功能是判断内存中某个位置的值是否是期望值,是的话更改为新的值,这个过程是原子性的。CAS并发原语体现在JAVA语言中就是sun.misc.unsafe类中的各个方法中。调用Un 阅读全文
posted @ 2020-12-10 19:03 why414 阅读(76) 评论(0) 推荐(0)
摘要: lamda表达式,演化过程:https://www.cnblogs.com/majestyking/p/12443958.html 参考文章:https://blog.csdn.net/weixin_44282033/article/details/108614904 链式编程 函数式接口:只有一个 阅读全文
posted @ 2020-12-10 19:01 why414 阅读(47) 评论(0) 推荐(0)
摘要: 一. 为什么要使用线程池缺点a、每次new Thread新建对象,性能差。b、缺乏统一管理,可能无限制的新建线程,过多占用系统资源导致死机或OOM优点a、重用存在的线程,减少对象创建,消亡的开销b、有效控制最大并发线程数,提高系统资源利用率有哪几种线程池:1.newCachedThreadPool创 阅读全文
posted @ 2020-12-10 19:00 why414 阅读(112) 评论(0) 推荐(0)