面試問題整理

主要問到的問題

一、常見框架:spring骨稿、spring mvc拆融、hibernate、struts啊终、ibatis/mybatis镜豹、log4j、Redis蓝牲、Dubbo

二.網(wǎng)絡(luò):https/http趟脂;tcp/ip

三.linux命令

四.數(shù)據(jù)庫:oracle、mysql例衍、mango db昔期、no sql

五.設(shè)計模式:單例模式,工廠模式佛玄、策略模式硼一、觀察者模式、裝飾者模式梦抢、適配器模式般贼、代理模式

六.前端:html、jsp,css奥吩、xml哼蛆、jquery、javascript霞赫、json湃鹊、ajax

七.接口:webservice急但、Restful、hessian

八.消息:Active mq/Rabbitmq

九.分布式緩存:memcached/Redis

十.java基礎(chǔ)

十一:工具:eclipse/idea;svn/git ;maven;

十二:jvm調(diào)優(yōu)

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

一、常見框架:spring扛拨、spring mvc、hibernate、struts、ibatis/mybatis楼誓、log4j、Redis名挥、Dubbo

1.Spring:

11.Java中Runnable和Callable有什么不同?

二.網(wǎng)絡(luò):https/http主守;tcp/ip

三.linux命令

四.數(shù)據(jù)庫:oracle禀倔、mysql、mango db参淫、no sql

五.設(shè)計模式:單例模式救湖,工廠模式、策略模式涎才、觀察者模式鞋既、裝飾者模式、適配器模式耍铜、代理模式

1寫出單例模式(至少兩種):

懶漢模式

class Singleton{

? ? ? ? ? private static Singleton s;

? ? ? ? ? ?private Singleton(){}

? ? ? ? ? ?public static Singleton getSingleton(){

? ? ? ? ? ? ?if(s==null){

? ? ? ? ? ? ?s=new Singleton();

? ? ? ? ? ? ? ? }

? ? ? ? ? ? return s;

? ? ? ? }?

}

餓漢模式:

class Singleton{

private static Singleton s=new Singleton();

private Singleton(){}

public Singleton getSingleton(){

return?s;

}

}

2.項目中用到的是哪種設(shè)計模式邑闺?

六.前端:html、jsp,css棕兼、xml陡舅、jquery、javascript伴挚、json靶衍、ajax

七.接口:webservice、Restful茎芋、hessian


八.消息:Active mq/Rabbitmq

1.Active Mq常用的協(xié)議颅眶?


2.為什么要用active mq,為什么不用多線程調(diào)用webservice接口方式進行通信田弥?Active mq的應(yīng)用場景涛酗?

為什么要用active mq:消息隊列的主要作用是為了解決高并發(fā)訪問高峰,加快響應(yīng)速度偷厦。一般情況下煤杀,不用消息隊列,客戶端來的請求會直接寫入數(shù)據(jù)庫沪哺,在訪問高峰期沈自,高并發(fā)的情況下,會對數(shù)據(jù)庫訪問造成壓力辜妓,響應(yīng)發(fā)生延遲枯途,造成數(shù)據(jù)庫訪問的瓶頸忌怎。使用隊列后,用戶的請求發(fā)給隊列后會立刻返回酪夷,之后再由消息隊列的消費者進程監(jiān)聽對應(yīng)的隊列榴啸,從消息隊列中獲取數(shù)據(jù),異步寫入數(shù)據(jù)庫晚岭。消息隊列的服務(wù)處理速度遠快于數(shù)據(jù)庫鸥印,因此用戶的響應(yīng)延遲可得到有效改善。

為什么不用多線程調(diào)用webservice接口方式進行通信坦报?WebService:用來遠程調(diào)用服務(wù)库说,達到打通系統(tǒng)、服務(wù)復(fù)用的目的片择。是SOA系統(tǒng)架構(gòu)——面向服務(wù)架構(gòu)的體現(xiàn)潜的。ActiveMQ:一般用來做消息通信,特別是異步的消息處理字管,把同步的處理變成異步消息啰挪,使得系統(tǒng)解耦、消峰平谷嘲叔。WebService與ActiveMQ的區(qū)別:Webservice近乎實時通信亡呵,而MQ卻通常是延時通信;MessageQueue組件會把消息持久化放在本地硫戈,所以哪怕突然死機了政己,請求消息也是不會丟失的。

