2012年8月23日 #
而靜態(tài)方法是被動(dòng)執(zhí)行的 在調(diào)用的時(shí)候執(zhí)行
http://www.cn-java.com/www1/?uid-694384-action-viewspace-itemid-84972
public class QSort
{
/**
* @param args
*/
public static void main(String[] args)
{
// TODO 自動(dòng)生成方法存根
quicksort qs = new quicksort();
int data[] = {44,22,2,32,54,22,88,77,99,11};
qs.data = data;
qs.sort(0, qs.data.length-1);
qs.display();
}
}
class quicksort
{
public int data[];
private int partition(int sortArray[],int low,int hight)
{
int key = sortArray[low];
while(low<hight)
{
while(low<hight && sortArray[hight]>=key)
hight--;
sortArray[low] = sortArray[hight];
while(low<hight && sortArray[low]<=key)
low++;
sortArray[hight] = sortArray[low];
}
sortArray[low] = key;
return low;
}
public void sort(int low,int hight)
{
if(low<hight)
{
int result = partition(data,low,hight);
sort(low,result-1);
sort(result+1,hight);
}
}
public void display()
{
for(int i=0;i<data.length;i++)
{
System.out.print(data[i]);
System.out.print(" ");
}
}
}
首先是筆試:
1 松翰的筆試: 這個(gè)公司主要做C和C++,并且熟悉linux系統(tǒng),這個(gè)宣講會(huì)是去玩的,然后參加了筆試。筆試題是英語(yǔ)填詞,C部分,C++部分,題目很基礎(chǔ),C部分做的不錯(cuò) ,C++部分沒(méi)有做
2 優(yōu)酷土豆的筆試: 筆試的時(shí)間是90分鐘,然后題目涉及廣泛從算法 數(shù)據(jù)結(jié)構(gòu)到海量數(shù)據(jù)處理,還有一些自己感覺(jué)莫名其妙的題目。做的情況嘛 自己沒(méi)什么信心,就當(dāng)去做一下題目回來(lái)針對(duì)學(xué)習(xí)(微軟面試100題系列)。
其次是面試:
松翰的面試: 面試官通過(guò)簡(jiǎn)歷對(duì)與公司有意義或者他本人有想法的東西,鑒于公司的研發(fā)內(nèi)容問(wèn)的我是linux和一些apache(web服務(wù)器)的內(nèi)容,還有一些我不曾了解的領(lǐng)域,自動(dòng)化檢測(cè)(腳本的吧?)。總結(jié)下還是平時(shí)積累很重要。
松翰 面試的知識(shí)點(diǎn):
1 apache與tomcat的區(qū)別:
解析一
apache支持靜態(tài)頁(yè),tomcat支持動(dòng)態(tài)的,比如servlet等, 一般使用apache+tomcat的話,apache只是作為一個(gè)轉(zhuǎn)發(fā),對(duì)jsp的處理是由tomcat來(lái)處理的。 apache可以支持phpcgiperl,但是要使用java的話,你需要tomcat在apache后臺(tái)支撐,將java請(qǐng)求由apache轉(zhuǎn)發(fā)給tomcat處 理。 apache是web服務(wù)器,tomcat是應(yīng)用(java)服務(wù)器,它只是一個(gè)servlet(jsp也翻譯成servlet)容器,可以認(rèn)為是apache的擴(kuò)展,但是可以獨(dú)立于apache運(yùn)行。
這兩個(gè)有以下幾點(diǎn)可以比較的:
1、兩者都是apache組織開(kāi)發(fā)的
2、兩者都有HTTP服務(wù)的功能
3、兩者都是免費(fèi)的
不同點(diǎn):
Apache是專門(mén)用了提供HTTP服務(wù)的,以及相關(guān)配置的(例如虛擬主機(jī)、URL轉(zhuǎn)發(fā)等等)
Tomcat是Apache組織在符合J2EE的JSP、Servlet標(biāo)準(zhǔn)下開(kāi)發(fā)的一個(gè)JSP服務(wù)器
解析二:
APACHE是一個(gè)web服務(wù)器環(huán)境程序 啟用他可以作為web服務(wù)器使用 不過(guò)只支持靜態(tài)網(wǎng)頁(yè) 如(asp,php,cgi,jsp)等動(dòng)態(tài)網(wǎng)頁(yè)的就不行 如果要在APACHE環(huán)境下運(yùn)行jsp 的話就需要一個(gè)解釋器來(lái)執(zhí)行jsp網(wǎng)頁(yè) 而這個(gè)jsp解釋器就是TOMCAT, 為什么還要JDK呢?因?yàn)閖sp需要連接數(shù)據(jù)庫(kù)的話 就要jdk 來(lái)提供連接數(shù)據(jù)庫(kù)的驅(qū)程,所以要運(yùn)行jsp的web服務(wù)器平臺(tái)就需要APACHE+TOMCAT+JDK 整合的好處是:
如果客戶端請(qǐng)求的是靜態(tài)頁(yè)面,則只需要Apache服務(wù)器響應(yīng)請(qǐng)求 如果客戶端請(qǐng)求動(dòng)態(tài)頁(yè)面,則是Tomcat服務(wù)器響應(yīng)請(qǐng)求 因?yàn)閖sp是服務(wù)器端解釋代碼的,這樣整合就可以減少Tomcat的服務(wù)開(kāi)銷(xiāo) C是一個(gè)結(jié)構(gòu)化語(yǔ)言,如譚老爺子所說(shuō):它的重點(diǎn)在于算法和數(shù)據(jù)結(jié)構(gòu)。C程序的設(shè)計(jì)首要考慮的 是如何通過(guò)一個(gè)過(guò)程,對(duì)輸入(或環(huán)境條件)進(jìn)行運(yùn)算處理得到輸出(或?qū)崿F(xiàn)過(guò)程(事務(wù))控制),而對(duì)于C++,首要考慮的是如何構(gòu)造一個(gè)對(duì)象模型,讓這個(gè)模型能夠契合與之對(duì)應(yīng)的問(wèn)題域,這樣就可以通過(guò)獲取對(duì)象的狀態(tài)信息得到輸出或?qū)崿F(xiàn)過(guò)程(事務(wù))控制。
解析三:
apache:側(cè)重于http server
tomcat:側(cè)重于servlet引擎,如果以standalone方式運(yùn)行,功能上與apache等效 , 支持JSP,但對(duì)靜態(tài)網(wǎng)頁(yè)不太理想;
apache是web服務(wù)器,tomcat是應(yīng)用(java)服務(wù)器,它只是一個(gè)servlet(jsp也翻譯成servlet)容器,可以認(rèn)為是apache的擴(kuò)展,但是可以獨(dú)立于apache運(yùn)行。
換句話說(shuō),apache是一輛卡車(chē),上面可以裝一些東西如html等。但是不能裝水,要裝水必須要有容器(桶),而這個(gè)桶也可以不放在卡車(chē)上。
2 linux基礎(chǔ)知識(shí)
linux自啟動(dòng)設(shè)置:http://www.xxlinux.com/linux/article/accidence/technique/20070719/9065.html
Collection框架
集合框架(Collection Framework)泛指java.util包的若干個(gè)類(lèi)和接口.如Collection,List,ArrayList,LinkedList,Vector(自動(dòng)增長(zhǎng)數(shù)組),HashSet,HashMap等. 集合框架中的類(lèi)主要封裝的是典型的數(shù)據(jù)結(jié)構(gòu),如動(dòng)態(tài)數(shù)組,鏈表,堆棧,集合,哈希表等.
集合框架類(lèi)似編程中經(jīng)常用到的工具類(lèi),使得編碼這專注于業(yè)務(wù)層的實(shí)現(xiàn),不需要從底層實(shí)現(xiàn)相關(guān)細(xì)節(jié)—“數(shù)據(jù)結(jié)構(gòu)的封裝”和”典型算法的實(shí)現(xiàn)”.
http://weipeng2k.iteye.com/blog/286620
集合框架的最根基的接口Collection,看一下它的聲明public interface Collection<E> extends Iterable<E>,可以看出它繼承了Iterable(可迭代的)接口,就相當(dāng)于說(shuō)Collection的具體實(shí)現(xiàn)類(lèi)均可以利用Iterator了,這也是集合均支持增強(qiáng)型For循環(huán)的原因。
http://developer.51cto.com/art/200909/149543.htm
Collection框架中實(shí)現(xiàn)比較要實(shí)現(xiàn)什么接口
http://www.aygfsteel.com/fastunit/archive/2008/04/08/191533.html
一個(gè)類(lèi)實(shí)現(xiàn)了Camparable接口則表明這個(gè)類(lèi)的對(duì)象之間是可以相互比較的,這個(gè)類(lèi)對(duì)象組成的集合就可以直接使用sort方法排序。
Comparator可以看成一種算法的實(shí)現(xiàn),將算法和數(shù)據(jù)分離,Comparator也可以在下面兩種環(huán)境下使用:
1、類(lèi)的設(shè)計(jì)師沒(méi)有考慮到比較問(wèn)題而沒(méi)有實(shí)現(xiàn)Comparable,可以通過(guò)Comparator來(lái)實(shí)現(xiàn)排序而不必改變對(duì)象本身
2、可以使用多種排序標(biāo)準(zhǔn),比如升序、降序等
ArrayList和Vector都是使用數(shù)組方式存儲(chǔ)數(shù)據(jù),此數(shù)組元素?cái)?shù)大于實(shí)際存儲(chǔ)的數(shù)據(jù)以便增加和插入元素,它們都允許直接按序號(hào)索引元素,但是插入元素要涉及數(shù)組元素移動(dòng)等內(nèi)存操作,所以索引數(shù)據(jù)快而插入數(shù)據(jù)慢,Vector由于使用了synchronized方法(線程安全),通常性能上較ArrayList差,而LinkedList使用雙向鏈表實(shí)現(xiàn)存儲(chǔ),按序號(hào)索引數(shù)據(jù)需要進(jìn)行前向或后向遍歷,但是插入數(shù)據(jù)時(shí)只需要記錄本項(xiàng)的前后項(xiàng)即可,所以插入速度較快。
LinkedList也是線程不安全的,LinkedList提供了一些方法,使得LinkedList可以被當(dāng)作堆棧和隊(duì)列來(lái)使用。