亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

求職寶典

6.2 筆試真題 & 詳解

真題1:

第一部分 7道填空題:

1、IM的全稱( ),最大的三個IM( )

2、請寫出三個互聯(lián)網(wǎng)的網(wǎng)址

3、今年上市的5家互聯(lián)網(wǎng)企業(yè)( )

4、5、6、7全是行測題,邏輯推理型,不難。

第二部分 產(chǎn)品設(shè)計題

1、人人網(wǎng)想推出一個校園招聘系統(tǒng),請設(shè)計一個企業(yè)用戶的注冊表單界面,并寫出設(shè)計思路及理由。

2、畫了一個人人網(wǎng)登陸的界面圖,要找問題,并給出修正圖。

第三部分 問答題

1、請比較撥號式電話與按鍵式電話的差異,請從多角度詳細闡述。

2、假如你是人人音樂的產(chǎn)品經(jīng)理,請給出3個你認為最重要的數(shù)據(jù),并說明理由。

3、博客和微博有哪些不同點,請從多角度詳細闡述。

4、假如有一個項目預(yù)定要在1個月內(nèi)完成,結(jié)果一周之后,有一個技術(shù)人員病了,要住院3周,這時作為項目負責人的你會怎么辦?

附加題

人人網(wǎng)要做一個在線電影購票系統(tǒng),請盡你所能詳細描述你的設(shè)計思路。

最后交卷的時候才知道要帶簡歷過去,還好好心的監(jiān)考人員說等我10分鐘,讓我去打印了一份。

真題2:

一、 Java筆試題•單項選擇題

1. Java是從(C)語言改進重新設(shè)計

A.Ada B.C++ C. Pascal D. BASIC

2. 下列語句哪一個正確(B)

A. Java程序經(jīng)編譯后會產(chǎn)生machinecode

B. Java程序經(jīng)編譯后會產(chǎn)生bytecode

C. Java程序經(jīng)編譯后會產(chǎn)生DLL

D.以上都不正確

3. 下列說法正確的有(C)

A. class中的constructor不可省略

B. constructor必須與class同名,但方法不能與class同名

C. constructor在一個對象被new時執(zhí)行

D. 一個class只能定義一個constructor

4. 提取Java存取數(shù)據(jù)庫能力的包是(A)

A.java.sqlB. java.awt C. java.lang D. java.swing

5. 下列運算符合法的是(A)

A. && B.<> C. if D. :=

6. 執(zhí)行如下程序代碼

a=0;c=0;

do{

--c;

a=a-1;

}while(a>0);

后,C的值是(C)

A. 0 B. 1C.-1 D. 死循環(huán)

7. 下列哪一種敘述是正確的(D)

A. abstract修飾符可修飾字段、方法和類

B. 抽象方法的body部分必須用一對大括號{}包住

C. 聲明抽象方法,大括號可有可無

D. 聲明抽象方法不可寫出大括號

8. 下列語句正確的是(A)

A. 形式參數(shù)可被視為local variable

B. 形式參數(shù)可被字段修飾符修飾

C. 形式參數(shù)為方法被調(diào)用時,真正被傳遞的參數(shù)

D. 形式參數(shù)不可以是對象

9. 下列哪種說法是正確的(D)

A. 實例方法可直接調(diào)用超類的實例方法

B. 實例方法可直接調(diào)用超類的類方法

C. 實例方法可直接調(diào)用其他類的實例方法

D. 實例方法可直接調(diào)用本類的類方法

二、 Java筆試題•多項選擇題

1. Java程序的種類有(BCD)

A.類(Class) B.Applet C. Application D. Servlet

2. 下列說法正確的有(BCD)

A. 環(huán)境變量可在編譯source code時指定

B. 在編譯程序時,所能指定的環(huán)境變量不包括class path

C. javac一次可同時編譯數(shù)個java源文件

D. javac.exe能指定編譯結(jié)果要置于哪個目錄(directory)

3. 下列標識符不合法的有(ACD)

A.new B.$Usdollars C.1234 D. car.taxi

4. 下列說法錯誤的有(BCD)

A. 數(shù)組是一種對象

B. 數(shù)組屬于一種原生類

C. int number=[]={31,23,33,43,35,63}

D. 數(shù)組的大小可以任意改變

5. 不能用來修飾interface的有(ACD)

A.privateB. public C. protected D. static

6. 下列正確的有(ACD)

A. call by value不會改變實際參數(shù)的數(shù)值

B. call by reference能改變實際參數(shù)的參考地址

C. call by reference不能改變實際參數(shù)的參考地址

D. call byreference能改變實際參數(shù)的內(nèi)容

7. 下列說法錯誤的有(ACD)

A. 在類方法中可用this來調(diào)用本類的類方法

B. 在類方法中調(diào)用本類的類方法時可直接調(diào)用

C. 在類方法中只能調(diào)用本類中的類方法

