Java基礎面試題

來源:互聯網
上載者:User

標籤:執行個體   idt   this   key   封裝   tco   sql語句   單線程   一個   

1.你最常上的兩個技術站和最常使用的兩個app分別進什嗎?主要解決你什麼需求?

2.請簡述http協議中get請求和post請求的區別.

操作方式

資料位元置

明文密文

資料安全

長度限制

應用情境

GET

HTTP包頭

明文

不安全

長度較小

查詢資料

POST

HTTP本文

可明可密

安全

支援較大資料轉送

修改資料

3.請簡述session和cookie的區別.

  • cookie資料存放在客戶的瀏覽器上,session資料放在伺服器上。
  • cookie不是很安全,別人可以分析存放在本地的COOKIE並進行COOKIE欺騙,考慮到安全應當使用session。
  • session會在一定時間內儲存在伺服器上。當訪問增多,會比較佔用你伺服器的效能,考慮到減輕伺服器效能方面,應當使用COOKIE。
  • 單個cookie儲存的資料不能超過4K,很多瀏覽器都限制一個網站最多儲存20個cookie。
  • 所以個人建議: 將登陸資訊等重要訊息存放為SESSION,其他資訊如果需要保留,可以放在COOKIE中

4.簡述Servlet與JSP的關係,

  JSP就是servlet   jsp繼承了servlet

5.JSP內建對象有哪些,各自起到的作用

  request對象:

  用戶端的請求資訊被封裝在request對象中,通過它才能瞭解到客戶的需求,然後做出響應。它是HttpServletRequest類的執行個體
response對象:
包含了響應客戶請求的有關資訊,但在JSP中很少直接用到它。它是HttpServletResponse類的執行個體。

session對象:
指的是用戶端與伺服器的一次會話,從用戶端連到伺服器的一個WebApplication開始,直到用戶端與伺服器中斷連線為止。它是HttpSession類的執行個體

out對象:
是JspWriter類的執行個體,是向用戶端輸出內容常用的對象

page對象:
指向當前JSP頁面本身,有點象類中的this指標,它是java.lang.Object類的執行個體

application對象:
application對象實現了使用者間資料的共用,可存放全域變數。它開始於伺服器的啟動,直到伺服器的關閉,在此期間,此對象將一直存在;這樣在使用者的前後串連或不同使用者之間的串連中,
可以對此對象的同一屬性進行操作;
在任何地方對此對象屬性的操作,都將影響到其他使用者對此的訪問。伺服器的啟動和關閉決定了application對象的生命。它是ServletContext類的執行個體

6.簡述你所理解的JAVA封裝、繼承、多態。

7.寫出2個常用的設計模式(虛擬碼),並簡述應用情境。

8.HashMap和HashTable區別。

HashMap讀寫速度快,但不安全

HashMap幾乎可以等價於Hashtable,除了HashMap是非synchronized的,並可以接受null(HashMap可以接受為null的索引值(key)和值(value),而Hashtable則不行)。 HashMap是非synchronized,而Hashtable是synchronized,這意味著Hashtable是安全執行緒的,多個線程可以共用一個Hashtable;而如果沒有正確的同步的話,多個線程是不能共用HashMap的。Java 5提供了ConcurrentHashMap,它是HashTable的替代,比HashTable的擴充性更好。 另一個區別是HashMap的迭代器(Iterator)是fail-fast迭代器,而Hashtable的enumerator迭代器不是fail-fast的。所以當有其它線程改變了HashMap的結構(增加或者移除元素),將會拋出ConcurrentModificationException,但迭代器本身的remove()方法移除元素則不會拋出ConcurrentModificationException異常。但這並不是一個一定發生的行為,要看JVM。這條同樣也是Enumeration和Iterator的區別。 由於Hashtable是安全執行緒的也是synchronized,所以在單線程環境下它比HashMap要慢。如果你不需要同步,只需要單一線程,那麼使用HashMap效能要好過Hashtable。 HashMap不能保證隨著時間的推移Map中的元素次序是不變的。

9.HashSet和TreeSet的區別。

10.ArrayList和LinkedList的區別。

  • 1.ArrayList是實現了基於動態數組的資料結構,LinkedList基於鏈表的資料結構。 
  • 2.對於隨機訪問get和set,ArrayList覺得優於LinkedList,因為LinkedList要移動指標。 
  • 3.對於新增和刪除操作add和remove,LinedList比較佔優勢,因為ArrayList要移動資料

11.==與equals的區別。

12.簡述泛型、反射、註解應用情境及各自解決了哪些問題。

13.Thread類的方法有哪些,如何多種方式實現線程同步。

14進程與線程的區別,JAVA中有哪些方式可以建立線程。

15.現有一學生表結構(student-id,class-id,name),請寫出統計每班有多少學生的SQL語句。

16.假如你正在開發一個系統的登入程式,請簡述你是如何?記住使用者名稱和密碼這個操作的,並如何??

17.在視圖層不支援儲存cookie,服務端不支援session的情境下如何保持使用者登陸狀態。

18.設計一套CMS系統或者部落格系統的表結構(畫出大概的UML圖即可)。

Java基礎面試題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.