摘要: 参考:https://blog.csdn.net/honghailiang888/article/details/53019635、https://www.cnblogs.com/LaiCuiTing/p/9542525.html 一、Maven简介 Maven是一个跨平台的项目管理工具。作为Apa 阅读全文
posted @ 2019-09-24 16:03 绿色森林 阅读(648) 评论(0) 推荐(0) 编辑
摘要: https://www.jianshu.com/p/4d4757f2dc95 阅读全文
posted @ 2019-09-19 16:52 绿色森林 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 一、什么是死锁 所谓死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。 因此我们举个例子来描述,如果此时有一个线程A,按照先锁a再获得锁b的的顺序获得锁,而在此同时又有另外一个线程B,按照先锁b再锁a的顺序获得锁。如下图所示 二 阅读全文
posted @ 2019-09-19 15:06 绿色森林 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 先自己看一遍源码,再看下这篇文章的总结: https://www.jianshu.com/p/933289f27270 阅读全文
posted @ 2019-09-18 18:20 绿色森林 阅读(817) 评论(0) 推荐(0) 编辑
摘要: 写时复制,是一种保证线程安全的手段。就是在忘集合添加数据时,先copy原有集合到一个新的集合,然后在新的集合上添加数据,最后保存新的集合。(注意集合对象的声明使用volatile,保证写对读可见) 但是同时写的话,还是有线程安全问题,所以写的方法是加锁的(这里加锁用的是ReentrantLock) 阅读全文
posted @ 2019-09-09 17:55 绿色森林 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 一、享元模式(Flyweight) 说到享元模式,第一个想到的应该就是池技术了,String常量池、数据库连接池、缓冲池等等都是享元模式的应用,所以说享元模式是池技术的重要实现方式。https://www.cnblogs.com/betterboyz/p/9361793.html https://w 阅读全文
posted @ 2019-09-08 23:59 绿色森林 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 参考:https://www.jianshu.com/p/36eedeb3f912,https://www.cnblogs.com/mingyao123/p/7424911.html 锁的重量级别是:偏向锁-> 轻量级锁、自旋锁-> 重量级锁 偏向锁 偏向锁的目标是,减少无竞争且只有一个线程使用锁的 阅读全文
posted @ 2019-09-08 16:53 绿色森林 阅读(591) 评论(0) 推荐(0) 编辑
摘要: 素质三连: 1·什么是java的序列化和反序列化 序列化就是将java对象转化成二进制数据,反序列化就是相反的过程 2·怎么序列化 实现serializable接口 扩展:为什么要实现这个接口,为什么实现了就能序列化 答:其实这是一个空接口,实现它只是做一个标识,表示它可以序列化 ,当然,在底层ou 阅读全文
posted @ 2019-09-04 22:32 绿色森林 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 主要分为词法分析、语法和语义分析、优化、执行代码生成,分析后的代码会生成语法树 参考:http://www.elecfans.com/emb/20180618696111.html 阅读全文
posted @ 2019-09-03 23:44 绿色森林 阅读(2651) 评论(0) 推荐(0) 编辑
摘要: 在编写多线程代码时,我们时常会用到线程池,以提高效率。那么线程池用完需不需要关闭呢? 如果是局部变量(即一次性使用),用完是要关闭的,否者大量的线程资源占用,会导致内存泄漏。 如果不想手动关闭,可以把线程池里的线程设为守护线程: 阅读全文
posted @ 2019-06-12 11:18 绿色森林 阅读(3197) 评论(2) 推荐(0) 编辑