Active mq的應(yīng)用場景掏愁?1.異步處理:用戶注冊后歇由,需要發(fā)注冊郵件和注冊短信;引入active mq果港,注冊信息寫入數(shù)據(jù)庫后沦泌,注冊郵件和發(fā)送短信的消息寫入消息隊列后直接返回。會比串行和并行的做法更快捷辛掠。2.應(yīng)用解耦:用戶下單后谢谦,訂單系統(tǒng)需要通知庫存系統(tǒng);3.流量削鋒也是消息隊列中的常用場景萝衩,一般在秒殺或團搶活動中使用廣泛(https://blog.csdn.net/he90227/article/details/50800646)

九.分布式緩存:memcached/Redis

十.java基礎(chǔ)

1.多線程問題:

11.Java中Runnable和Callable有什么不同回挽?

Runnable和Callable都代表那些要在不同的線程中執(zhí)行的任務(wù)。Runnable從JDK1.0開始就有了猩谊,Callable是在 JDK1.5增加的千劈。它們的主要區(qū)別是Callable的 call() 方法可以返回值和拋出異常,而Runnable的run()方法沒有這些功能牌捷。Callable可以返回裝載有計算結(jié)果的Future對象墙牌。

1.2.Thread 類中的start() 和 run() 方法有什么區(qū)別涡驮?

start()方法被用來啟動新創(chuàng)建的線程,而且start()內(nèi)部 調(diào)用了run()方法喜滨,這和直接調(diào)用run()方法的效果不一樣捉捅。當你調(diào)用run()方法的時候,只會是在原來的線程中調(diào)用虽风,沒有新的線程啟 動棒口,start()方法才會啟動新線程。

1.3.你們用多線程嗎辜膝?java中實現(xiàn)多線程的方法无牵?說說項目中使用的多線程案例

用了,實現(xiàn)runable接口或者集成thread類内舟,

場景一:一個業(yè)務(wù)邏輯有很多次的循環(huán),每次循環(huán)之間沒有影響初橘,比如驗證1萬條url路徑是否存在验游,正常情況要循環(huán)1萬次,逐個去驗證每一條URL保檐,這樣效率會很低耕蝉,假設(shè)驗證一條需要1分鐘,總共就需要1萬分鐘夜只,有點恐怖垒在。這時可以用多線程,將1萬條URL分成50等份扔亥,開50個線程场躯,沒個線程只需驗證200條,這樣所有的線程執(zhí)行完是遠小于1萬分鐘的旅挤。

場景二:需要知道一個任務(wù)的執(zhí)行進度踢关,比如我們常看到的進度條粘茄,實現(xiàn)方式可以是在任務(wù)中加入一個整型屬性變量(這樣不同方法可以共享)签舞,任務(wù)執(zhí)行一定程度就給變量值加1,另外開一個線程按時間間隔不斷去訪問這個變量柒瓣,并反饋給用戶儒搭。

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

sleep釋放資源但是不會釋放鎖,wait會釋放資源和鎖芙贫,使得其他線程可以使用同步控制塊或者鎖搂鲫。

sleep需要捕獲異常,wait不需要磺平;

wait默穴,notify,notifyAll 只能夠在同步塊或者同步方法中使用怔檩,sleep能夠在任何地方使用

2.數(shù)據(jù)類型問題:

2.1string 和stringBuffer區(qū)別:

string是不可變類,StringBuffer提供字符串修改

解釋:String str = 'abc';str = str + 'def';

‘a(chǎn)bc’和‘def’是兩個單獨的對象蓄诽,編譯的時候會拜放到常量池中薛训。然后執(zhí)行String str = ‘a(chǎn)bc’將str‘a(chǎn)bc’指向這個常量,然后str = str + ‘def’會重新創(chuàng)建一個‘a(chǎn)bcdef’的對象仑氛,并將str指向這個對象乙埃。所以以上的代碼中,我們共創(chuàng)建了3個對象

new StringBuffer("abc").equals(new StringBuffer("abc")) ? false ? ?stringBuffer沒有實現(xiàn)equals方法

2.2:String 是否可以被繼承:

String不可以被繼承锯岖,因為String是final的

2.3:ArrayList和Vector的區(qū)別

同步性:vector是線程安全的(同步的)介袜,arrayList是線程不安全的

數(shù)據(jù)增長:ArrayList和vector都有一個初始的容量大小,Vector增長原來的1倍出吹,arrayList增長原來的0.5倍遇伞。

2.4:HashMap和HashTable的區(qū)別:

區(qū)別:

HashTbale是同步的(線程安全的),HashMap是線程不安全的

hashMap允許將null作為鍵或者值捶牢,而hashTable不允許

2.5:List和Map的區(qū)別:

List是存儲單列數(shù)據(jù)的集合鸠珠,map是存儲雙列數(shù)據(jù)的集合

List存儲的數(shù)據(jù)是有序的并且能夠重復(fù),map存儲的數(shù)據(jù)是無序的秋麸,其鍵是不能重復(fù)的渐排,值是可以重復(fù)的。

2.6 List,Map,Set的三個接口灸蟆,存取數(shù)據(jù)時候各有什么特點驯耻?

List和set都是單列元素的集合,他們有共同的父接口collection,list和set都通過add來存元素

set不允許有重復(fù)的元素炒考,set取元素時只能以iterator取得所有的元素可缚,再逐一遍歷各個元素。

List允許重復(fù)元素斋枢,list通過get()方法獲取元素

Map是雙列集合城看,map通過put方法存儲一對鍵值對,通過get(鍵)獲取值杏慰,map不可以存儲重復(fù)的鍵测柠。

2.7:ArrayList,vector缘滥,LinkedList的存儲性能和特點:

ArrayList和Vector都是數(shù)組方式存儲數(shù)據(jù)轰胁,他們允許按序號索引元素,但插入數(shù)據(jù)要涉及數(shù)組移動等內(nèi)存操作朝扼,所以插入慢而索引快赃阀。vector是線程安全的,arrayList是線程不安全的。

LinkedList使用雙向鏈表方式存儲數(shù)據(jù)榛斯,插入塊观游,索引慢。

2.4 collection 框架的結(jié)構(gòu):

(摘自https://blog.csdn.net/qq_28261343/article/details/52614411)

2.5說出常用的類驮俗、包懂缕、接口各五個:

類:Date,String,ArrayList,HashMap,StringBuffer;Object

包:java.Util王凑;java.lang搪柑;java.oi;java.sql索烹;org.hibernate

接口:List工碾;Map;Set百姓;Iterator渊额;Runable

3.流:

3.1:java中有幾種類型的流?Jdk為美中類型的流提供了一些抽象類供他們供他們繼承垒拢,清說出他們分別是哪些旬迹?

兩種:字符流和字節(jié)流;

字節(jié)流:inputStream,outputStream;

字符流:inputStreamReader;outputStreamWriter


字節(jié)流:


摘自https://blog.csdn.net/qq924862077/article/details/52687487



摘自https://blog.csdn.net/qq924862077/article/details/52687487

字符流:


摘自https://blog.csdn.net/qq924862077/article/details/52687487


摘自https://blog.csdn.net/qq924862077/article/details/52687487

3.算法:

3.1:快速排序:對于一組給定的記錄子库,通過一趟排序后舱权,將原序列分為兩部分矗晃,其中前一部分的所有記錄均比后一部分的所有記錄小仑嗅,然后再依次對前后兩部分的記錄進行快速排序,遞歸該過程张症,直到序列中的所有記錄均有序為止仓技。

public?class?QuickSort {

????public?static?void?sort(int[] a,?int?low,?int?high) {

????????if(low>=high)

????????????return;

????????int?i = low;

????????int?j = high;

????????int?key = a[i];

????????while?(i < j) {

????????????while?(i < j && a[j] >= key)

????????????????j--;

????????????a[i++] = a[j];

????????????while?(i < j && a[i] <= key)

????????????????i++;

????????????a[j--] = a[i];

????????}

????????a[i] = key;

????????sort(a,low,i-1);

????????sort(a,i+1,high);

????}


????public?static?void?quickSort(int[] a) {

????????sort(a,?0, a.length-1);

????????for(int?i:a)

????????????System.out.print(i+" ");

????}


????public?static?void?main(String[] args) {

????????int[] a = {?49,?38,?65,?97,?76,?13,?27,?50?};

????????quickSort(a);

????}

}

3.2:冒泡排序:比較相鄰的兩個元素,值大的放置到右邊

public class BubbleSort{

?int[] a ={3,6,1,9,32,67,56,21,4,5,10};

for(int i=0;i<a.length-1;i++){

? for(int j=i+1;j<a.length-i;j++){

? if(a[i]>a[j]){

?int temp =a[i];

a[i]=a[j];

a[j]=a[i];

? ?}


? }

}

}

十一:工具:eclipse/idea;svn/git ;maven;

十二:JVM調(diào)優(yōu)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末俗他,一起剝皮案震驚了整個濱河市脖捻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌兆衅,老刑警劉巖地沮,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異羡亩,居然都是意外死亡摩疑,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門畏铆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來雷袋,“玉大人,你說我怎么就攤上這事辞居】” “怎么了蛋勺?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鸠删。 經(jīng)常有香客問我抱完,道長,這世上最難降的妖魔是什么冶共? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任乾蛤,我火速辦了婚禮,結(jié)果婚禮上捅僵,老公的妹妹穿的比我還像新娘家卖。我一直安慰自己,他們只是感情好庙楚,可當我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布上荡。 她就那樣靜靜地躺著,像睡著了一般馒闷。 火紅的嫁衣襯著肌膚如雪酪捡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天纳账,我揣著相機與錄音逛薇,去河邊找鬼。 笑死疏虫,一個胖子當著我的面吹牛永罚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播卧秘,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼呢袱,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了翅敌?” 一聲冷哼從身側(cè)響起羞福,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蚯涮,沒想到半個月后治专,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡遭顶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年张峰,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片液肌。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡挟炬,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情谤祖,我是刑警寧澤婿滓,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站粥喜,受9級特大地震影響凸主,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜额湘,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一卿吐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧锋华,春花似錦嗡官、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至纳猫,卻和暖如春婆咸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背芜辕。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工尚骄, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人侵续。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓倔丈,卻偏偏與公主長得像,于是被迫代替她去往敵國和親询兴。 傳聞我的和親對象是個殘疾皇子乃沙,可洞房花燭夜當晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法起趾,類相關(guān)的語法诗舰,內(nèi)部類的語法,繼承相關(guān)的語法训裆,異常的語法眶根,線程的語...
    子非魚_t_閱讀 31,664評論 18 399
  • 哎呀呀 ,馬上就要面臨找工作了,媛媛心里緊張呀. 作為一個即將畢業(yè)的Android程序媛,開始面臨找工作了,...
    左神話閱讀 4,569評論 7 59
  • 從三月份找實習到現(xiàn)在,面了一些公司边琉,掛了不少属百,但最終還是拿到小米、百度变姨、阿里族扰、京東、新浪、CVTE渔呵、樂視家的研發(fā)崗...
    時芥藍閱讀 42,277評論 11 349
  • 泉水毖彼泉水怒竿,亦流于淇。有懷于衛(wèi)扩氢,靡日不思耕驰。孌彼諸姬,聊與之謀录豺。出宿于泲朦肘,飲餞于禰。女子有行双饥,遠父母兄弟媒抠。問我諸姑...
    微憧閱讀 357評論 0 0
  • 癡夢綿綿不歇休, 梨園粉墨唱春秋咏花。 驚才秋雨稱雛鳳 领舰,大風歌罷是明樓 。 琴心靜默刼魂魄 迟螺,納語輕柔拓藝疇冲秽。 此去...
    聽泉閱讀 671評論 0 0