D. 在類方法中絕對不能調(diào)用實例方法

8. 下列說法錯誤的有(ABC)

A. Java面向?qū)ο笳Z言容許單獨的過程和函數(shù)存在

B. Java面向?qū)ο笳Z言容許單獨的方法存在

C. Java語言中的方法屬于類的成員(member)

D. Java語言中的方法必定隸屬于某一類(對象),調(diào)用方法與過程或函數(shù)相同

9. 下列說法錯誤的有(BCD)

A. 能被java.exe成功運行的java.class文件必須有main()方法

B. J2SDK就是Java API

C. Appletviewer.exe可利用jar選項運行.jar文件

D. 能被Appletviewer成功運行的java.class文件必須有main()方法

三、 JAVA相關(guān)基礎(chǔ)知識

1. 面向?qū)ο蟮奶卣饔心男┓矫?

封裝,抽象, 繼承,多態(tài)

2. String是最基本的數(shù)據(jù)類型嗎?

基本數(shù)據(jù)類型包括byte、int、char、long、float、double、boolean和short。 java.lang.String類是final類型的,因此不可以繼承這個類、不能修改這個類。為了提高效率節(jié)省空間,我們應(yīng)該用 StringBuffer類. String 和StringBuffer的區(qū)別: JAVA平臺提供了兩個類:String和StringBuffer,它們可以儲存和操作字符串,即包含多個字符的字符數(shù)據(jù)。這個String類 提供了數(shù)值不可改變的字符串。而這個StringBuffer類提供的字符串進行修改。當你知道字符數(shù)據(jù)要改變的時候你就可以使用 StringBuffer。典型地,你可以使用StringBuffers來動態(tài)構(gòu)造字符數(shù)據(jù)。

3. int和Integer有什么區(qū)別

Integer是int的封裝類,里面有很多進行處理的靜態(tài)方法, Integer是對象而int不是,內(nèi)存的分配位置也不一樣

4. String和StringBuffer的區(qū)別

在java中有3個類來負責字符的操作。

1.Character 是進行單個字符操作的,

2.String 對一串字符進行操作。不可變類。

3.StringBuffer 也是對一串字符進行操作,但是可變類。

String:

是對象不是原始類型.

為不可變對象,一旦被創(chuàng)建,就不能修改它的值.

對于已經(jīng)存在的String對象的修改都是重新創(chuàng)建一個新的對象,然后把新的值保存進去.

String 是final類,即不能被繼承.

StringBuffer:

是一個可變對象,當對他進行修改的時候不會像String那樣重新建立對象

它只能通過構(gòu)造函數(shù)來建立,

StringBuffer sb = new StringBuffer();

note:不能通過付值符號對他進行付值.

sb = "welcome to here!";//error

對象被建立以后,在內(nèi)存中就會分配內(nèi)存空間,并初始保存一個null.向StringBuffer中付值的時候可以通過它的append方法.

sb.append("hello");

字符串連接操作中StringBuffer的效率要比String高:

總結(jié): 如果在程序中需要對字符串進行頻繁的修改連接操作的話.使用StringBuffer性能會更高

5. 運行時異常與一般異常有何異同

Java提供了兩類主要的異常:runtime exception和checked exception。checked 異常也就是我們經(jīng)常遇到的IO異常,以及SQL異常都是這種異常。對于這種異常,JAVA編譯器強制要求我們必需對出現(xiàn)的這些異常進行catch。所以,面對這種異常不管我們是否愿意,只能自己去寫一大堆catch塊去處理可能的異常。

但是另外一種異常:runtime exception,也稱運行時異常,我們可以不處理。當出現(xiàn)這樣的異常時,總是由虛擬機接管。比如:我們從來沒有人去處理過NullPointerException異常,它就是運行時異常,并且這種異常還是最常見的異常之一。

出現(xiàn)運行時異常后,系統(tǒng)會把異常一直往上層拋,一直遇到處理代碼。如果沒有處理塊,到最上層,如果是多線程就由Thread.run()拋出,如果是單線程就被main()拋出。拋出之后,如果是線程,這個線程也就退出了。如果是主程序拋出的異常,那么這整個程序也就退出了。運行時異常是Exception的子類,也有一般異常的特點,是可以被Catch塊處理的。只不過往往我們不對他處理罷了。也就是說,你如果不對運行時異常進行處理,那么出現(xiàn)運行時異常之后,要么是線程中止,要么是主程序終止。

如果不想終止,則必須撲捉所有的運行時異常,決不讓這個處理線程退出。隊列里面出現(xiàn)異常數(shù)據(jù)了,正常的處理應(yīng)該是把異常數(shù)據(jù)舍棄,然后記錄日志。不應(yīng)該由于異常數(shù)據(jù)而影響下面對正常數(shù)據(jù)的處理。在這個場景這樣處理可能是一個比較好的應(yīng)用,但并不代表在所有的場景你都應(yīng)該如此。如果在其它場景,遇到了一些錯誤,如果退出程序比較好,這時你就可以不太理會運行時異常,或者是通過對異常的處理顯式的控制程序退出。

