`
edr_
  • 浏览: 166707 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
文章列表
设计模式-代理模式 即Proxy Pattern,23种java常用设计模式之一。代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问(例如一个内向的男孩想追一个女孩,不过又不认识,但是认识她旁边的闺蜜,这时就是可以通过 ...
关于类的加载顺序 最近瞎搞数据结构跟算法,今天把笔记上的这道题顺便理解理解。这是上周在广州阿里的一道笔试题,百度了一下发现很多人上传了代码,也做了一些总结,而我只是做一下笔记,以后回头可以看看复习; package test.static_; public class StaticTest { public static int k = 0; public static StaticTest t1 = new StaticTest("t1"); public static StaticTest t2 = new StaticTe ...
串的模式匹配算法 模式匹配是指将两个模式作为输入,计算模式元素之间语义上的对应关系的过程,在数据结构中模式匹配是字符串的基本运算之一。 有两个字符串S和T,字符串S称为正文(被匹配字符串),字符串T称为模式(匹配字符串),要求找出模式T在正文S中的首次出现的位置。一旦模式T在正文S中找到,就说发生一次匹配。 示例  目标 S : “Beijing”          模式 T : “jin”          匹配结果 = 3 首先来说说一般情况下的匹配模式:在字符串T跟字符串P上分别定义两个指针i,j,从0开始,如果S[i]==T[j],i++;j++;指针下移,继续循环,一直到字符串T或者字 ...
浅谈守护线程(Daemon ['diːmən] ) java线程有两种:用户线程,守护线程; 守护线程:指在程序运行的时候在后台提供一种通用服务的线程,比如一个拼写检查线程,它是个守护线程,他尽量不打扰你写稿子,你们可以同时进行, ...
常见内部排序算法之归并排序 来自百度百科的解释: 归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的(一开始每个子序列只有一个,也是有序)。然后再把有序子序列合并为整体有序序列。 算法描述: 归并操作的过程如下:     申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列     设定两个指针,最初位置分别为两个已经排序序列的起始位置     比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置     重复步骤3直到某一指针达到序列尾     将另一序列剩下的所有元素直接复制到 ...
常见内部排序算法之插入排序 今天来写写插入排序算法,包括直接插入,折半插入,希尔排序(Shell)。 插入插入,就是将数组分成已排序,未排序,然后将未排序中的第一个插入已排序中的适合位置,这样,未排序越来越少,直到没有就算排序完成!而默认开始则是第一个是已排序,剩下的则是未排序。 直接插入算法: package test.aglorith; import java.util.Arrays; public class InsertSort { public static void sort(int[] data) { int data_len=data.length; ...
交换排序,就是不断的交换,一直到适合为止。选择排序主要是不断的选择,然后才交换。 交换排序有两种: 冒泡排序:就像是气泡一样,小的(轻的)一直向上浮动。从最后一个开始一直向前比较,如果比较它小的话就交换。一直滚到最前(相对,如果前面已经循环一次了,则是第二位)。 下面是代码:(下降,大的往后排) package test.aglorith; import java.util.Arrays; public class BubbleSort { public static void sort(int[] data) { int data_len=data.length; ...
常见内部排序算法 包括选择排序算法,交换排序算法,插入排序算法,基数算法,桶式算法还有归并算法。 其中选择排序算法又包括:简单选择排序算法与堆排序。 选择算法,顾名思义,就是从中选择需要的,然后再与目标地址进行交换。 简单选择排序算法: package test.aglorith; public class SelectSort { //从小到大 public void sort(int[] data) { int data_len=data.length; for (int i = 0; i < data_len; i++) { int big=0 ...
关于生产消费模式 关于生产消费模式,其实就是两个线程之间共用一个对象,并对该对象进行编辑,从而达到线程之间的通信! 既然是生产消费模式,当然至少需要一个生产者,一个消费者,同时需要一个二者之间处理的对象啦!我们称呼这个对象为一个仓库,其中仓库需要两个方法,一个给生产者调用,一个给消费者,相当于生产者与消费者告诉仓库要干嘛了,然后仓库才去调用自身相应的方法;因此仓库的代码为:package test.producer_consumer; public class Pool { public static int nums; public static int max=5; ...
关于使用过滤器设置权限:     过滤器,其实就是一个面向切面编程的很好例子,设置一个切点Pointcut,然后再前面后面加上需要的动作。像编码问题也可以使用到Filter作为统一的过滤。 接下来就简单写一个例子: 首先设置好页面: index.jsp-->包含欢迎信息!,连接后台,注销等链接; login.jsp--> admin/ad_index.jsp 然后写好自定义的Filter类:LimitsFilter(权限设定)登录之后才能进入后台 public class LimitsFilter implements Filter{ @Override public v ...
关于Hashcode的作用   总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set。前者集合内的元素是有序的,元素可以重复;后者元素无序,但元素不可重复。        要想保证元素不重复,可两个元素是否重复应该依据什么来判断呢?这就是Object.equals方法了。但是,如果每增加一个元素就检查一 次,那么当元素很多时,后添加到集合中的元素比较的次数就非常多了。也就是说,如果集合中现在已经有1000个元素,那么第1001个元素加入集合时,它 就要调用1000次equals方法。这显然会大大降低效率。        于是,Java采用了哈希表的原理。哈希 ...
淘宝效率就是高,晚上推荐,第二天就打电话约好时间电话面试,而且时间掐得很准时,至少跟我手机时间是一样的,佩服。好吧,再说说被虐的情况吧。 面试官很友好,首先让我介绍一下自己,完了之后就各种知识问答。。基础差,而且理解跟表达完全是两回事。问到数组与链表的区别,进程与线程的区别,哈希码的理解,JDBC中的线程池的作用以及最重要的参数,三大框架用得最熟悉的一个,MVC的作用等等,还有你最有成就感的技术,,全程17分钟。。。加紧复习。。希望能有下次电面。。我渴望的淘宝。  
    七月12号考完最后一科,挣扎到现在,各种网投简历,回复的基本没有!本来打算暑假好好找实习,挣点生活费,留在学校多学一点!面了安正,说要九月份才开始实习,而且一直怂恿我们几个报java开发的从事数据仓库,找个实习都不容易啊!     有人说,第一份工作要好好找,很有可能决定你以后的路!初来咋到,也不知道什么好的什么不好,只希望跟对师傅,少走弯路!     算了,还是回家好好休养,陪陪家人!大四回来慢慢找!
在一个论坛上看到了一个关于深浅拷贝的文章,引用地址:http://bbs.itcast.cn/thread-14646-1-2.html 概念: (1)浅拷贝(浅克隆)被复制对象的所有变量都含有与原来对象相同的值,而所有的对其他对象的引用仍然只指向原来的对象。 (2)深拷贝(深克隆)被复制对象的所有变量都含有与原来的对象相同的值,那些引用其他对象的变量将指向被复制过的新对象,深复制把要复制的对象所引用的对象都复制了一遍。 实现拷贝需要实现Cloneable接口并且重写clone方法。 (1)如果类型仅包含值类型(int,byte等类型)和string类型的数据成员,我们只要在clone方法中初始 ...
java中线程的启动有两种方式: class T extends Thread{ String name; public T(String n){ name=n; } public void run() { try { for (int i = 0; i < 2; i++) { System.out.println("-------"+name); } } catch (Exception e) {} } } class T1 implements Runnable{ String name; ...
Global site tag (gtag.js) - Google Analytics