11 2018 档案

摘要:单例模式有五种写法:懒汉、饿汉、双重检验锁、静态内部类、枚举 懒汉式线程不安全 懒汉式,线程安全 双重检验锁 事实上在 JVM 中这句话大概做了下面 3 件事情。 理解以上三个过程很重要,能直接通过字节码的角度让你知道 JVM的指令重排序;相关知识点最好了解一下,比如单线程访问尽管指令重排序 但还是 阅读全文
posted @ 2018-11-30 12:04 陶朱公Boy 阅读(337) 评论(0) 推荐(0) 编辑
摘要:遇到new 、getstatic、putstatic或invokestatic者四条字节码指令时,如果类没有进行初始化,则需要先触发其初始化。对应的JAVA代码场景是 new 实例对象、读取或设置一个类的静态字段[被final修饰、已在编译器把结果放入常量池的静态字段除外]时候,以及调用一个类的静态方法的时候 使用java.lang.reflect包的方法对类进行反射调用的时候,如果类没有进行过初始化,则先触发其初始化 当初始化一个类的时候,如果发现父类还没有过初始化,则需要其先触发其父类的初始化 当虚拟机启动时,用户需要指定一个要执行的主类(包含main方法的那个类)虚拟机先初始化这个主类 当使用jdk1.7的动态语言支持时,如果一个java.lang.invoke.MethodHandle实例最后的解析结果REF_getStatic,REF_putStatic、REF_invokeStatic的方法句柄,并且这个方法句柄所对应类没有进行过初始化,则先触发其初始化 阅读全文
posted @ 2018-11-30 11:35 陶朱公Boy 阅读(149) 评论(0) 推荐(0) 编辑
摘要:自家公司关于git commit 的规范; 阅读全文
posted @ 2018-11-27 10:34 陶朱公Boy 阅读(1129) 评论(0) 推荐(0) 编辑
摘要:这篇文章比较深入的从free为起点 折射出的一些概念;比如 buff/cache是怎么一回事[涉及内存页等话题]; available这个参数与free参数有什么联系[其实available可以理解为当内存不足时它会释放buffer内存补给应用程序进程使用];以及shared的概念 swap等 让你全方位的从操作系统层面了解free 的命令。平时查看可以用free -h 或间隔周期查询 free -h -s xxx 阅读全文
posted @ 2018-11-23 11:04 陶朱公Boy 阅读(1256) 评论(0) 推荐(0) 编辑
摘要:数据库三大范式详解 阅读全文
posted @ 2018-11-18 17:42 陶朱公Boy 阅读(2148) 评论(0) 推荐(0) 编辑
摘要:在JAVA多任务并行执行的开发过程中,笔者有一点疑惑 corePoolSize maximumPoolSize 这几个参数跟OS具体关系是什么呢? 我线程JAVA的线程与内核的线程关系梳理一下,清楚了原理会比较好理解。 因为从JMM层面 JVM线程其实最终是一个所谓轻量级进程的概念与系统内核线程(每个内核线程视为内核的一个分身)是一比一的关系,其实最终还是要调用内核线程 内核通过操纵调度器对线程进行分配资源,负责将任务给各个处理器上处理; 所以这个线程数还是受限于OS层面的线程数,明白这个就OK。所以最大线程数不是越大越好 过大也没什么作用还是要根据OS本身的参数进行适配。 像上面的corePoolSize如果处理的各个任务理论上马上就能完成 其实不用设置的过大,尽量复用线程 maximumPoolSize最大就是OS内核线程数 超过这个也没什么意义 阅读全文
posted @ 2018-11-13 17:41 陶朱公Boy 阅读(2623) 评论(0) 推荐(0) 编辑
摘要:各个JDK版本新语法糖 阅读全文
posted @ 2018-11-13 15:53 陶朱公Boy 阅读(716) 评论(0) 推荐(0) 编辑
摘要:/*简易版的HASHMAP包括基本的GET PUT思想 * 从数组头部开始线性通过key比较效率低;具有固定尺寸不灵活 */ 这个版本get取值按照线性思维逐个遍历数组元素比较 比较耗时,而且初始化容器具有固定尺寸也不够灵活 阅读全文
posted @ 2018-11-12 17:38 陶朱公Boy 阅读(198) 评论(0) 推荐(0) 编辑
摘要:linkedhashmap中关于LRU算法的实现 阅读全文
posted @ 2018-11-12 17:35 陶朱公Boy 阅读(1829) 评论(0) 推荐(0) 编辑
摘要:如何避免MAVEN项目JAR包冲突;解析MAVEN仲裁机制及SPRINGBOOT的实现 阅读全文
posted @ 2018-11-12 11:29 陶朱公Boy 阅读(2462) 评论(0) 推荐(0) 编辑
摘要:像笔者场景 首次启动任务需要将大量数据载入缓存,sqlite作为嵌入式数据库,无需跨进程获取数据 有一定优势,能节省不少时间;但弊端是你需要多维护一份数据,本地sqlite数据同步及一致性也是问题 1.SQLite并非作为一个独立进程通过某种通信协议(例如socket)与应用程序通信,而是作为应用程序的一部分,应用程序通过调用SQLite的接口直接访问数据文件 2.同时访问同一个数据而没有问题。可以同时平行读取同一个数据库。但同一时间只能有一个进程或线程进行数据写入 3.仅支持触发器,不能修改或删除列 只能通过重新创建表的方式迂回进行 4.SQLite不进行类型检查 你可以把字符串插入到整数列中 阅读全文
posted @ 2018-11-12 10:54 陶朱公Boy 阅读(621) 评论(0) 推荐(0) 编辑
摘要:知乎关于pull request形象的解释说明 阅读全文
posted @ 2018-11-06 23:04 陶朱公Boy 阅读(299) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示