異常表示程序運行過程中可能出現(xiàn)的非正常狀態(tài),運行時異常表示虛擬機的通常操作中可能遇到的異常,是一種常見運行錯誤。java編譯器要求方法必須聲明拋出可能發(fā)生的非運行時異常,但是并不要求必須聲明拋出未被捕獲的運行時異常。

6. 說出ArrayList, Vector, LinkedList的存儲性能和特性

ArrayList和Vector都是使用數(shù)組方式存儲數(shù)據(jù),此數(shù)組元素數(shù)大于實際存儲的數(shù)據(jù)以便增加和插入元素,它們都允許直接按序號索引元素,但是插入元素要涉及數(shù)組元素移動等內(nèi)存操作,所以索引數(shù)據(jù)快而插入數(shù)據(jù)慢,Vector由于使用了synchronized方法(線程安全),通常性能上較ArrayList差,而LinkedList使用雙向鏈表實現(xiàn)存儲,按序號索引數(shù)據(jù)需要進行前向或后向遍歷,但是插入數(shù)據(jù)時只需要記錄本項的前后項即可,所以插入速度較快。

7. &和&&的區(qū)別

&和&&都可以用作邏輯與的運算符,表示邏輯與(and),當運算符兩邊的表達式的結(jié)果都為true時,整個運算結(jié)果才為true,否則,只要有一方為false,則結(jié)果為false。

&&還具有短路的功能,即如果第一個表達式為false,則不再計算第二個表達式

&還可以用作位運算符,當&操作符兩邊的表達式不是boolean類型時,&表示按位與操作,我們通常使用0x0f來與一個整數(shù)進行&運算,來獲取該整數(shù)的最低4個bit位,

8. HashMap和Hashtable的區(qū)別

Hashtable和HashMap類有三個重要的不同之處。第一個不同主要是歷史原因。Hashtable是基于陳舊的Dictionary類的,HashMap是Java 1.2引進的Map接口的一個實現(xiàn)。

也許最重要的不同是Hashtable的方法是同步的,而HashMap的方法不是。這就意味著,雖然你可以不用采取任何特殊的行為就可以在一個多線程的應(yīng)用程序中用一個Hashtable,但你必須同樣地為一個HashMap提供外同步。一個方便的方法就是利用Collections類的靜態(tài)的synchronizedMap()方法,它創(chuàng)建一個線程安全的Map對象,并把它作為一個封裝的對象來返回。這個對象的方法可以讓你同步訪問潛在的HashMap。這么做的結(jié)果就是當你不需要同步時,你不能切斷Hashtable中的同步(比如在一個單線程的應(yīng)用程序中),而且同步增加了很多處理費用。

第三點不同是,只有HashMap可以讓你將空值作為一個表的條目的key或value。HashMap中只有一條記錄可以是一個空的key,但任意數(shù)量的條目可以是空的value。這就是說,如果在表中沒有發(fā)現(xiàn)搜索鍵,或者如果發(fā)現(xiàn)了搜索鍵,但它是一個空的值,那么get()將返回null。如果有必要,用containKey()方法來區(qū)別這兩種情況。

9. final, finally, finalize的區(qū)別

