09 2018 档案

摘要:1.SQL语句分类 2.DDL语句 和数据库相关 和表相关 修改表:ALTER 中括号表示其中的元素可有可无。 可以指定修改后的位置,FIRST 表示第一列, AFTER col_name 表示在某列之后。 MODIFY 修改表字段类型 如varchar(10)改为varchar(20) : ALT 阅读全文
posted @ 2018-09-30 17:39 Mibloom 阅读(342) 评论(0) 推荐(0)
摘要:1.获得Class对象 2.获得构造器 获得指定构造器 Constructor<T> getConstructor(Class<?>... parameterTypes) parameterTypes 是 Class[ ] ,它里面的元素和元素顺序与构造器参数对应。 Constructor<T> g 阅读全文
posted @ 2018-09-19 16:42 Mibloom 阅读(2188) 评论(0) 推荐(0)
摘要:1.TCP的可靠传输 tcp的可靠传输主要靠 来自接收方的确认报文 和 超时重传。 注意:发送报文都留一个副本,如果收到确认报文就会删除,未重新发送之后超时时间会设置为原来的2倍。 流水线形式:不必等到一个确认报文到来再发送下一个请求报文,而是连续发送请求报文。序 失效报文是指确认号不正确的报文 如 阅读全文
posted @ 2018-09-14 17:02 Mibloom 阅读(321) 评论(1) 推荐(0)
摘要:各层协议 1.HTTP协议 HTTP(超文本传输协议)是应用层协议,并且是无状态协议,协议本身并不会保存用户的任何信息,每次请求都是独立的。 独立的请求可以减小服务器的压力,支持更大的并发请求。 RTT 请求往返时间。从请求一个发送开始到接收到接收端的确认信息所经历的的时间就是一个RTT。 一个完整 阅读全文
posted @ 2018-09-14 17:01 Mibloom 阅读(4111) 评论(0) 推荐(0)
摘要:1.分区 InnoDB,MyISAM,NDB引擎都支持分区。 mysql5.1开始支持分区。 分区可以提高某些SQL的速度。 2.MySQL支持分区 水平分区:同一表中不同行的记录分配到不同物理文件中。 垂直分区:同一表中不同列的记录分配到不同物理文件中。 MySQL支持水平分区,不支持垂直分区。 阅读全文
posted @ 2018-09-12 16:01 Mibloom 阅读(317) 评论(0) 推荐(0)
摘要:1.不同引擎支持不同锁机制,InnoDB支持 行锁。 2.表锁,行锁区别: 3.读锁 S锁: 共享锁,允许其他事务读,但是不允许进行增删改操作。 4.写锁 X锁:排它锁,不允许其他任何操作,包括读,写锁优先级最高。 X锁:排它锁,不允许其他任何操作,包括读,写锁优先级最高。 5.MDL锁: 开启查询 阅读全文
posted @ 2018-09-12 11:01 Mibloom 阅读(193) 评论(0) 推荐(0)
摘要:1.事务 事务四大特性: 原子性(Atomicity ):要么所有操作都做,要么所有操作都不做。 一致性(Consistency ):数据要满足业务规则约束。 隔离性(Isolation ):(也称并发控制,可串行化,锁)2个事务相互隔离,在事务提交之前对其他事务不可见。 持久性(Durabilit 阅读全文
posted @ 2018-09-11 20:58 Mibloom 阅读(145) 评论(0) 推荐(0)
摘要:1.错误日志 error log 错误日志 error.log :记录了MySQL启动、运行、关闭过程中出现的问题。 2.慢查询日志 记录超过阀值时间的所有SQL语句,默认10s,等于10s不记。 1.5.1记录到slow_log表中。 log_output参数可以指定慢查询日志输出格式,默认FIL 阅读全文
posted @ 2018-09-11 19:32 Mibloom 阅读(1448) 评论(0) 推荐(0)
摘要:1 存储过程 存储过程就是一组经过编译的SQL语句,它执行速度快,可以接收参数,可以做条件判断,可以有循环体,就和面向对象中的方法一样。 存储过程和OOP的方法一样,可以传入参数,内部执行SQL,也可以将存储过程中的某个值返回出来。 MySQL在5.0以前并不支持存储过程,5.0终于开始已经支持存储 阅读全文
posted @ 2018-09-10 18:19 Mibloom 阅读(154) 评论(0) 推荐(0)
摘要:1.锁优化 挂起线程和恢复线程的开销较大,对于锁定状态时间较短的情况下,挂起线程并不值得。 遇到锁不会挂起,而是忙循环(自旋)一会儿,避免了一次线程切换的开销,但是仍在占用CPU时间。 1.6默认开启,默认自旋10次。 1.6还引入了自适应自旋锁,他可以根据上一次在同一个锁上的自旋时间调整自旋次数。 阅读全文
posted @ 2018-09-09 17:06 Mibloom 阅读(366) 评论(0) 推荐(0)
摘要:1.执行引擎 所有Java虚拟机的执行引擎都是一致的: 输入的是字节码文件,处理过程就是解析过程,最后输出执行结果。 在整个过程不同的数据在不同的结构中进行处理。 2.栈帧 jvm进行方法调用和方法执行的数据结构,是虚拟机栈的元素。 (图片来自网络) 2.1 局部变量表 存放方法参数和方法内部定义的 阅读全文
posted @ 2018-09-09 12:21 Mibloom 阅读(965) 评论(1) 推荐(0)
摘要:1.类的生命周期 2.初始化被触发的情况 初始化前自然要完成加载、验证、准备这三个动作。 3.类加载过程 类加载全过程分为:加载、验证、准备、解析、初始化这5个阶段所执行的具体操作。 所以不触发初始化就不会进行类加载,懒加载也由此而来。 如 类文件中有个 a.f() 加载时把a放入方法区的常量池中, 阅读全文
posted @ 2018-09-08 20:49 Mibloom 阅读(176) 评论(0) 推荐(0)
摘要:1.内存分配与回收策略 2.对象优先在Eden 分配 Full GC 是整个堆的GC,会清理老年代和新生代。 3.大对象直接进入老年代 4.长期存活的对象进入老年代 5.动态年龄判断。 6.空间分配担保 阅读全文
posted @ 2018-09-08 10:04 Mibloom 阅读(162) 评论(0) 推荐(0)
摘要:1. Serial 新生代收集器 2.ParNew 新生代收集器 3. Parallel Scavenge 新生代收集器 4.Serial Old 老年代收集器 5.Parallel Old 老年代收集器 6.CMS 老年代收集器 7.G1 收集器 8.Remembered Set 阅读全文
posted @ 2018-09-07 20:33 Mibloom 阅读(234) 评论(0) 推荐(0)
摘要:1.垃圾收集 Garbage Collection 程序计数器、虚拟机栈、本地方法栈这三部分内存随着线程生而生,随着线程灭而自然的回收,他们的大小在编译期间就大致确定了下来,所以对这部分的回收是具备确定性的。 Java堆,方法区则不一样,在运行期间会创建对象,对象内存分配和回收都是动态的,所以是不确 阅读全文
posted @ 2018-09-07 16:46 Mibloom 阅读(188) 评论(0) 推荐(0)
摘要:1.Java虚拟机栈 java方法执行时的内存模型 1.1 栈帧 每个方法都会在虚拟机栈中创建一个对应的栈帧,用于存储局部变量表,操作数栈,动态链接,方法出口等信息。 一个方法的调用到结束就对应这一个栈帧从虚拟机栈入栈到出栈。 1.2 局部变量表 存放编译期可知在方法中各种基本数据类型和对象的引用, 阅读全文
posted @ 2018-09-07 10:44 Mibloom 阅读(944) 评论(0) 推荐(0)
摘要:1.OutOfMemoryError 抛出异常后先确定是堆溢出还是栈溢出 堆溢出:java.lang.OutOfMemoryError: Java heap space 堆出现OOM(标志就是Java heap space)首先确认是内存溢出还是内存泄漏。常见的OOM就是堆溢出。 内存泄漏: Mem 阅读全文
posted @ 2018-09-06 18:15 Mibloom 阅读(832) 评论(0) 推荐(0)