Executor线程池原理详解(一)
摘要:线程池 线程池的目的就是减少多线程创建的开销,减少资源的消耗,让系统更加的稳定。在web开发中,服务器会为了一个请求分配一个线程来处理,如果每次请求都创建一个线程,请求结束就销毁这个线程。那么在高并发的情况下,就会有大量线程创建和销毁,这就会降低系统的效率。线程池的诞生就是为了让线程得到重复使用,减
阅读全文
ArrayList、LinkedList、CopyOnWriteArrayList源码分析记录
摘要:ArrayList 底层是基于动态数组来进行的 1、List 的长度size 是根据增删元素来进行自增自减的 2、ArrayList在新增元素时,先判断数组的长度是否足够,若足够则把新元素添加至数组中,若不够则进行扩容(也就是数组的复制),扩容完成后把新增的元素添加到新数组中即可完成数据的新增操作;
阅读全文
mysql 跨库join
摘要:目标:数据库A中的表可以join数据库B中的表。 环境:Windows系统,免安装版mysql-5.7.22。 需求:数据库中表很多,将表按业务划分到不同的数据库,保存表之间必要的关联关系。 一、开启FEDERATED引擎执行命令:SHOW ENGINES;,查看mysql数据库中Federated
阅读全文
对象Bean与Map互转问题
摘要:一、摘要 在实际开发过程中,经常碰到需要进行对象与map之间互转的问题,其实对于对象、Map 之间进行互转有很多种方式,下面我们一起来梳理一下: 利用 JSON 工具包,将对象转成字符串,之后再转成 Map,这种需要转换2次,相对来说效率比较底; 利用 Java 反射,获取 Bean 类的属性和值,
阅读全文
git
摘要:Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务
阅读全文