final—修飾符(關(guān)鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為 abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變量必須在聲明時給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載。

finally—再異常處理時提供 finally 塊來執(zhí)行任何清除操作。如果拋出一個異常,那么相匹配的 catch 子句就會執(zhí)行,然后控制就會進入 finally 塊(如果有的話)。

finalize—方法名。Java 技術(shù)允許使用 finalize() 方法在垃圾收集器將對象從內(nèi)存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調(diào)用的。它是在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize() 方法是在垃圾收集器刪除對象之前對這個對象調(diào)用的。

10. sleep()和wait()的區(qū)別

其實兩者都可以讓線程暫停一段時間,但是本質(zhì)的區(qū)別是一個線程的運行狀態(tài)控制,一個是線程之間的通訊的問題

在java.lang.Thread類中,提供了sleep(),

而java.lang.Object類中提供了wait(), notify()和notifyAll()方法來操作線程

sleep()可以將一個線程睡眠,參數(shù)可以指定一個時間。

而wait()可以將一個線程掛起,直到超時或者該線程被喚醒。

wait有兩種形式wait()和wait(milliseconds).

sleep和wait的區(qū)別有:

1,這兩個方法來自不同的類分別是Thread和Object

2,最主要是sleep方法沒有釋放鎖,而wait方法釋放了鎖,使得其他線程可以使用同步控制塊或者方法。

3,wait,notify和notifyAll只能在同步控制方法或者同步控制塊里面使用,而sleep可以在

任何地方使用

synchronized(x){

x.notify()

//或者wait()

}

4,sleep必須捕獲異常,而wait,notify和notifyAll不需要捕獲異常

11. overload和override的區(qū)別,overloaded的方法是否可以改變返回值的類型

方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overloading是一個類中多態(tài)性的一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調(diào)用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。如果在一個類中定義了多個同名的方法,它們或有不同的參數(shù)個數(shù)或有不同的參數(shù)類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型。

12. 排序都有哪幾種方法?請列舉,用java實現(xiàn)一個快速排序

排序的方法有:插入排序(直接插入排序、希爾排序),交換排序(冒泡排序、快速排序),選擇排序(直接選擇排序、堆排序),歸并排序,分配排序(箱排序、基數(shù)排序)

用Java語言實現(xiàn)的各種排序,包括插入排序、冒泡排序、選擇排序、Shell排序、快速排序、歸并排序、堆排序、SortUtil等。

插入排序:包括直接插入排序,二分插入排序(又稱折半插入排序),鏈表插入排序,希爾排序(又稱縮小增量排序)。將n個元素的數(shù)列分為已有序和無序兩個部分,每次處理就是將無序數(shù)列的第一個元素與有序數(shù)列的元素從后往前逐個進行比較,找出插入位置,將該元素插入到有序數(shù)列的合適位置中。

冒泡排序 (BubbleSort)的基本概念是:依次比較相鄰的兩個數(shù),將小數(shù)放在前面,大數(shù)放在后面。即在第一趟:首先比較第1個和第2個數(shù),將小數(shù)放前,大數(shù) 放后。然后比較第2個數(shù)和第3個數(shù),將小數(shù)放前,大數(shù)放后,如此繼續(xù),直至比較最后兩個數(shù),將小數(shù)放前,大數(shù)放后。至此第一趟結(jié)束,將最大的數(shù)放到了最 后。在第二趟:仍從第一對數(shù)開始比較(因為可能由于第2個數(shù)和第3個數(shù)的交換,使得第1個數(shù)不再小于第2個數(shù)),將小數(shù)放前,大數(shù)放后,一直比較到倒數(shù)第 二個數(shù)(倒數(shù)第一的位置上已經(jīng)是最大的),第二趟結(jié)束,在倒數(shù)第二的位置上得到一個新的最大數(shù)(其實在整個數(shù)列中是第二大的數(shù))。如此下去,重復(fù)以上過程,直至最終完成排序。

由于在排序過程中總是小數(shù)往前放,大數(shù)往后放,相當于氣泡往上升,所以稱作冒泡排序。

選擇排序:每一趟從待排序的數(shù)據(jù)元素中選出最小(或最大)的一個元素,順序放在已排好序的數(shù)列的最后,直到全部待排序的數(shù)據(jù)元素排完。 選擇排序是不穩(wěn)定的排序方法。

快速排序(Quicksort)是對冒泡排序的一種改進。由C. A. R. Hoare在1962年提出。它的基本思想是:通過一趟排序?qū)⒁判虻臄?shù)據(jù)分割成獨立的兩部分,其中一部分的所有數(shù)據(jù)都比另外一部分的所有數(shù)據(jù)都要小,然后再按此方法對這兩部分數(shù)據(jù)分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數(shù)據(jù)變成有序序列。

13. 垃圾回收器的基本原理是什么?垃圾回收器可以馬上回收內(nèi)存嗎?有什么辦法主動通知虛擬機進行垃圾回收?

對于GC來說,當程序員創(chuàng)建對象時,GC就開始監(jiān)控這個對象的地址、大小以及使用情況。通 常,GC采用有向圖的方式記錄和管理堆(heap)中的所有對象。通過這種方式確定哪些對象是"可達的",哪些對象是"不可達的"。當GC確定一些對象 為"不可達"時,GC就有責任回收這些內(nèi)存空間。

可以。

程序員可以手動執(zhí)行System.gc(),通知GC運行,但是Java語言規(guī)范并不保證GC一定會執(zhí)行。

14. 是否可以從一個static方法內(nèi)部發(fā)出對非static方法的調(diào)用?

不行,

可以這樣理解

static修飾的方法可以直接用類名調(diào)用

非static修飾的方法必須用類new出對象才能調(diào)用

當我們用類名直接調(diào)用時,可能這個類的對象并沒有new。

如果這時候static方法里調(diào)用非static的方法就會出現(xiàn)空指針異常,

當然這種錯誤編譯時就不會通過

15. 同步和異步有何異同,在什么情況下分別使用它們?舉例說明。

如果數(shù)據(jù)將在線程間共享。例如正在寫的數(shù)據(jù)以后可能被另一個線程讀到,或者正在讀的數(shù)據(jù)可能已經(jīng)被另一個線程寫過了,那么這些數(shù)據(jù)就是共享數(shù)據(jù),必須進行同步存取。

