大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java學(xué)習(xí) 最新常見Java基礎(chǔ)面試題及答案

最新常見Java基礎(chǔ)面試題及答案

更新時(shí)間:2020-03-19 10:10:53 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2434次


  String,StringBuffer,StringBuilder的區(qū)別是什么?String為什么是不可變的?


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


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


  VECTOR,ARRAYLIST,LINKEDLIST的區(qū)別是什么?


  vector是同步的,arraylist和linkedlist不是同步的。底層方面,vector與arraylist都是基于object[]array實(shí)現(xiàn)的,但考慮vector線程安全,所以arraylist效率上回比vector較快。元素隨機(jī)訪問上,vector與arraylist是基本相同的,時(shí)間復(fù)雜度是O(1),linkedlist的隨機(jī)訪問元素的復(fù)雜度為O(n)。但在插入刪除數(shù)據(jù)上,linkedlist則比arraylist要快很多。linkedlist比arraylist更占內(nèi)存,因?yàn)閘inkedlist每個(gè)節(jié)點(diǎn)上還要存儲(chǔ)對(duì)前后兩個(gè)節(jié)點(diǎn)的引用。


  HASHTABLE,HASHMAP,TreeMap區(qū)別


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


  ConcurrentHashMap和HashTable的區(qū)別


  兩者均應(yīng)用于多線程中,但當(dāng)HashTable增大到一定程度時(shí),其性能會(huì)急劇下降。因?yàn)榈鷷r(shí)會(huì)被鎖很長(zhǎng)時(shí)間。但ConcurrentHashMap則通過引入分割來保證鎖的個(gè)數(shù)不會(huì)很大。簡(jiǎn)而言之就是HashTable會(huì)鎖住真?zhèn)€map,而ConcurrentHashMap則只需要鎖住map的一個(gè)部分。


  Tomcat,apache,jboss的區(qū)別


  Tomcat是servlet容器,用于解析jsp,servlet。是一個(gè)輕量級(jí)的高效的容器;缺點(diǎn)是不支持EJB,只能用于Java應(yīng)用。


  Apache是http服務(wù)器(web服務(wù)器),類似于IIS可以用來建立虛擬站點(diǎn),編譯處理靜態(tài)頁(yè)面。支持SSL技術(shù),支持多個(gè)虛擬主機(jī)等功能。


  Jboss是應(yīng)用服務(wù)器,運(yùn)行EJB的javaee應(yīng)用服務(wù)器,遵循javaee規(guī)范,能夠提供更多平臺(tái)的支持和更多集成功能,如數(shù)據(jù)庫(kù)連接,JCA等。其對(duì)servlet的支持是通過集成其他servlet容器來實(shí)現(xiàn)的。如tomcat。


  GETPOST區(qū)別


  get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器發(fā)送數(shù)據(jù)。


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


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


  SESSION,COOKIE區(qū)別


  session數(shù)據(jù)放在服務(wù)器上,cookie則放在客戶瀏覽器上。cookie不太安全,因?yàn)榭梢苑治龀霰镜豤ookie,并進(jìn)行cookie欺騙,考慮安全應(yīng)使用session。session會(huì)在一定時(shí)間內(nèi)保存在服務(wù)器上,當(dāng)訪問增多時(shí),會(huì)比較占用服務(wù)器的性能,考慮減輕服務(wù)器壓力則應(yīng)該使用cookie。單個(gè)cookie保持的數(shù)據(jù)不超過4k,很多瀏覽器都限制要給站點(diǎn)最多保存20個(gè)cookie。


  Servlet的生命周期


  主要分三個(gè)階段:初始化——調(diào)用init()方法,響應(yīng)客戶請(qǐng)求階段——調(diào)用service()方法,終止階段——調(diào)用destroy方法。工作原理:客戶發(fā)送一個(gè)請(qǐng)求,servlet調(diào)用service方法對(duì)請(qǐng)求進(jìn)行響應(yīng),即對(duì)請(qǐng)求方式進(jìn)行匹配,選擇調(diào)用doGet、doPost方法等,然后進(jìn)入對(duì)于的方法中調(diào)用邏輯層的方法,實(shí)現(xiàn)對(duì)客戶的響應(yīng)。自定義的servlet必須首先servlet接口。


  具體生命周期包括:裝載Servlet、服務(wù)器創(chuàng)建Servlet實(shí)例、服務(wù)器調(diào)用Servlet的init()方法、客戶請(qǐng)求到達(dá)服務(wù)器、服務(wù)器創(chuàng)建請(qǐng)求對(duì)象、服務(wù)創(chuàng)建相應(yīng)對(duì)象、服務(wù)器激活Servlet的service方法,請(qǐng)求對(duì)象和響應(yīng)對(duì)象作為service()方法的參數(shù)、service()方法獲得關(guān)于請(qǐng)求對(duì)象的信息,處理請(qǐng)求,訪問其他資源,獲得需要的信息、service()方法可能激活其他方法以處理請(qǐng)求,如doGet(),doPost()


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


  使用PreparedStatement可以提升代碼的可讀性和可維護(hù)性,可以盡最大可能提高性能。因?yàn)镾tatement每次執(zhí)行一個(gè)SQL命令都會(huì)對(duì)其編譯,但PreparedStatement則只編譯一次。PreparedStatement就類似于流水線生產(chǎn)。另一方面PreparedStatement可以極大提高安全性:它對(duì)傳遞過來的參數(shù)進(jìn)行了強(qiáng)制參數(shù)類型轉(zhuǎn)換,確保插入或查詢數(shù)據(jù)時(shí),與底層數(shù)據(jù)庫(kù)格式匹配。


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


  redirect,forward區(qū)別


  redirect:服務(wù)器根據(jù)邏輯,發(fā)送一個(gè)狀態(tài)碼,告訴瀏覽器重新去請(qǐng)求那個(gè)地址。所以地址欄顯示是新的url。forward是指服務(wù)器請(qǐng)求資源,直接訪問目標(biāo)地址url,把響應(yīng)的內(nèi)容讀取過來并再發(fā)送給瀏覽器,瀏覽器并不知道資源從哪里來,所以地址欄不變。


  redirect不能共享數(shù)據(jù),forward轉(zhuǎn)發(fā)頁(yè)面和轉(zhuǎn)發(fā)到頁(yè)面可以貢獻(xiàn)request中的數(shù)據(jù)。redirect用于注銷,forward用于登陸。forward效率高于redirect。


