1. 程式人生 > >面試題5

面試題5

研發中心java筆試題

一.選擇題

1  下列哪個類不是Collection的子類  C

A. List

B. Set

C. Map

D. Vector

2.  若覆蓋了某個類的hashCode 方法,則必須同時覆蓋它的哪個方法? D

AContains

B.  Clone

C.  toString

D.  Equals

3.  以下關於java垃圾回收器描述錯誤的是 C

A. 垃圾回收可以有效的防止記憶體洩漏,有效的使用可以使用的記憶體

B. 回收機制有分代複製垃圾回收和標記垃圾回收,增量垃圾回收等

C. 可以手動執行system.gc(),通知GC執行,GC會立刻執行垃圾回收

D. 程式設計師不能實時的呼叫垃圾回收器對某個物件或所有物件進行垃圾回收

4. 請問下列方法的返回結果是什麼? C

Public  int f(){

Int  i =0;

Try{

++i;

}finaly{

++i;

}

Return ++i;

}

A.  1

B.  2

C.  3

D.  0

5. 請分析下列程式碼的正確輸出  C

Public  static  void main(String[] args){

StringBuffer a = new StringBuffer(A);

Stringbuffer b =new StringBuffer(B);

Operat(a,b);

System.out,println(a++b);

}

Public static void Operat (StringBuffer x, StringBuffer y){

X.append(y);

Y=x;

}

A. A,B

B. A,A

C. AB,B

D. AB,AB

6. 下面isEmptyString函式正確的是( A )

A、public boolean isEmptyString(String str){

return str == null || str.length()==0;

}

B、public boolean isEmptyString(String str){

return str.length()==0;|| str == null ;

}

C、public boolean isEmptyString(String str){

return str == “” || str.length()==0;

}

D、public boolean isEmptyString(String str){

return str.equals(“”) || str.length()==0;

}

7. 以下說法錯誤的是( C )

AArrayListhVector都是使用陣列的方式儲存資料

BVector是執行緒安全的

CLinkedList相比ArrayList插入資料慢

DLinkedList使用雙向連結串列實現儲存

8. JavaScript定義var  a = 40,  var  b=7,則執行a%b會得到( A )。

A5

B5

Cundefined

Dnull

9. 以下資料庫應用程式的實現原則,哪條是錯誤的( )

A、資料庫的連結,遊標是重要的共享資源,需要謹慎的節約使用,儘量晚點獲取,儘量

點釋放是通常情況下需要遵循的原則

B、事務儘可能的短,儘量巧妙地設計應用使得鎖定的資源越少越好

CSQL語句是越動態越好,越是動態的SQL,則資料庫中通常會存在SQL語句的緩 存和執行計劃的存在

D、不要什麼事情都交給資料庫做,快取是必要的

10. 有以下兩個表X和Y

XF1F2為欄位名)

F1

F2

A

A

B

B

Y(F1,   F3為欄位名)

F1

F3

A

A

C

C

D

D

要求寫一條SQL語句,返回結果如下,正確的是()SELECT  X.F1, X.F2, Y.F3  FROM  X ,  Y  WHERE  X.F1=Y.F1

F1

F2

F3

A

A

A

ASELECT  X.F1, X.F2, Y.F3  FROM  X   INNER  JOIN  Y  ON  X.F1<>Y.F1

BSELECT  X.F1, X.F2, Y.F3  FROM  X   LEFT  JOIN  Y  ON  X.F1=Y.F1

CSELECT  X.F1, X.F2, Y.F3  FROM  X ,  Y  WHERE  X.F1<>Y.F1

DSELECT  X.F1, X.F2, Y.F3  FROM  X   RIGHT  JOIN  Y  ON  X.F1=Y.F1

簡答題:

1.ArrayList和LinkedList的實現原理分別是什麼?有什麼區別?

兩者都實現的是List介面。不同之處在於:

1)、ArrayList是基於動態陣列實現的,LinkedList是基於連結串列的資料結構。

