- 博客(21)
- 收藏
- 关注
原创 真的了解 Java Enum吗?
真的了解 Java Enum吗?Java 中的每一个枚举都继承自 java.lang.Enum 类。当定义一个枚举类型时,每一个枚举类型成员都可以看作是 Enum 类的实例,这些枚举成员默认都被 final、public, static 修饰,当使用枚举类型成员时,直接使用枚举名称调用成员即可。package com.wf.code.枚举类;import java.util.Arrays;public class Demo { public static void main(String[
2021-03-20 22:23:27
128
转载 MySQL的MVCC(多版本并发控制)
MySQL的MVCC(多版本并发控制)站在巨人的肩膀上学习:链接:https://juejin.cn/post/6844904128896843783首先我们要搞清楚mysql的四种隔离级别读未提交(读不守规矩):一个事务可以读到其它事务尚未提交的数据 (导致脏读、不可重复读、幻读)读已提交(更新不守规矩):一个事务可以读到其它事务已经更新的数据 (导致不可重复读、幻读)可重复读(插入不守规矩):一个事务可以读取其它事务已经插入的数据 (导致幻读)串行化:解决全部问题MySQ
2021-02-20 23:42:18
140
原创 Mysql索引数据结构、B+ 树、Hash索引、聚簇索引、覆盖索引、联合索引、最左前缀匹配、索引下推、查询优化
本篇文章参考:https://mp.weixin.qq.com/s/_bk2JVOm2SkXfdcvki6-0w本篇文章是一篇面试对话,其中参考里面的知识点结合自身情况进行加强,感谢博主。索引概念、索引模型对于查询做一些优化?A:我们在数据库中创建了一些索引Q:那你能说说什么是索引吗?A:(这道题肯定难不住我啊)索引其实是一种数据结构,能够帮助我们快速的检索数据库中的数据Q:那么索引具体采用的哪种数据结构呢?A:常见的MySQL主要有两种结构:Hash索引和B+ Tree索引,我们使用的是I
2020-10-30 14:03:15
395
1
原创 MySQL索引分类
按索引种类分(逻辑上的索引)普通索引 : 加速查询唯一索引 : 加速查询 + 列值唯一(可以有null)主键索引 : 加速查询 + 列值唯一(不可以有null)组合索引 : 多列值组成一个索引,专门用于组合搜索,其效率大于索引合并全文索引 :对文本的内容进行分词,进行搜索按索引类型分FULLTEXT : 全文索引,目前只有MyISAM引擎支持。其可以在CREATE TABLE ,ALTER TABLE ,CREATE INDEX 使用,不过目前只有 CHAR、VARCHAR ,TEXT
2020-10-30 13:14:56
178
原创 观察者模式
观察者模式观察者模式可以叫做发布订阅模式,其实就是在发布者内部维护一个订阅者列表定义一个发布者接口package w02;public interface Publisher { void addObserver(Observer o); void remoObserver(Observer o); void notifyObserver();}定义一个观察者模式接口package w02;public interface Observer { v
2020-10-21 10:44:38
123
原创 学习路径
https://blog.youkuaiyun.com/weixin_43495390/article/details/86533482
2020-05-24 15:02:51
158
原创 Java内存模型(Java Memory Model ,JMM)
Java内存模型(Java Memory Model ,JMM)JMM是和多线程相关的,他描述了一组规则或规范,这个规范定义了一个线程对共享变量的写入时对另一个线程是可见的。目的是解决由于多线程通过共享内存进行通信时,存在的原子性、可见性(缓存一致性)以及有序性问题。原子性线程是CPU调度的基本单位。CPU有时间片的概念,会根据不同的调度算法进行线程调度。所以在多线程场景下,就会发生原子性问题。因为线程在执行一个读改写操作时,在执行完读改之后,时间片耗完,就会被要求放弃CPU,并等待重新调度。这种情况
2020-05-20 13:43:54
168
原创 TreeSet
TreeSetTreeSet是Set的一个子类,TreeSet集合是用来对象元素进行排序的,保证元素的唯一。那TreeSet为什么能保证元素唯一?如何指定比较的规则,需要在自定义类中实现Comparable接口,并重写接口中的compareTo()方法public class Person implements Comparable { private String name; private int age; public int compareTo(Object o)
2020-05-18 18:36:41
165
原创 SpringBoot @Service包扫描失效问题
SpringBoot @Service包扫描失效问题@ComponentScan(value = {“com.fwz.demo.Control”,“com.fwz.demo.Service”,“com.fwz.demo.ServiceImpl”})如果用了此注解要把所有要扫描的包路径都得写上,然后S
2020-05-18 00:20:47
2422
原创 volatile引出的单例模式之双重检查
volatile 作用!!!!保证线程可见性(MESI,利用CPU的缓存一致性协议)禁止指令重排序(CPU)单例模式之双重检查在实现单例模式时,如果未考虑多线程的情况,就容易写出下面的错误代码:public class Singleton { private static Singleton uniqueSingleton; private Singleton() { } public Singleton getInstance() { if
2020-05-16 14:09:12
637
1
原创 Synchronized
先了解两个概念:类对象、对象实例类对象(Class):首先,类是对一些列抽象事物的概括,类中包括属性,方法等。当程序中需要使用某个Class时,类 加载器先从缓存区中搜寻该Class,只有当缓存区中不存在该Class对象时,系统才会读取该类对应的二进制数据,并将其转换成Class对象,存入缓冲区中 。( 这就是为很么修改了Class后,必须重新启动JVM,程序所做的修改才会生效的原因),当我们需要实例化任何一个类时(例如 new Student() ),JVM会首先尝试看看在内存中是否有这个Stu
2020-05-16 13:08:00
159
原创 使用shiro第一次重定向时URL带有jsessionid=xxxx问题
使用shiro第一次重定向时URL带有jsessionid=xxxx问题https://blog.youkuaiyun.com/suxingrui/article/details/84060262
2020-04-09 12:40:44
836
原创 Java集合框架知多少?
Java集合框架知多少?Arraylist 与 LinkedList 异同是否保证线程安全: ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全;底层数据结构: Arraylist 底层使用的是Object数组;LinkedList 底层使用的是双向循环链表数据结构;插入和删除是否受元素位置的影响: ① ArrayList 采用数组存储,所以插入和删除元...
2019-08-08 19:45:58
188
原创 String和StringBuffer、StringBuilder的区别是什么String为什么是不可变的?
可变性简单的来说:String 类中使用 final 关键字字符数组保存字符串,private final char value[],所以 String 对象是不可变的。而StringBuilder 与 StringBuffer 都继承自 AbstractStringBuilder 类,在 AbstractStringBuilder 中也是使用字符数组保存字符串char[]value 但是没有用...
2019-08-08 19:05:03
438
2
原创 jvm调优基础以及gc(运行时数据区堆和栈)
jdk先要搞清楚jdk jre jvm之间的关系 网上找了一张图。从小往大说就是jvm(运行时数据区) 加上一些api 如JDBC JNDI 等等很多就是 jre . jre再加上 一些java自带的工具(jconsole、javaVisualVM等,下图蓝色部分)就变成了jdk ; 运行时数据区-也就是常说的堆和栈下图是jvm内存模型JMM大致图,内存分为堆内存和栈内存和栈内存。(...
2019-07-26 14:56:06
210
原创 mysql优化查询之(EXPLAIN),等同于DESCRIBE
EXPLAIN(explain)的语法.EXPLAIN SELECT * FROM superadmin;mysql> EXPLAIN SELECT * FROM superadmin;+----+-------------+------------+------+---------------+------+---------+------+------+-------+| ...
2019-07-25 15:15:04
345
原创 CentOS7.2安装mysql5.7遇到的坑以及解决办法
Linux,CentOS7安装mysql5.7遇到的坑以及解决办法下载mysql新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导...
2019-05-29 00:34:45
624
原创 int和Integer带来的坑
int和Integer带来的坑请看代码请看代码public static void mian(String[] args){ Integer a=0; Integer b=0; int c =300; int d=300; System.out.println(a==b); System.out.println(c==d);}大家猜猜输出是什么输出结果(这个结果在低版本的J...
2019-05-07 14:10:28
304
原创 创建数据库连接池的两种方式
使用DBCP和CP30来创建数据库连接池的理解(如有不对的请指正)DBCP创建数据库连接池CP30C创建数据库连接池首先为什么要用这个东西呢?首先在初期的时候我相信许多小伙伴也会像我一样是按照下列方式来连接数据库的(mysql)// 主要功能就是连接数据库、关闭数据库public class ConnectionBase{ private final String DbDriver...
2018-10-12 19:08:47
606
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人