當應(yīng)用程序在對象上調(diào)用了一個需要花費很長時間來執(zhí)行的方法,并且不希望讓程序等待方法的返回時,就應(yīng)該使用異步編程,在很多情況下采用異步途徑往往更有效率。

16. String str = new String(“abc”)在內(nèi)存中是怎么分配的?

Java把內(nèi)存劃分成兩種:一種是棧內(nèi)存,一種是堆內(nèi)存。

在函數(shù)中定義的一些基本類型的變量和對象的引用變量都在函數(shù)的棧內(nèi)存中分配。

當在一段代碼塊定義一個變量時,Java就在棧中為這個變量分配內(nèi)存空間,當超過變量的作用域后,Java會自動釋放掉為該變量所分配的內(nèi)存空間,該內(nèi)存空間可以立即被另作他用。

堆內(nèi)存用來存放由new創(chuàng)建的對象和數(shù)組。

在堆中分配的內(nèi)存,由Java虛擬機的自動垃圾回收器來管理。

在堆中產(chǎn)生了一個數(shù)組或?qū)ο蠛,還可以在棧中定義一個特殊的變量,讓棧中這個變量的取值等于數(shù)組或?qū)ο笤诙褍?nèi)存中的首地址,棧中的這個變量就成了數(shù)組或?qū)ο蟮囊米兞俊?

引用變量就相當于是為數(shù)組或?qū)ο笃鸬囊粋名稱,以后就可以在程序中使用棧中的引用變量來訪問堆中的數(shù)組或?qū)ο蟆?

17. String str1 = “abc”和String str1 = newString(“abc”);這兩個的區(qū)別是什么?

String str1 ="abc";

String str2 = "abc";

System.out.println(str1==str2); //true

可以看出str1和str2是指向同一個對象的。

String str1 =new String ("abc");

String str2 =new String ("abc");

System.out.println(str1==str2); // false

用new的方式是生成不同的對象。每一次生成一個。

因此用第二種方式創(chuàng)建多個”abc”字符串,在內(nèi)存中其實只存在一個對象而已. 這種寫法有利與節(jié)省內(nèi)存空間. 同時它可以在一定程度上提高程序的運行速度,因為JVM會自動根據(jù)棧中數(shù)據(jù)的實際情況來決定是否有必要創(chuàng)建新對象。而對于String str = new String("abc");的代碼,則一概在堆中創(chuàng)建新對象,而不管其字符串值是否相等,是否有必要創(chuàng)建新對象,從而加重了程序的負擔。

另一方面, 要注意: 我們在使用諸如Stringstr = "abc";的格式定義類時,總是想當然地認為,創(chuàng)建了String類的對象str。擔心陷阱!對象可能并沒有被創(chuàng)建!而可能只是指向一個先前已經(jīng)創(chuàng)建的 對象。只有通過new()方法才能保證每次都創(chuàng)建一個新的對象。由于String類的immutable性質(zhì),當String變量需要經(jīng)常變換其值時,應(yīng) 該考慮使用StringBuffer類,以提高程序效率。

四、 Android相關(guān)基礎(chǔ)知識

1. Android dvm的進程和Linux的進程、應(yīng)用程序的進程是否為同一個概念

DVM指dalivk的虛擬機。每一個Android應(yīng)用程序都在它自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例。而每一個DVM都是在Linux 中的一個進程,所以說可以認為是同一個概念。

什么是android DVM:Dalvik是Google公司自己設(shè)計用于Android平臺的Java虛擬機,每一個Dalvik 應(yīng)用作為一個獨立的Linux 進程執(zhí)行。獨立的進程可以防止在虛擬機崩潰的時候所有程序都被關(guān)閉。

