黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 最新常見Java基礎面試題及答案

最新常見Java基礎面試題及答案

更新時間:2020-03-19 10:10:53 來源:動力節點 瀏覽2451次


  String,StringBuffer,StringBuilder的區別是什么?String為什么是不可變的?


  1.String是字符串常量,StringBuffer和StringBuilder是字符串變量。StringBuffer是線程安全的,StringBuilder是非線程安全的。具體來說String是一個不可變的對象,每次修改String對象實際上是創新新對象,并將引用指向新對象。效率很低。StringBuffer


  是可變的,即每次修改只是針對其本身,大部分情況下比String效率高,StringBuffer保證同步(synchronized),所以線程安全。StringBuilder沒有實現同步,所以非線程安全。但效率應該比StringBuffer高。StringBuffer使用時最好指定容量,這樣會比不指定容量快30%-40%,甚至比不指定容量的StringBuilder還快。


  VECTOR,ARRAYLIST,LINKEDLIST的區別是什么?


  vector是同步的,arraylist和linkedlist不是同步的。底層方面,vector與arraylist都是基于object[]array實現的,但考慮vector線程安全,所以arraylist效率上回比vector較快。元素隨機訪問上,vector與arraylist是基本相同的,時間復雜度是O(1),linkedlist的隨機訪問元素的復雜度為O(n)。但在插入刪除數據上,linkedlist則比arraylist要快很多。linkedlist比arraylist更占內存,因為linkedlist每個節點上還要存儲對前后兩個節點的引用。


  HASHTABLE,HASHMAP,TreeMap區別


  Hashmap和HashTable都實現了Map接口,但HashTable是線程安全的,HashMap是非線程安全的。HashMap中允許key-value值均為null,但HashTable則不允許。HashMap適合單線程,HashTable適合多線程。HashTAble中的hash數字默認大小是11,增加方式為old*2+1,HashMap中的hash默認大小為16,且均為2的指數。TreeMap則可以將保持的數據根據key值進行排列,可以按照指定的排序方式。默認為升序。


  ConcurrentHashMap和HashTable的區別


  兩者均應用于多線程中,但當HashTable增大到一定程度時,其性能會急劇下降。因為迭代時會被鎖很長時間。但ConcurrentHashMap則通過引入分割來保證鎖的個數不會很大。簡而言之就是HashTable會鎖住真個map,而ConcurrentHashMap則只需要鎖住map的一個部分。


  Tomcat,apache,jboss的區別


  Tomcat是servlet容器,用于解析jsp,servlet。是一個輕量級的高效的容器;缺點是不支持EJB,只能用于Java應用。


  Apache是http服務器(web服務器),類似于IIS可以用來建立虛擬站點,編譯處理靜態頁面。支持SSL技術,支持多個虛擬主機等功能。


  Jboss是應用服務器,運行EJB的javaee應用服務器,遵循javaee規范,能夠提供更多平臺的支持和更多集成功能,如數據庫連接,JCA等。其對servlet的支持是通過集成其他servlet容器來實現的。如tomcat。


  GETPOST區別


  get是從服務器上獲取數據,post是向服務器發送數據。


  get是把參數數據隊列加到提交表單的action屬性所指的URL中,值和表單內各個字段一一對應,在url中可以看到。post是通過HTTPpost機制,將表單內各個字段與其內容放置在htmlheader內一起傳送到action屬性所指的url地址。


  對于get方式,服務區端用request.QueryString獲取變量值,對于post方式,服務器端用request.Form獲取提交的數據。get傳送的數據量較小,post較大,一般不受限制。get安全性比post要低,但執行效率較高。


  SESSION,COOKIE區別


  session數據放在服務器上,cookie則放在客戶瀏覽器上。cookie不太安全,因為可以分析出本地cookie,并進行cookie欺騙,考慮安全應使用session。session會在一定時間內保存在服務器上,當訪問增多時,會比較占用服務器的性能,考慮減輕服務器壓力則應該使用cookie。單個cookie保持的數據不超過4k,很多瀏覽器都限制要給站點最多保存20個cookie。


  Servlet的生命周期


  主要分三個階段:初始化——調用init()方法,響應客戶請求階段——調用service()方法,終止階段——調用destroy方法。工作原理:客戶發送一個請求,servlet調用service方法對請求進行響應,即對請求方式進行匹配,選擇調用doGet、doPost方法等,然后進入對于的方法中調用邏輯層的方法,實現對客戶的響應。自定義的servlet必須首先servlet接口。


  具體生命周期包括:裝載Servlet、服務器創建Servlet實例、服務器調用Servlet的init()方法、客戶請求到達服務器、服務器創建請求對象、服務創建相應對象、服務器激活Servlet的service方法,請求對象和響應對象作為service()方法的參數、service()方法獲得關于請求對象的信息,處理請求,訪問其他資源,獲得需要的信息、service()方法可能激活其他方法以處理請求,如doGet(),doPost()


  Statement與PreparedStatement的區別,什么是SQL注入,如何防止SQL注入


  使用PreparedStatement可以提升代碼的可讀性和可維護性,可以盡最大可能提高性能。因為Statement每次執行一個SQL命令都會對其編譯,但PreparedStatement則只編譯一次。PreparedStatement就類似于流水線生產。另一方面PreparedStatement可以極大提高安全性:它對傳遞過來的參數進行了強制參數類型轉換,確保插入或查詢數據時,與底層數據庫格式匹配。


  SQL注入:就是通過將sql命令插入到web表單遞交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意SQL命令。如sql命令:selectidfromtestwherename='1'or1=1;droptabletest,但用PreparedStatement就可以避免這種問題。


  redirect,forward區別


  redirect:服務器根據邏輯,發送一個狀態碼,告訴瀏覽器重新去請求那個地址。所以地址欄顯示是新的url。forward是指服務器請求資源,直接訪問目標地址url,把響應的內容讀取過來并再發送給瀏覽器,瀏覽器并不知道資源從哪里來,所以地址欄不變。


  redirect不能共享數據,forward轉發頁面和轉發到頁面可以貢獻request中的數據。redirect用于注銷,forward用于登陸。forward效率高于redirect。