2)、get訪問List內部隨意元素時,ArrayList的效能要比LinkedList效能好。LinkedList中的get方法是要依照順序從列表的一端開始檢查,直到另一端

3)、對於新增和刪除操作LinkedList要強於ArrayList。由於ArrayList要移動資料

2.Java建立物件有哪幾種方式?

有四種方式:

1.new語句建立物件,這是最常用的建立物件的方式。

2.運用反射手段,呼叫Java.lang.Class或者java.lang.reflect.Constructor類的newInstance()例項方法。

3.呼叫物件的clone()方法。

4.運用反序列化手段,呼叫java.io.ObjectInputStream物件的readObject()方法.

3.寫出servlet的生命週期

Servlet 生命週期可被定義為從建立直到毀滅的整個過程。以下是 Servlet 遵循的過程:

· Servlet 通過呼叫 init () 方法進行初始化。

· Servlet 呼叫 service() 方法來處理客戶端的請求。

· Servlet 通過呼叫 destroy() 方法終止(結束)。

· 最後,Servlet 是由 JVM 的垃圾回收器進行垃圾回收的。

4.Mybatis的對映檔案中$和#有什麼區別?

#方式能夠很大程度上防止sql注入,而$無法防止sql的注入,

  $一般用於傳入資料庫物件,例如傳入表名

 一般能用#就別用$

mybatis排序時使用order by動態引數時需要住喲,使用$而不是#

5.Mybatis中ResultType和ResultMap有什麼區別?

 MyBatis中在查詢進行select對映的時候,返回型別可以用resultType,也可以用resultMapresultType是直接表示返回型別的(對應著我們的model物件中的實體),而resultMap則是對外部ResultMap的引用(提前定義了dbmodel之間的隱射key-->value關係),但是resultTyperesultMap不能同時存在。       MyBatis進行查詢對映時,其實查詢出來的每一個屬性都是放在一個對應的Map裡面的,其中鍵是屬性名,值則是其對應的值。       ①當提供的返回型別屬性是resultType時,MyBatis會將Map裡面的鍵值對取出賦給resultType所指定的物件對應的屬性。所以其實MyBatis的每一個查詢對映的返回型別都是ResultMap,只是當提供的返回型別屬性是resultType的時候,MyBatis對自動的給把對應的值賦給resultType所指定物件的屬性。        ②當提供的返回型別是resultMap時,因為Map不能很好表示領域模型,就需要自己再進一步的把它轉化為對應的物件,這常常在複雜查詢中很有作用。

6.SpringMvc有哪些常用的註解?

@Controller

@RequestMapping

@Resource@Autowired

@PathVariable

@CookieValue

@RequestParam

@SessionAttributes

@ModelAttribute

@ResponseBody

7.Springmvc如何實現重定向和轉發?

在使用redirect進行重定向時請求的URL連結發生了改變,並且在controller中如果像reward一樣 model.addAttribute("name", name)放置的引數,重定向之後是無法獲取到的,所以重定向需要另外的方式進行引數的傳遞,上面的程式介紹了兩種重定向傳參的方式:

  ①、重定向之前把引數放進Session中,在重定向之後的controller中把引數從Session中取出並放進ModelAndView

②、使用RedirectAttributes類,這種實現方式比較簡單。

8.Redis有那些資料型別?

1.String(字串)

string型別是二進位制安全的。意思是redisstring可以包含任何資料。比如jpg圖片或者序列化的物件 。

string型別是Redis最基本的資料型別,一個redis中字串value最多可以是512M

2.Hash(雜湊)

Redis hash 是一個鍵值對集合。Redis hash是一個string型別的fieldvalue的對映表,hash特別適合用於儲存物件類似Java裡面的Map<String,Object>

3.List(列表)

Redis 列表是簡單的字串列表,按照插入順序排序。你可以新增一個元素導列表的頭部(左邊)或者尾部(右邊)。它的底層實際是個連結串列

4.Set(集合)