Dalvik和Java運行環(huán)境的區(qū)別[

1:Dalvik主要是完成對象生命周期管理,堆棧管理,線程管理,安全和異常管理,以及垃圾回收等等重要功能。

2:Dalvik負責進程隔離和線程管理,每一個Android應(yīng)用在底層都會對應(yīng)一個獨立的Dalvik虛擬機實例,其代碼在虛擬機的解釋下得以執(zhí)行。

3:不同于Java虛擬機運行java字節(jié)碼,Dalvik虛擬機運行的是其專有的文件格式Dex 4:dex文件格式可以減少整體文件尺寸,提高I/o操作的類查找速度。

5:odex是為了在運行過程中進一步提高性能,對dex文件的進一步優(yōu)化。

6:所有的Android應(yīng)用的線程都對應(yīng)一個Linux線程,虛擬機因而可以更多的依賴操作系統(tǒng)的線程調(diào)度和管理機制

7:有一個特殊的虛擬機進程Zygote,他是虛擬機實例的孵化器。它在系統(tǒng)啟動的時候就會產(chǎn)生,它會完成虛擬機的初始化,庫的加載,預(yù)制類庫和初始化的操作。如果系統(tǒng)需要一個新的虛擬機實例,它會迅速復(fù)制自身,以最快的數(shù)據(jù)提供給系統(tǒng)。對于一些只讀的系統(tǒng)庫,所有虛擬機實例都和Zygote共享一塊內(nèi)存區(qū)域。

2. Android中的動畫有哪幾類,它們的特點和區(qū)別是什么?

android支持兩種動畫模式,tween animation,frame animation

View Animation(Tween Animation):補間動畫,給出兩個關(guān)鍵幀,通過一些算法將給定屬性值在給定的時間內(nèi)在兩個關(guān)鍵幀間漸變。

View animation只能應(yīng)用于View對象,而且只支持一部分屬性,這種實現(xiàn)方式可以使視圖組件移動、放大、縮小以及產(chǎn)生透明度的變化.

另一種Frame動畫,傳統(tǒng)的動畫方法,通過順序的播放排列好的圖片來實現(xiàn),類似電影。

3. Handler機制的原理

andriod提供了Handler 和Looper 來滿足線程間的通信。Handler先進先出原則。Looper類用來管理特定線程內(nèi)對象之間的消息交換(MessageExchange)。

1)Looper: 一個線程可以產(chǎn)生一個Looper對象,由它來管理此線程里的MessageQueue(消息隊列)。

2)Handler: 你可以構(gòu)造Handler對象來與Looper溝通,以便push新消息到MessageQueue里;或者接收Looper從MessageQueue取出)所送來的消息。

3) Message Queue(消息隊列):用來存放線程放入的消息。

4)線程:UIthread 通常就是main thread,而Android啟動程序時會替它建立一個MessageQueue。

4. 說說mvc模式的原理,它在android中的運用

mvc是model,view,controller的縮寫,mvc包含三個部分:

模型(model)對象:是應(yīng)用程序的主體部分,所有的業(yè)務(wù)邏輯都應(yīng)該寫在該層。

視圖(view)對象:是應(yīng)用程序中負責生成用戶界面的部分。也是在整個mvc架構(gòu)中用戶唯一可以看到的一層,接收用戶的輸入,顯示處理結(jié)果。

控制器(control)對象:是根據(jù)用戶的輸入,控制用戶界面數(shù)據(jù)顯示及更新model對象狀態(tài)的部分,控制器更重要的一種導航功能,響應(yīng)用戶出發(fā)的相關(guān)事件,交給m層處理。

android鼓勵弱耦合和組件的重用,在android中mvc的具體體現(xiàn)如下:

1)視圖層(view):一般采用xml文件進行界面的描述,使用的時候可以非常方便的引入,當然,如果你對android了解的比較的多了話,就一定可以想到在android中也可以使用javascript+html等的方式作為view層,當然這里需要進行java和javascript之間的通信,幸運的是,android提供了它們之間非常方便的通信實現(xiàn)。

2)控制層(controller):android的控制層的重任 通常落在了眾多的acitvity的肩上,這句話也就暗含了不要在acitivity中寫代碼,要通過activity交割model業(yè)務(wù)邏輯層處理,這 樣做的另外一個原因是android中的acitivity的響應(yīng)時間是5s,如果耗時的操作放在這里,程序就很容易被回收掉。

3)模型層(model):對數(shù)據(jù)庫的操作、對網(wǎng)絡(luò)等的操作都應(yīng)該在model里面處理,當然對業(yè)務(wù)計算等操作也是必須放在的該層的。

5. 橫豎屏切換時activity的生命周期

1、不設(shè)置Activity的android:configChanges時,切屏會重新調(diào)用各個生命周期,切橫屏時會執(zhí)行一次,切豎屏時會執(zhí)行兩次

2、設(shè)置Activity的android:configChanges="orientation"時,切屏還是會重新調(diào)用各個生命周期,切橫、豎屏時只會執(zhí)行一次

3、設(shè)置Activity的android:configChanges="orientation|keyboardHidden"時,切屏不會重新調(diào)用各個生命周期,只會執(zhí)行onConfigurationChanged方法

6. 請介紹下android大眾常使用的五種布局

常用五種布局方式,分別是:FrameLayout(框架布局),LinearLayout (線性布局),AbsoluteLayout(絕對布局),RelativeLayout(相對布局),TableLayout(表格布局)。

一、 FrameLayout:所有東西依次都放在左上角,會重疊,這個布局比較簡單,也只能放一點比較簡單的東西。二、LinearLayout:線性布局, 每一個LinearLayout里面又可分為垂直布局(android:orientation="vertical")和水平布局 (android:orientation="horizontal" )。當垂直布局時,每一行就只有一個元素,多個元素依次垂直往下;水平布局時,只有一行,每一個元素依次向右排列。三、AbsoluteLayout:絕對布局用X,Y坐標來指定元素的位置,這種布局方式也比較簡單,但是在屏幕旋轉(zhuǎn)時,往往會出問題,而且多個元素的時候,計算比較麻煩。四、RelativeLayout:相對布局可以理解為某一個元素為參照物,來定位的布局方式。主要屬性有:相對于某一個元素android:layout_below、 android:layout_toLeftOf相對于父元素的地方 android:layout_alignParentLeft、android:layout_alignParentRigh;五、 TableLayout:表格布局,每一個TableLayout里面有表格行TableRow,TableRow里面可以具體定義每一個元素。每一個布 局都有自己適合的方式,這五個布局元素可以相互嵌套應(yīng)用,做出美觀的界面。

