摘要: 在了解之前要先了解对应语法 in 与 exist。 in后的括号的表达式结果要求之输出一列字段。与之前的搜索字段匹配,匹配到相同则返回对应行。 mysql的执行顺序是先执行子查询,然后执行主查询,用子查询的结果按条匹配主查询。 exist后的括号里则无输出要求,exist判断后面的结果集中有没有行, 阅读全文
posted @ 2019-04-03 11:00 茶饭不撕 阅读(3336) 评论(3) 推荐(0) 编辑
摘要: 索引的使用尽量满足以下几个原则: 全值匹配 最左前缀 不在索引列上做任何操作(包括但不限于,计算,函数,类型转换),会导致对应列索引失效。 不适用索引中范围条件右边的列 尽量使用覆盖索引 使用不等于或者not in 的时候回变成全表扫描 is null,not null也无法使用索引 like尽量匹 阅读全文
posted @ 2019-04-03 10:17 茶饭不撕 阅读(2552) 评论(0) 推荐(0) 编辑
摘要: 123 阅读全文
posted @ 2019-04-02 23:04 茶饭不撕 阅读(92) 评论(0) 推荐(0) 编辑
摘要: javadoc的解释: ClassLoader的每一个实例都会有一个与之关联的父ClassLoader,当被要求去寻找一个类或者资源的时候,ClassLoader的实例就会对于类或者是资源的寻找委托给他的父ClassLoader(在他自己尝试找这个类或者资源之前),并层层向上委托。 虚拟机内建的Cl 阅读全文
posted @ 2019-04-02 18:41 茶饭不撕 阅读(652) 评论(0) 推荐(0) 编辑
摘要: 1.数组对象的使用,不会导致对应类的初始化。 在创建 ClassName[]数组时,并不会创建对应对象,也不会初始化对应类,会创建一个编译时类型(其数组类型是JVM在运行时期动态生成的,不是由类加载器加载的,即没有对应的ClassLoader。调用getClassLoader会返回对用元素的Clas 阅读全文
posted @ 2019-04-02 10:44 茶饭不撕 阅读(254) 评论(0) 推荐(0) 编辑
摘要: jvm 类加载 垃圾收集器 自动内存管理机制 mysql 数据库引擎 锁 隔离级别 cas aba java lock 并发 信号量 synchronize 执行器 阅读全文
posted @ 2019-04-01 22:52 茶饭不撕 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 加载类过程是在程序运行期间完成的,包含三个阶段 加载 连接 初始化 一、加载 查找并加载类的二进制数据 xxx.class,将其读入内存 放在运行时数据区的方法区内,然后创建一个java.lang.Class对象(规范并未说明Class对象位于哪里,HotSpot虚拟机将其放在了方法区中)用来封装类 阅读全文
posted @ 2019-04-01 22:38 茶饭不撕 阅读(665) 评论(0) 推荐(0) 编辑
摘要: 编译时常量在编译阶段会写死到.class中 而且会存入到 调用这个常量的方法所在的类的常量池中 如下代码编译后 删除Parents01.class 后依然可以正常执行 说明VALUE被写入了MyTest01中 运行时常量:(编译时不加载,类初始化时才加载) 另外 用子类调用父类的 static字段 阅读全文
posted @ 2019-04-01 22:02 茶饭不撕 阅读(767) 评论(0) 推荐(0) 编辑
摘要: 反编译指令 javap -c xxxx.class JVM参数设置 -xx:+<option> 开启option -xx: -<option> 关闭option选项 -xx:<option>=<value> 设置选项的值 0xB2 getstatic 获取指定的静态域,并将其值压入栈顶 0xB3 p 阅读全文
posted @ 2019-04-01 21:07 茶饭不撕 阅读(343) 评论(0) 推荐(0) 编辑
摘要: explain + sql: 1. id 标志这个sql语句被分为几个(行数)独立的sql执行,执行顺序依照(1)从大到小(2)从上到下 依次排列执行 2. select_type 查询类型 SIMPLE 简单的select查询,查询中不包含子查询或者UNION PRIMARY 查询中包含子查询,其 阅读全文
posted @ 2019-03-31 22:34 茶饭不撕 阅读(6800) 评论(0) 推荐(0) 编辑