RedisSetstring型別的無序集合。它是通過HashTable實現實現的,

5.zset(sorted set:有序集合)

Redis zset set 一樣也是string型別元素的集合,且不允許重複的成員。不同的是每個元素都會關聯一個double型別的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。zset的成員是唯一的,但分數(score)卻可以重複。

9.Map,List,Set的實現類分別有哪些?

1、List,Set都是繼承自Collection介面,Map則不是2、List特點:元素有放入順序,元素可重複 ,Set特點:元素無放入順序,元素不可重複,重複元素會覆蓋掉,(注意:元素雖然無放入順序,但是元素在set中的位置是有該元素的HashCode決定的,其位置其實是固定的,加入Set 的Object必須定義equals()方法 ,另外list支援for迴圈,也就是通過下標來遍歷,也可以用迭代器,但是set只能用迭代,因為他無序,無法用下標來取得想要的值。) 3.Set和List對比: Set:檢索元素效率低下,刪除和插入效率高,插入和刪除不會引起元素位置改變。 List:和陣列類似,List可以動態增長,查詢元素效率高,插入刪除元素效率低,因為會引起其他元素位置改變。 4.Map適合儲存鍵值對的資料

10.一些列的規則如下:1,1,2,3,5,8,13,21,34......求第30位數是多少,用遞迴演算法實現

public class MainClass   

   {   

        public static void Main()     

        {   

            Console.WriteLine(Foo(30));   

        }   

        public static int Foo(int i)   

        {   

            if (i <= 0)   

                return 0;   

            else if(i > 0 && i <= 2)   

                return 1;   

            else return Foo(i -1) + Foo(i - 2);   

        }   

    }   



檢視原文:http://www.coder306.cn/?p=158

相關推薦

【劍指offer】試題 5. 替換空格

pla AC append replace for turn app null string 面試題 5. 替換空格 題目:請實現一個函數,將一個字符串中的空格替換成“%20”。例如,當字符串為We Are Happy. 則經過替換之後的字符串為We%20Are%2

某度質量部測試開發試題5(未完待續)

line box style ans text ont test bic round 點擊鏈接加入QQ群 522720170(免費公開課、視頻應有盡有):https://jq.qq.com/?_wv=1027&k=5C08ATe某度質量部測試開發面試題5(未完待續)

試題5:替換空格

計算 style happy off tar inter 因此 長度 內容 // 面試題5:替換空格// 題目:請實現一個函數,把字符串中的每個空格替換成"%20"。例如輸入“We are happy.”,// 則輸出“We%20are%20happy.”。 解題思路: 簡

【劍指Offer學習】【試題5 : 從尾到頭列印連結串列】【思路】

方案一:(後進先出)遍歷連結串列,再從棧頂開始出個輸出結點的值,此時輸出的結點的順序已經反轉過來了。 先推進棧 再依次取出棧頂元素 方案二:遞迴。 判斷連結串列頭結點是否為空 將 next 結點作為下一次的實參 輸出當前棧頂元素。 缺點:當連結串

Android試題5

81.雙快取怎麼實現的? 答:1、在記憶體中建立一塊“虛擬畫布”: Bitmap bmp = new Bitmap(600, 600); 2、獲取這塊記憶體畫布的Graphics引用: Graphics g = 

http與tcp試題5

1.HTTPS的加密方式是什麼,講講整個加密解密流程。  加密方式: 1)、對稱密碼演算法:指加密和解密使用相同的金鑰,速度高,可加密內容較大,用來加密會話過程中的訊息。典型演算法DES、AES、RC5、IDEA(分組加密)RC4。   2)、非對稱密碼演算法:又

試題5——C中的malloc和C++中的new有什麼區別?

malloc和new有以下區別: (1)new,delete是操作符,只能在C++中使用; (2)malloc,free是函式,可以覆蓋,C,C++中都可以使用; (3)new可以呼叫物件的建構函式,對應的delete呼叫相應的解構函式; (4)malloc僅僅分配記憶體,free僅僅回收記

