摘要:为了更好的使用多线程,JDK提供了线程池供开发人员使用,目的在于减少线程的创建和销毁次数,以此达到线程的重复利用。 其中ThreadPoolExecutor是线程池中最核心的一个类,我们先简单看一下这个类的继承关系。 其中Executor是线程池的顶级接口,接口中只定义了一个方法 void exec 阅读全文
posted @ 2018-04-10 15:34 你是风儿 阅读 (8353) 评论 (0) 编辑
摘要:想必大多数程序员接触的第一种排序算法是冒泡排序,冒泡排序的特点是:逻辑简单,实现起来也不难,但在数据量比较大的时候性能比较低。 以数字由大到小的排序为例,写一个简单的冒泡排序。 我们看到,冒泡排序就是两个for循环嵌套,内层循环再加一个if语句做逻辑判断。 通俗点解释冒泡排序就是:外层循环控制冒泡的 阅读全文
posted @ 2017-04-04 12:56 你是风儿 阅读 (867) 评论 (0) 编辑
摘要:子查询就是在一条查询语句中还有其它的查询语句,主查询得到的结果依赖于子查询的结果。 子查询的子语句可以在一条sql语句的FROM,JOIN,和WHERE后面,本文主要针对在WHERE后面使用子查询与表连接查询的性能做出一点分析。 对于表连接查询和子查询性能的讨论众说纷纭,普遍认为的是表连接查询的性能 阅读全文
posted @ 2017-03-13 00:22 你是风儿 阅读 (15549) 评论 (5) 编辑
摘要:为了更好的使用多线程,JDK提供了线程池供开发人员使用,目的在于减少线程的创建和销毁次数,以此达到线程的重复利用。 其中ThreadPoolExecutor是线程池中最核心的一个类,我们先简单看一下这个类的继承关系。 其中Executor是线程池的顶级接口,接口中只定义了一个方法 void exec 阅读全文
posted @ 2018-04-10 15:34 你是风儿 阅读 (8353) 评论 (0) 编辑
摘要:通常来说对于mysql数据库插入数据获取主键的方法是采用selectKey的方式,特别是当你持久层使用mybatis框架的时候。 本文除此之外介绍其它两种获取主键的方式。 为了方便描述我们先建一张mysql数据库的表: 一、 jdbc PreparedStatement方式 首先介绍一种jdbc获取 阅读全文
posted @ 2017-12-20 01:23 你是风儿 阅读 (3257) 评论 (0) 编辑
摘要:fastJson对于json格式字符串的解析主要用到了一下三个类: JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换。 JSONObject:fastJson提供的json对象。 JSONArray:fastJson提供json数组对象。 我们可以 阅读全文
posted @ 2017-07-02 14:42 你是风儿 阅读 (305703) 评论 (15) 编辑
摘要:想必大多数程序员接触的第一种排序算法是冒泡排序,冒泡排序的特点是:逻辑简单,实现起来也不难,但在数据量比较大的时候性能比较低。 以数字由大到小的排序为例,写一个简单的冒泡排序。 我们看到,冒泡排序就是两个for循环嵌套,内层循环再加一个if语句做逻辑判断。 通俗点解释冒泡排序就是:外层循环控制冒泡的 阅读全文
posted @ 2017-04-04 12:56 你是风儿 阅读 (867) 评论 (0) 编辑
摘要:子查询就是在一条查询语句中还有其它的查询语句,主查询得到的结果依赖于子查询的结果。 子查询的子语句可以在一条sql语句的FROM,JOIN,和WHERE后面,本文主要针对在WHERE后面使用子查询与表连接查询的性能做出一点分析。 对于表连接查询和子查询性能的讨论众说纷纭,普遍认为的是表连接查询的性能 阅读全文
posted @ 2017-03-13 00:22 你是风儿 阅读 (15549) 评论 (5) 编辑
摘要:先来看一下,内连接的语法: SELECT XXX FROM XXX INNER JOIN XXX ON XXX; 这里 INNER 可以省略,在上一篇博客中我们对于笛卡尔积现象的研究中(http://www.cnblogs.com/cdf-opensource-007/p/6507678.html) 阅读全文
posted @ 2017-03-08 22:34 你是风儿 阅读 (18776) 评论 (1) 编辑
摘要:首先,先简单解释一下笛卡尔积。 现在,我们有两个集合A和B。 A = {0,1} B = {2,3,4} 集合 A×B 和 B×A的结果集就可以分别表示为以下这种形式: A×B = {(0,2),(1,2),(0,3),(1,3),(0,4),(1,4)}; B×A = {(2,0),(2,1),( 阅读全文
posted @ 2017-03-06 01:49 你是风儿 阅读 (7717) 评论 (2) 编辑
摘要:SQL是一套标准,全称结构化查询语言,是用来完成和数据库之间的通信的编程语言,SQL语言是脚本语言,直接运行在数据库上。同时,SQL语句与数据在数据库上的存储方式无关,只是不同的数据库对于同一条SQL语句的底层实现不同罢了,但结果相同。这有点类似于java中接口的作用,一个接口可以有不同的实现类,不 阅读全文
posted @ 2017-03-04 21:35 你是风儿 阅读 (13467) 评论 (8) 编辑
摘要:从上述的实验中可以看出BeanNameAutoProxyCreator对于AOP的实现已经和完美了,但是还有两点不足之处: 1,对于切面的实现比较麻烦,既不同类型的通知切面要实现不同的接口,而且一个切面只有一个方法。 2,对于切入点的实现也不是很完美,既通知实现的切面对象的方法对于目标对象方法的精确 阅读全文
posted @ 2017-03-01 01:58 你是风儿 阅读 (220) 评论 (0) 编辑
摘要:对于上篇博客http://www.cnblogs.com/cdf-opensource-007/p/6464237.html结尾处提到的两个问题,可以使用spring提供的自动代理生成器解决。自动代理生成器可以让我们把切面织入目标对象方法时不用再使用ProxyFactoryBean这个类来生成代理对 阅读全文
posted @ 2017-02-27 22:34 你是风儿 阅读 (837) 评论 (0) 编辑