摘要:
为了更好的使用多线程,JDK提供了线程池供开发人员使用,目的在于减少线程的创建和销毁次数,以此达到线程的重复利用。 其中ThreadPoolExecutor是线程池中最核心的一个类,我们先简单看一下这个类的继承关系。 其中Executor是线程池的顶级接口,接口中只定义了一个方法 void exec 阅读全文
摘要:
想必大多数程序员接触的第一种排序算法是冒泡排序,冒泡排序的特点是:逻辑简单,实现起来也不难,但在数据量比较大的时候性能比较低。 以数字由大到小的排序为例,写一个简单的冒泡排序。 我们看到,冒泡排序就是两个for循环嵌套,内层循环再加一个if语句做逻辑判断。 通俗点解释冒泡排序就是:外层循环控制冒泡的 阅读全文
摘要:
子查询就是在一条查询语句中还有其它的查询语句,主查询得到的结果依赖于子查询的结果。 子查询的子语句可以在一条sql语句的FROM,JOIN,和WHERE后面,本文主要针对在WHERE后面使用子查询与表连接查询的性能做出一点分析。 对于表连接查询和子查询性能的讨论众说纷纭,普遍认为的是表连接查询的性能 阅读全文
摘要:
单向链表反转的方法有很多,其中用的比较多的是迭代法和递归法,迭代法通俗易懂,递归法相对来说比较难理解一些。 最近读了一些网上的文章对这两种算法的解释后,有些自己的理解分享出来供大家参考。 单向链表反转图示: 一、迭代法 迭代法的解题思路是:通过循环遍历的方式,使链表的每一个节点和它的下一个节点断开, 阅读全文
摘要:
通常来说对于mysql数据库插入数据获取主键的方法是采用selectKey的方式,特别是当你持久层使用mybatis框架的时候。 本文除此之外介绍其它两种获取主键的方式。 为了方便描述我们先建一张mysql数据库的表: 一、 jdbc PreparedStatement方式 首先介绍一种jdbc获取 阅读全文
摘要:
fastJson对于json格式字符串的解析主要用到了一下三个类: JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换。 JSONObject:fastJson提供的json对象。 JSONArray:fastJson提供json数组对象。 我们可以 阅读全文
摘要:
先来看一下,内连接的语法: SELECT XXX FROM XXX INNER JOIN XXX ON XXX; 这里 INNER 可以省略,在上一篇博客中我们对于笛卡尔积现象的研究中(http://www.cnblogs.com/cdf-opensource-007/p/6507678.html) 阅读全文
摘要:
首先,先简单解释一下笛卡尔积。 现在,我们有两个集合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),( 阅读全文
摘要:
SQL是一套标准,全称结构化查询语言,是用来完成和数据库之间的通信的编程语言,SQL语言是脚本语言,直接运行在数据库上。同时,SQL语句与数据在数据库上的存储方式无关,只是不同的数据库对于同一条SQL语句的底层实现不同罢了,但结果相同。这有点类似于java中接口的作用,一个接口可以有不同的实现类,不 阅读全文
摘要:
从上述的实验中可以看出BeanNameAutoProxyCreator对于AOP的实现已经和完美了,但是还有两点不足之处: 1,对于切面的实现比较麻烦,既不同类型的通知切面要实现不同的接口,而且一个切面只有一个方法。 2,对于切入点的实现也不是很完美,既通知实现的切面对象的方法对于目标对象方法的精确 阅读全文