`
greemranqq
  • 浏览: 972064 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论
文章列表
/** * 插入排序 复杂度:N^2 * 原理:默认第一个元素为起始位置 从第二个元素开始向前比较,如果前一个元素小,则不移动位置,否则交换 一直重复比较,直到不再交换 * 比如:有a,b,c,d,e,f,g 士兵,然后a 站开始,让b 和a 比较,b>a 不变,b<a 交换 同理让c 和 b 比较,再和a 比较 * @author @Ran * */ public class Insertion extends AbstractSort<Object>{ public & ...
/** * 冒泡算法 复杂度:N^2 * 原理:相邻两个元素比较,大的一个后移 * 比如:站一排的士兵,从左第一个开始跟右边的比较,高就交换位置,然后左的第二个又与第三个比 较,类推 比如:水里面的气泡,大的肯定是浮水最快的 (见图) * * @author @Ran */ public class Bubble extends AbstractSort<Object> { public <T extends Comparable<? super T>> T[] sort(T[] t) { for (int ...
最近复习了下,基本算法,发现会写,但是在应用上还是不好,也就是说不知道在什么地方用什么武功最合适! 然后想写一个工具类,可以针对常用的东西进行排序,然后计算它们的效率问题:   1.首先我定义了一个接口: /** * 排序接口 * @author @Ran * */ public interface Sort { // 基本排序方法 public <T extends Comparable<? super T>> T[] sort(T[] t); // 循环的次数 public long getCount(); // 操 ...
一、介绍    ArrayList 简单的说就是一个存放元素的集合,也是一个数组,只是提供了大量方便我们操作的方法, 比数组的优势就是不用我们手动维护了,相信大家用得比较多了,还是看代码吧!   二、源码介绍     2.1 类 ...
前面说了一下spring 代理,说的是JDK 的代理,这种代理方式只能通过接口代理,cglib 可以通过类代理,下面是代码:   // 承接上面的,假设我们要为上学这个业务,添加额外的功能,这里直接实用类 // 目标类 public class ServiceI ...
LinkedHashMap 源码介绍   一、介绍:      LinkedHashMap 和hashMap 功能类似,都是维护的键值对集合,连遍历 以及方法都类似,唯一的区别在于 hashMap  里面的元素是根据hash值来决定存放位置的,是无序的,而LinkedHashMap 维护的是一个按顺序存放的双向链表,是有序的。       所谓的双向链表其实是链表的一种。链表:相当于元素 A->B->C ,也就是我可以通过A 找到B ,从而找到C,可以单向移动。而双向链表:A<->B<->C ,也就是说我可以从B  找到 A 和 C,可以双向移动。 ...
一、HashMap介绍:     上面一篇介绍了hashTable,这里HashMap的作用就不多啰嗦了。HashMap 实现的功能和hashTable 差不多,具体实现和功能我们从源码进行分析。     二、源码分析: 2.1 类实现:       public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>,        Cloneable, Serializable{...}       这里我们可以看到继承了 AbstractMap<K,V&g ...
一、介绍        Hashtable 是早期实现的一个哈希存储方式的类,也就是键值对(key-value)的存放方式。实际上市键值对 和 链表的组合,相对同步安全的。      特点:             1.是key-value 方式存放的,并且是无序存放的             2.线程安全的,性能较低             3.key 不允许重复,否者会覆盖数据             4.key 不能为null,否者会空指针异常,   二、源码解析        public class Hashtable<K,V> extends Di ...
Stack 介绍:       其实Stack  还真没啥好介绍的,主要的知道一点:(LIFO)后进先出 就行了。这东西是线性表(感觉是数据按直线方式存放)一种。直接看源码吧,很简单。     public class Stack<E> extends Vector<E> { public Stack() { } public E push(E item) { addElement(item); return item; } public synchronized E p ...
一.介绍 Vector 本质是一个数组,当然他具有数组的通过下标访问等特性,同时这玩意儿继承了 AbstractList 。当然他具有了集合的通用功能,同时他实现了 List,RandomAccess,Cloneable ,Sertializable 接口。 这里大概提一下RandomAccess 和 Cloneable 。 1.1 
感谢:http://blog.csdn.net/qiushyfm/article/details/4464512   加密算法有很多种:这里只大约列举几例:   1:消息摘要:(数字指纹):既对一个任意长度的一个数据块进行计算,产生一个唯一指纹。MD5/SHA1发送给其他人你的信息和摘要 ...
WebService 相信很多人都用过,没用过肯定也听过。这里依然用通俗的语言大概介绍:   一、WebService 是什么?     它是一种远程访问的技术,是跨平台的,跨语言的,可用xml将各个系统信息进行交流的一直技术。          1.1 WebService 远程访问,是通过http等协议实现的     1.2 跨平台,是服务器是用JAVA 写,JAVA 在JVM 执行,JVM 是跨平台的     1.3 跨语言,各个语言之间信息传输是通过xml 形式,各个语言都识别xml 的格式标准   二、实现过程     这里实现要提到另一种协议:SOAP(htt ...
观察者模式,老生常谈的问题了,相信大家都有所了解,这里用通俗的语言简单介绍一下!   概念:       顾名思义,"观察者" 存在,必然存在被观察者。JAVA 里面我们统称为对象。简单的说:比如 1.你参加高考,肯定会有监考老师,那么老师就是观察者,你就是被观察者。 2.当然观察者可以不只一个,可以存在多个观察者,同理被观察者也可以是多个,也就是多个老师观察多个学生。 3.老师肯定会观察你的考试是否存在zuobi行为,一旦发现任何zuobi行为,有的老师没收你的试卷,      有的老师可能去上报,也就是说观察者会根据你的行为采取不同的措施,来共同处理你z ...
oracle 存储过程(procedure): 一、介绍 存储过程,简单的认为就是SQL + 一些简单逻辑 的综合体。 这里大概记录一下优点: 1.复杂业务(同时对多张表进行CRUD操作),我们如果执行多条SQL,可能会有多个连接。过程可以放在一个事务里面,时间快 2.程序处理的业务,有可能会出现无法预判的BUG ,而过程只要数据没错,就不容易出错,安全性高 3.利用数据内置的操作,数据与数据的交互会更加快捷。 4.创建的时候就已经编译了,传入SQL执行,有些会执行一次编译一次,执行效率就高了。 5.可以重复使用,并行开发,分布测试 ...
今天群里问了一个面试题,这里记录一下,欢迎指点,提出更优方案:   题目: 输入一个数值,求出这个数值所包含的相邻数的和等于这个数值的全部数,并且全部输出 例:输入数 15 输出:15=1+2+3+4+5            15=4+5+6            15=7+8 求思路   public static void countNum( int num){ int rs = 0; for(int i=1,j=1;i<=(num/2)+1;i++){ if(rs<num){ rs += i; } if(rs & ...
Global site tag (gtag.js) - Google Analytics