試題5.Cookie和session的區別

1、cookie資料存放在客戶的瀏覽器上,session資料放在伺服器上。 2、cookie不是很安全,別人可以分析存放在本地的COOKIE並進行COOKIE欺騙    考慮到安全應當使用session。 3、session會在一定時間內儲存在伺服器上。當訪問增多,會比

劍指offer試題5:替換空格

題目:請實現一個函式,把字串中的每個空格替換成%20。例如,輸入“we are happy”,則輸出“we%20are%20happy" public class Test { public static void main(String[] args) { lon

Java試題5、框架

一、SpringMVC SpringMVC 的工作原理 a. 使用者向伺服器傳送請求,請求被 springMVC 前端控制器 DispatchServlet 捕獲; b. DispatcherServle 對請求 URL 進行解析,得到請求資源識別符號(UR

劍指Offer試題5 從頭到尾列印連結串列

題目:輸入一個連結串列的頭結點,從尾到頭反過來打印出每個結點的值。 連結串列結點定義如下: struct ListNode { int m_nKey; ListNode* m_pNext; }; 思路一:將連結串列中的連線指標反轉過來,改變連結串列的方

大資料工程師試題5

2)HashMap和HashTable,ArrayList和Vector,ArrayList和LinkedList的區別 1 HashMap不是執行緒安全的 hashmap是一個介面 是map介面的子介面,是將鍵對映到值的物件,其中鍵和值都是物件,並且不能包含重複鍵,但可以包含重複值。 Hash

【劍指Offer學習】【試題5 : 從尾到頭列印連結串列】

題目:輸入個連結串列的頭結點,從尾到頭反過來打印出每個結點的值。 public class Test05 { /** * 結點物件 */ public s

劍指offer試題5:替換空格(Java 實現)

題目: 請實現一個函式,將一個字串中的空格替換成“%20”。例如,當字串為We Are Happy.則經過替換之後的字串為We%20Are%20Happy。 測試用例: 功能測試:輸入的字串包含空格(最前面、中間、最後面、連續多個空格) 邊界測試:輸入的字串沒有空格。

試題5

研發中心java筆試題一.選擇題1  下列哪個類不是Collection的子類  CA. ListB. SetC. MapD. Vector2.  若覆蓋了某個類的hashCode 方法,則必須同時覆蓋

試題5:final,finally和finalize的區別

問題: final,finally和finalize的區別 /*final:最終的意思,可以修飾類,成員變數,成員方法  * 修飾類,類不能被繼承  * 修飾變數,變數是常量  * 修飾方法,方法不能被重寫  * finally:是異常處理的一部分,用於釋放資源。  * 一

試題5:標頭檔案中的ifndef/define/endif有什麼作用?

在一個大的軟體工程裡面,可能會有多個檔案同時包含一個頭檔案,當這些檔案編譯連結成一個可執行檔案時,就會出現大量重定義的錯誤。在標頭檔案中實用#ifndef #define #endif能避免標頭檔案

劍指Offer試題5 Java解法

題目:輸入一個連結串列,從尾到頭列印連結串列每個節點的值。  輸入描述: 輸入為連結串列的表頭 輸出描述: 輸出為需要列印的“新連結串列”的表頭 該題的解題思路是遞迴或者是棧: 遞迴解法:publi

劍指Offer試題5——倒序輸出一個連結串列

   問題:已知一個連結串列,倒序輸出它;    其實原題是一個c++的應用題,可以用指標來解決,在java中Arraylist有get()方法也是可以一步到位的,作者給出了一個解決思路用棧來實現,這裡就依照這個思路來簡單寫一下,棧和ArrayList是自己寫的java實現

劍指offer試題5 從頭到尾列印連結串列(java)

注:(1)這裡體現了java資料結構與C語言的不同之處 (2)棧的操作直接利用stack進行 1 package com.xsf.SordForOffer; 2 3 import java.u