- 浏览: 166707 次
- 性别:
- 来自: 广州
最新评论
-
edr_:
baungham 写道 thanks....一起学习
Hashcode的作用 -
baungham:
...
Hashcode的作用 -
谁说我不是会员:
...
设计模式-桥接模式与策略模式之间的区别 -
edr_:
怪兽00 写道同是实习生,你在哪儿实习?广州,外包公司..你? ...
写在2013年末 -
怪兽00:
同是实习生,你在哪儿实习?
写在2013年末
文章列表
设计模式-代理模式
即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;
...