最新常見Java基礎(chǔ)面試題及答案


    以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“最新常見Java基礎(chǔ)面試題及答案”的內(nèi)容,希望對(duì)大家有幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。


提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-04-24 搶座中
  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 中文字幕欧美日韩va免费视频 | 97久久久久国产精品嫩草影院 | 日韩狠狠操 | 手机看片福利永久国产日韩 | 91视频国产一区 | 亚洲狠狠婷婷综合久久久久 | 久久网站在线观看 | 成人在线免费视频播放 | 日日摸夜夜爽人人添 | 国产情侣久久精品 | 在线国产网站 | 国内精品视频一区二区八戒 | 国产在线欧美日韩一区二区 | 99久久www免费人成精品 | 日本在线亚州精品视频在线 | 亚洲精品一区二区三区四区手机版 | 日日射影院 | 一级毛片成人免费看a | 欧美成人精品久久精品 | 99精品国产自产在线观看 | 成人精品视频在线观看 | 一级黄毛片 | 性视频一级 | 一级特黄性色生活片 | 久草在线免费资源 | 欧美激情 亚洲 | 激情五月婷婷基地 | 伊人久久狼人 | 神马我我不卡伦影视 | 国产视频观看 | 久久人人爽人人爽人人片av不 | 亚洲免费网 | 国产高清久久99 | 精品欧美一区二区三区 | 炮房五月 | 免费一级欧美大片视频在线 | 亚洲国产香蕉视频欧美 | 天天干天天操天天射 | 久久ri精品高清一区二区三区 | 国产婷婷色综合成人精品 | 真实国产乱人伦在线视频播放 |