摘要:
递归应用编辑递归算法一般用于解决三类问题:(1)数据的定义是按递归定义的。(Fibonacci函数)(2)问题解法按递归算法实现。(回溯)(3)数据的结构形式是按递归定义的。(树的遍历,图的搜索)递归的缺点:递归算法解题相对常用的算法如普通循环等,运行效率较低。因此,应该尽量避免使用递归,除非没有更... 阅读全文
摘要:
思路:得到全部5个中最大的数--> 比较第5个数与前四个中最大数的值-> 得到前四个中最大的数--> 比较第四个数与前三个中最大数的值-->得到前三个数中的最大值-->比较第三个数与前两个中最大数的值-->得到前两个数中最大的值-->比较第二个数与第一个数中的最大值但实际运算是从最右端往左端逐步(和... 阅读全文
摘要:
单链表反转(Singly Linked Lists in Java)博客分类:数据结构及算法Java代码packagedsa.linkedlist;publicclassNode{Edata;Nodenext;}Java代码packagedsa.linkedlist;publicclassRever... 阅读全文
摘要:
内部类详解1、定义 一个类的定义放在另一个类的内部,这个类就叫做内部类。Java代码publicclassFirst{publicclassContents{publicvoidf(){System.out.println("InClassFirst'sinnerClassContentsmetho... 阅读全文
摘要:
Spring中提供一些Aware相关接口,像是BeanFactoryAware、 ApplicationContextAware、ResourceLoaderAware、ServletContextAware等等,实现这些 Aware接口的Bean在被初始之后,可以取得一些相对应的资源,例如实现Be... 阅读全文
摘要:
Hibernate的二级缓存策略的一般过程如下: 1) 条件查询的时候,总是发出一条select * from table_name where …. (选择所有字段)这样的SQL语句查询数据库,一次获得所有的数据对象。 2) 把获得的所有数据对象根据ID放入到第二级缓存中。 3) 当Hibe... 阅读全文
摘要:
volatile保证线程间的数据是可见的(共享的),但不保证数据同步volatile相当于synchronized的弱实现,也就是说volatile实现了类似synchronized的语义,却又没有锁机制。它确保对volatile字段的更新以可预见的方式告知其他的线程。volatile包含以下语义:... 阅读全文
摘要:
JMM规范:The rules for happens-before are:Program order rule. Each action in a thread happens-before every action in that thread that comes later in the ... 阅读全文
摘要:
在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁(后面的章节还会谈到锁)。锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。(2)一个线程持有锁会导致其它所有需要此锁的线程挂起。(3)如果一个优先级高的线程等... 阅读全文
摘要:
锁锁是用来锁东西的,让别人打不开也看不到!在线程中,用这个“锁”隐喻来说明一个线程在“操作”一个目标(如一个变量)的时候,如果变量是被锁住的,那么其他线程就对这个目标既“操作”不了(挂起)也无法看到目标的内容!对Java并发包,锁的实现基本在java.util.concurrent.locks包中,... 阅读全文