最新常見Java基礎面試題及答案


    以上就是動力節點Java培訓機構小編介紹的“最新常見Java基礎面試題及答案”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 看全色黄大色大片免费久久 | 日日摸夜夜添夜夜添影院视频 | 国产人成午夜免费噼啪视频 | 黄站在线观看 | 黄色三级视频网站 | 人人澡天天澡夜夜澡 | 久久精品国产久精国产果冻传媒 | 中文字幕日韩高清版毛片 | 青青久久网 | 9久热这里只有精品视频在线观看 | 日韩一级精品视频在线观看 | 一区二三区国产 | 久久国产欧美日韩高清专区 | 黄色专区 | 欧美日视频 | 99视频精品全部免费免费观 | 青草香蕉视频 | 亚欧有色在线观看免费版高清 | 国产一区二区三区美女秒播 | 成人a毛片久久免费播放 | jyzzyzzz免费视频国产 | 波多野结衣在线免费观看视频 | 欧美三级成人理伦 | 久久国产欧美日韩高清专区 | 伊人影视在线观看日韩区 | 国产年成美女网站视频免费看 | 日产欧产va高清 | 狠狠干香蕉 | 大胸美女被强吻胸动态图片 | 新婚第一次一级毛片 | 中文国产成人精品少久久 | 九九色视频 | 色视频免费版高清在线观看 | 成人小视频在线观看免费 | 91精品在线观看视频 | 一区二区在线视频 | 在线观看色视频网站 | 欧美成成人免费 | 天天在线精品视频在线观看 | 欧美日韩中文字幕在线手机版本 | 在线免费观看a级片 |