摘要:
缓存分为:本地缓存 分布式缓存本地缓存: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)