摘要: 性能测试中,部分用挡板Mock实现,解决环境缺失问题; inner-service服务的引入,只提供内部方法使用,不开放接口; 将复杂的业务分解成具体的接口,定义好param、DTO、VO、Enum、Constant,再输出接口文档; 模块间业务分离,不要有强业务耦合,方便以后服务化 提供服务时,应 阅读全文
posted @ 2017-09-21 19:54 感遇 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 有明显的标记,能唯一检索到日志; 风格统一:如Enter、Start、End、request={}、response={} 使用SLF4J(Simple logging Facade for Java),{}的使用,减少字符串连接次数及延迟新对象的创建,告别了if(logger.isDebugEna 阅读全文
posted @ 2017-09-21 15:23 感遇 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 事务的隔离级别:未提交读(READ UNCOMMITED)、不可重复读(READ COMMITED)、可重复读(REPEATABLE READ)、可串行化(SERIALIZABLE) InnoDB与MyISAM: MVCC(Multi-Version Concurrency Control): 日志 阅读全文
posted @ 2017-04-26 13:12 感遇 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 用synchronized修饰方法:如果该对象中有多个同步方法,则当一个线程获执行对象中的一个synchronized方法,则该对象中其它同步方法也不允许别的线程执行 等同于 同步代码块 当没有明确的对象作为锁,只是想让一段代码同步时,能够创建一个特别的instance变量(他得是个对象)来充当锁 阅读全文
posted @ 2017-04-25 17:12 感遇 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 传统的实现方法:两私一公,涉及线程安全问题(即使有多重检查锁也可以通过反射破坏单例) JDK1.5以前 目前最为安全的实现单例的方法是通过内部静态enum的方法来实现,因为JVM会保证enum不能被反射并且构造器方法只执行一次。 阅读全文
posted @ 2017-04-23 21:24 感遇 阅读(101) 评论(0) 推荐(0) 编辑
摘要: Java语言,类型的加载、连接、初始化都是在程序运行期间完成的 类的生命周期:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)、卸载(Unloading) 连接(Link 阅读全文
posted @ 2017-04-16 11:51 感遇 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 整个class文件以8位字节为单位的二进制流,本质上就是一张表,所有都以_info结尾 文件结构: class文件不会保存各个方法、字段的最终布局信息。当虚拟机运行时,需要从常量池获得对应的符号引用,再在类创建或运行时解析、翻译到具体的内存地址 Code属性:接口或抽象类的方法就不具有Code属性, 阅读全文
posted @ 2017-04-15 20:37 感遇 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 判断对象是否存活 无用的类标准 垃圾收集算法:标记-清除算法(CMS)、复制算法(新生代)、标记整理算法 HotSpot算法 没有为所有指令都生成OopMap,程序并发所有地方都能停下来执行GC,只有到了安全点才能暂停 主动式中断:GC需要中断线程时,设置一个标志,线程执行时主动去轮询这个标志,再中 阅读全文
posted @ 2017-04-15 13:58 感遇 阅读(144) 评论(0) 推荐(0) 编辑
摘要: Java虚拟机运行时数据区:方法区、虚拟机栈、本地方法栈、堆、程序计数器 对象的创建 对象的内存布局 对象的访问定位 内存泄露 虚拟机栈和本地方法栈 阅读全文
posted @ 2017-04-15 12:20 感遇 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 线程池大小计算公式 N_thread = N_cpu * U_cpu * (1+W/C) U_cpu: target of CPU utilization W/C: rate of wait time to compute time 配置ThreadPoolExecutor 扩展ThreadPool 阅读全文
posted @ 2017-04-10 23:44 感遇 阅读(219) 评论(0) 推荐(0) 编辑