五、英文翻譯

把一下段落翻譯成中文

a) An integral(完整的;整體的;完全的)approach to code documentation is to write the code so that it documentsitself. In other words, the code should be naturally readable in such a way asto make it easy to understand. This is accomplished by proper namingconventions and statement(聲明) formatting.

b)Collections(集合) are thedata structures that are most easily altered for performance-tuning purposes.Using the correct or most appropriate collection class can improve performancewith little change to code. For example, if a large ordered collection haselements frequently deleted or inserted throughout it, it usually can providebetter performance if based on a linked list rather than an array. On the otherhand, a static(unchanging) collection that needs to be accessed by indexperforms better with an underlying implementation that is an array.

真題3:

剛剛答完人人網(wǎng)的筆試題,不讓把草稿紙帶出來,只能憑著記憶復(fù)盤了,第一部分還差一題,有人記得可以補充一下,題目基本上都是簡單說明,但是意思基本表達到了,第四部分感覺有點困難,天南大還是有很多高手啊,我是結(jié)結(jié)實實做了2個多小時,提前交的挺多的,呵呵,有些基礎(chǔ)題做的不太好,比如那個已知先序和中序求后序就沒有弄出來,時間有點不夠,再讀讀離散研究下。

原題如下:

第一部分(12*5)

1.一顆完全二叉樹共有768個節(jié)點,求葉節(jié)點個數(shù)____個。

2.一顆由鏈表實現(xiàn)的有n個節(jié)點,那么指針數(shù)____個,指向節(jié)點的指針數(shù)____個,空閑的指針個數(shù)____個。

3.哈希散列題,給了11個數(shù)字,使用0到12進行散列,填一張表

4.1000的階乘的尾部0的個數(shù)____個

5.liux下mkdir,如果父目錄不存在,使用附屬命令創(chuàng)建父目錄

6.”vmstat1“的命令,給出了一張表格,及6個選項判斷正誤(記不得了)

7.(樹)前序AEFBGCDHIKJ,中序:EFAGBCHKIJD,求后序

8.(數(shù)據(jù)庫題)Table1:(5 2 2)(5 3 1)(5 2 3)Table2:(5 2 2)(5 3 1)(5 4 4)使用SQL語句找出存在于Table1中而不存在于table2中數(shù)據(jù)。

9.倆人玩游戲,在腦門上貼數(shù)字(正整數(shù)>=1),只看見對方的,看不見自己的,而且兩人的數(shù)字相差1,要猜自己的數(shù)字

A:我不知道

B:我也不知道

A:我知道了

B:我也知道了

A頭上的字:____;B頭上的字:_____;

10:

11:以下四種排序那種效率最低____,時間復(fù)雜度是多少_____

A:快排 B:冒泡 C:歸并 D:選擇

12:小明的IP是:200.99.***.5,子網(wǎng)掩碼是255.255.148.0,問該子網(wǎng)有多少個IP_____個

第二部分(3*10)

1.二叉搜索樹中給定兩個節(jié)點:BSTNode1和BSTNode2,查找他們的最近公共父節(jié)點

2.環(huán)狀單鏈表,給定指向某個節(jié)點的指針,編寫算法求離其最遠的節(jié)點

3.三個以上設(shè)計模式,并用Java或C++實現(xiàn)

第三部分(4*15)

1.無交集數(shù)據(jù)放在10臺計算機上,如何高效的選出Top10

2.24點游戲,給定四個整數(shù),可以使用加減乘除四種運算法則,但是每個數(shù)只能用一次,編寫游戲解法

3.三國殺,規(guī)則”殺“使對方體力減一半,”閃“可以免除殺一次,現(xiàn)有30張”殺“,15張”閃“,五個人玩游戲,每輪一人三張牌,問出現(xiàn)體力為0的概率

4.萬臺服務(wù)器(集群),構(gòu)造一個監(jiān)控系統(tǒng)去監(jiān)視該服務(wù)器,監(jiān)控服務(wù)器主動或者被動去監(jiān)控服務(wù)器集群,要求每個一段間隔獲取服務(wù)器集群的數(shù)據(jù),請設(shè)計方案,并提供相關(guān)數(shù)據(jù):監(jiān)控服務(wù)器數(shù)量,帶寬,時間間隔等。

人人網(wǎng)校園招聘杭州站C++筆試題目

