08 2018 档案
摘要:(一)结论 在尾部插入数据,数据量较小时LinkedList比较快,因为ArrayList要频繁扩容,当数据量大时ArrayList比较快,因为ArrayList扩容是当前容量*1.5,大容量扩容一次就能提供很多空间,当ArrayList不需扩容时效率明显比LinkedList高,因为直接数组元素赋
阅读全文
摘要:意义 将接口的调用统一到一个函数里处理,然后再去具体实例调用相应的方法,充当一个分发器的作用 user -> handler -> method 字典 动态:指的是在程序运行时才创建代理类 代理:与被代理类具有相同的属性,也就是被代理类有run方法,它也有run方法 保护代理:限制接口类的某些方法给
阅读全文
摘要:字典表 app_key:客户端名称 app_secret:客户端密码 timestamp:与noncestring配合使用防重刷 noncestring:随机串 type:加密方式 思路 1.客户端 客户端将app_key,app_secret,timestamp,nonocestring与其他请求
阅读全文
摘要:特性 Java内存模型实现volatile load + use 必须连续一起出现,这就保证了线程从主内存读到的值是最新的值 assign + store + write必须连续一起出现,这就保证了线程修改的值必须立刻更新到主内存 对于两个变量A和B,如果先对A执行了use或assign操作,那么就
阅读全文
摘要:意义 JVM定义内存模型来屏蔽掉各种硬件与操作系统的内存访问差异,一实现让Java程序在各种平台下都能达到一致的访问效果 字典表 变量:实例字段静态字段和构成数组对象的元素等,但不包括局部变量和方法参数(线程私有) 主内存:就是物理硬件的内存 工作内存:每个线程都有一个工作内存,存储了使用的主内存副
阅读全文
摘要:理解分布式锁 在分布式环境下保证不同节点的线程同步执行 简单来说就是多进程对共享资源的同步访问 在单进程中使用synchronize或者lock等方式就可实现同步,这是在一个jvm上的资源同步,而要做到多进程多jvm的资源同步,就要通过分布式锁 条件 1.在任意时刻只有一个客户端可以拥有锁 2.不能
阅读全文
摘要:环境 jdk1.8 相关类 简单使用实例 线程池参数 1.corePoolSize 核心线程池大小:最小活线程数,除非设定了allowCoreThreadTimeOut否则这些线程不会因过长时间空闲而销毁; 当allowCoreThreadTimeOut默认为false,核心线程即使空闲也会保持al
阅读全文
摘要:基本原则 1.选择小的类型 -- 保证足够的同时越小越好 可以选择INT就不选择BIGINT 2.简单 可以用整型就不用字符型,字符型占用空间运算较难等 3.尽量避免NULL 整型 TINYINT-8 SMALLINT-16 MEDIUMINT-24 INT-32 BIGINT-64 其中有unsi
阅读全文
摘要:引擎: InnoDB 隔离级别:REPEATABLE READ,READ COMMITED 词汇表: (1)MVCC:多版本并发控制 (2)行创建时间:第一个隐藏列,记录创建时的事务号,也就是记录哪个事务创建它的 (3)行删除时间:第二个隐藏列,记录执行删除该行的事务号,也就是记录哪个事务删除它的
阅读全文
摘要:定义 (1)READ UNCOMMITED(未提交可读)-- 事务1修改了数据A后未提交,事务2可以读到被事务1修改的数据A,但是事务1可能最终不提交,那么事务2读到的就是错误的数据(脏数据) (2)READ COMMITED(提交了可读)-- 事务1读取了数据A后未提交,事务2修改了数据A且提交,
阅读全文