1.算法的幾個概念:時間復(fù)雜度,空間復(fù)雜度等等。

2.采用鏈地址法處理長度的時候,哈希表查找成功的平均長度與哪些因素有關(guān)?

哈希表的裝填因子有關(guān)。

裝填因子= 表中填入的記錄數(shù)/哈希表的長度。

3.二叉樹節(jié)點的計算:

二叉樹中度為1的節(jié)點有8個,度為0的節(jié)點有3個,問這顆二叉樹總共有多少節(jié)點?

對于任意一棵二叉樹BT,如果度為0的結(jié)點個數(shù)為n0,度為2的結(jié)點個數(shù)為n2,則n0=n2+1。

所以度為2的節(jié)點個數(shù)為3-1 = 2,那么總共的結(jié)點個數(shù)就是3+2+8 = 13。

順便復(fù)習一下完全二叉樹的計算。

完全二叉樹有一個特點,就是度為1的節(jié)點數(shù)要么為1,要么為0?梢宰约寒嫵鰣D來看看。

問題:如果設(shè)一棵完全二叉樹共有500個結(jié)點,則在該二叉樹中有多少個葉子結(jié)點?

設(shè)葉子節(jié)點數(shù)為n0,度為2的節(jié)點數(shù)為n0 - 1,又因為是完全二叉樹,所以n1 = 1或者0

n0 + n1 + n2 = 500,帶入 2n0 - 1 + n1 = 500,故n1 = 1,n0 = 250, n2 = 249。

5.最小生成樹的問題,節(jié)點個數(shù)計算問題。

6.在序列有序的情況下,快速排序的時間復(fù)雜度是多少?

O(n^2)。

7.網(wǎng)卡完成那一層的功能?

網(wǎng)卡工作在物理層和數(shù)據(jù)鏈路層的MAC子層。

https://leehlom.blog.163.com/blog/static/241206962008112775913541/。

8.模板函數(shù)的使用。

template

T add(T x, T y){

return x + y;

}

A.add(5,2)

B.add(5.2,2.2)

C.add(5.2,2)

D.add(5.2,2)

D是錯誤的,因為編譯器知道要特化哪一個了。

8.構(gòu)造函數(shù)可以重載么?析構(gòu)函數(shù)可以重載么?

構(gòu)造不重載,怎么實現(xiàn)多樣化?

析構(gòu)怎么重載,沒有參數(shù)。

10.C++靜態(tài)成員和非靜態(tài)成員有什么區(qū)別?

1)靜態(tài)變量是屬于類的,只能用classname::來調(diào)用.而非靜態(tài)是屬于對象的,必須通過對象

來調(diào)用.

2)如果在函數(shù)中聲明一個靜態(tài)變量的話,它存儲在非函數(shù)的活動區(qū).就是它不隨函數(shù)調(diào)用的

結(jié)束而釋放內(nèi)存空間,所以它也具有全局變量的特點.但是和全局變量相比不同在于它只能在本

文件中使用

11.空類的大小?一個含有虛函數(shù)的類大。繛槭裁?

分別是1和4。

因為,對于空類,C++編譯器會制定一個char來占據(jù)位置。

含有虛函數(shù)的類,里面會存放一個虛函數(shù)指針vptr,指向一個虛函數(shù)表。指針在32位平臺上的大小為4個字節(jié)。

12 OSI七層模型和TCP/IP 五層模型。

應(yīng)用層

表示層

會話層 應(yīng)用層

傳輸層 傳輸層

網(wǎng)絡(luò)層 互聯(lián)網(wǎng)絡(luò)層

數(shù)據(jù)鏈路層 互聯(lián)接口層

物理層 物理層

12.編程求解走樓梯問題:

一個人一次可以上1步,2步,3步。現(xiàn)在有n個階梯(1<= n <= 100W,問有方法可以上去?

)

f(1) = 1;

f(2) = 2;

f(3) = 4;

n > 3,f(n) = f(n - 1) + f(n - 2) + f(n -3)

13.人人網(wǎng)的朋友概念:A和B是朋友,B和C是朋友,那么A和C是二度朋友。

找出每一個人的10度朋友。要求O(n)的算法

14.推薦系統(tǒng)的設(shè)計

《人人網(wǎng)求職寶典》

前言: 第一章 企業(yè)背景 第二章 福利待遇 & 職業(yè)發(fā)展 第三章 校園招聘 第四章 人人網(wǎng)宣講會秘籍 第五章 人人網(wǎng)網(wǎng)申秘籍 第六章 人人網(wǎng)筆試秘籍 第七章 人人網(wǎng)面試秘籍 第八章 常見問題(FAQ)
《人人網(wǎng)求職寶典Word下載》

《人人網(wǎng)求職寶典PDF下載》

Copyright©2006-2024應(yīng)屆畢業(yè)生網(wǎng)yjbys.com版權(quán)所有