更新時(shí)間:2020-03-18 10:18:20 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2666次
webservice是什么?
webservice是一種跨編程語(yǔ)言和跨操作系統(tǒng)的遠(yuǎn)程調(diào)用技術(shù),遵循SOPA/WSDL規(guī)范。
springCloud是什么?
springcloud是一個(gè)微服務(wù)框架,并提供全套分布式系統(tǒng)解決方案。支持配置管理,熔斷機(jī)制,leader選舉,服務(wù)治理,分布式session,微代理,控制總線,智能路由,一次性token。
Java中堆和棧有什么不同?
每個(gè)線程都有自己的棧內(nèi)存,用于存儲(chǔ)本地變量,方法參數(shù)和棧調(diào)用,一個(gè)線程中存儲(chǔ)的變量對(duì)其它線程是不可見(jiàn)的。而堆是所有線程共享的一片公用內(nèi)存區(qū)域。對(duì)象都在堆里創(chuàng)建,為了提升效率線程會(huì)從堆中弄一個(gè)緩存到自己的棧,如果多個(gè)線程使用該變量就可能引發(fā)問(wèn)題,這時(shí)volatile變量就可以發(fā)揮作用了,它要求線程從主存中讀取變量的值。
堆:(對(duì)象)
引用類型的變量,其內(nèi)存分配在堆上或者常量池(字符串常量、基本數(shù)據(jù)類型常量),需要通過(guò)new等方式來(lái)創(chuàng)建。
堆內(nèi)存主要作用是存放運(yùn)行時(shí)創(chuàng)建(new)的對(duì)象。
(主要用于存放對(duì)象,存取速度慢,可以運(yùn)行時(shí)動(dòng)態(tài)分配內(nèi)存,生存期不需要提前確定)
棧:(基本數(shù)據(jù)類型變量、對(duì)象的引用變量)
基本數(shù)據(jù)類型的變量(int、short、long、byte、float、double、boolean、char等)以及對(duì)象的引用變量,其內(nèi)存分配在棧上,變量出了作用域就會(huì)自動(dòng)釋放。
Spring的Scope有以下幾種,通過(guò)@Scope注解來(lái)實(shí)現(xiàn):
(1)Singleton:一個(gè)Spring容器中只有一個(gè)Bean的實(shí)例,此為Spring的默認(rèn)配置,全容器共享一個(gè)實(shí)例。
?。?)Prototype:每次調(diào)用新建一個(gè)Bean實(shí)例。
?。?)Request:Web項(xiàng)目中,給每一個(gè)httprequest新建一個(gè)Bean實(shí)例。
(4)Session:Web項(xiàng)目中,給每一個(gè)httpsession新建一個(gè)Bean實(shí)例。
?。?)GlobalSession:這個(gè)只在portal應(yīng)用中有用,給每一個(gè)globalhttpsession新建一個(gè)Bean實(shí)例。
Spring事務(wù)傳播行為
所謂事務(wù)的傳播行為是指,如果在開(kāi)始當(dāng)前事務(wù)之前,一個(gè)事務(wù)上下文已經(jīng)存在,此時(shí)有若干選項(xiàng)可以指定一個(gè)事務(wù)性方法的執(zhí)行行為。在TransactionDefinition定義中包括了如下幾個(gè)表示傳播行為的常量:
TransactionDefinition.PROPAGATION_REQUIRED:如果當(dāng)前存在事務(wù),則加入該事務(wù);如果當(dāng)前沒(méi)有事務(wù),則創(chuàng)建一個(gè)新的事務(wù)。這是默認(rèn)值。
TransactionDefinition.PROPAGATION_REQUIRES_NEW:創(chuàng)建一個(gè)新的事務(wù),如果當(dāng)前存在事務(wù),則把當(dāng)前事務(wù)掛起。
TransactionDefinition.PROPAGATION_SUPPORTS:如果當(dāng)前存在事務(wù),則加入該事務(wù);如果當(dāng)前沒(méi)有事務(wù),則以非事務(wù)的方式繼續(xù)運(yùn)行。
TransactionDefinition.PROPAGATION_NOT_SUPPORTED:以非事務(wù)方式運(yùn)行,如果當(dāng)前存在事務(wù),則把當(dāng)前事務(wù)掛起。
TransactionDefinition.PROPAGATION_NEVER:以非事務(wù)方式運(yùn)行,如果當(dāng)前存在事務(wù),則拋出異常。
TransactionDefinition.PROPAGATION_MANDATORY:如果當(dāng)前存在事務(wù),則加入該事務(wù);如果當(dāng)前沒(méi)有事務(wù),則拋出異常。
TransactionDefinition.PROPAGATION_NESTED:如果當(dāng)前存在事務(wù),則創(chuàng)建一個(gè)事務(wù)作為當(dāng)前事務(wù)的嵌套事務(wù)來(lái)運(yùn)行;如果當(dāng)前沒(méi)有事務(wù),則該取值等價(jià)于TransactionDefinition.PROPAGATION_REQUIRED。
Spring的聲明式事務(wù)管理力度是什么級(jí)別?
Struts2是類級(jí)別的,Spring是方法級(jí)別的spring事務(wù)可以分為編程式事務(wù)和聲明式事務(wù)
springMVC與struts2的區(qū)別:
1、Struts2是類級(jí)別的攔截,一個(gè)類對(duì)應(yīng)一個(gè)request上下文,SpringMVC是方法級(jí)別的攔截
2、SpringMVC的方法之間基本上獨(dú)立的,獨(dú)享requestresponse數(shù)據(jù)
3、由于Struts2需要針對(duì)每個(gè)request進(jìn)行封裝,把request,session等servlet生命周期的變量封裝成一個(gè)一個(gè)
Map,供給每個(gè)Action使用,并保證線程安全,所以在原則上,是比較耗費(fèi)內(nèi)存的
4、攔截器實(shí)現(xiàn)機(jī)制上,Struts2有以自己的interceptor機(jī)制,SpringMVC用的是獨(dú)立的AOP方式
5、SpringMVC的入口是servlet,而Struts2是filter
6、SpringMVC集成了Ajax
7、SpringMVC驗(yàn)證支持JSR303,處理起來(lái)相對(duì)更加靈活方便,而Struts2驗(yàn)證比較繁瑣,感覺(jué)太煩亂
8、SpringMVC和Spring是無(wú)縫的。從這個(gè)項(xiàng)目的管理和安全上也比Struts2高
9、Struts2更加符合OOP的編程思想,SpringMVC就比較謹(jǐn)慎,在servlet上擴(kuò)展
10、SpringMVC開(kāi)發(fā)效率和性能高于Struts2
11、SpringMVC可以認(rèn)為已經(jīng)100%零配置
Spring框架中的核心思想包括什么?
主要思想是IOC控制反轉(zhuǎn),DI依賴注入,AOP面向切面
ArrayList和LinkedList的大致區(qū)別如下:
1.ArrayList是實(shí)現(xiàn)了基于動(dòng)態(tài)數(shù)組的數(shù)據(jù)結(jié)構(gòu),LinkedList基于鏈表的數(shù)據(jù)結(jié)構(gòu)。
2.對(duì)于隨機(jī)訪問(wèn)get和set,ArrayList覺(jué)得優(yōu)于LinkedList,因?yàn)長(zhǎng)inkedList要移動(dòng)指針。
3.對(duì)于新增和刪除操作add和remove,LinedList比較占優(yōu)勢(shì),因?yàn)锳rrayList要移動(dòng)數(shù)據(jù)。
ArrayList,Vector主要區(qū)別為以下幾點(diǎn):
?。?):Vector是線程安全的,源碼中有很多的synchronized可以看出,而ArrayList不是。導(dǎo)致Vector效率無(wú)法和ArrayList相比;
?。?):ArrayList和Vector都采用線性連續(xù)存儲(chǔ)空間,當(dāng)存儲(chǔ)空間不足的時(shí)候,ArrayList默認(rèn)增加為原來(lái)的50%,Vector默認(rèn)增加為原來(lái)的一倍;
HashSet與HashMap的區(qū)別:
HashMapHashSet實(shí)現(xiàn)了Map接口實(shí)現(xiàn)Set接口存儲(chǔ)鍵值對(duì)僅存儲(chǔ)對(duì)象調(diào)用put()向map中添加元素調(diào)用add()方法向Set中添加元素HashMap使用鍵(Key)計(jì)算HashcodeHashSet使用成員對(duì)象來(lái)計(jì)算hashcode值,
對(duì)于兩個(gè)對(duì)象來(lái)說(shuō)hashcode可能相同,
所以equals()方法用來(lái)判斷對(duì)象的相等性,
如果兩個(gè)對(duì)象不同的話,那么返回false
HashMap相對(duì)于HashSet較快,因?yàn)樗鞘褂梦ㄒ坏逆I獲取對(duì)象HashSet較HashMap來(lái)說(shuō)比較慢

以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“多家公司常問(wèn)Java的基礎(chǔ)知識(shí)面試題”的內(nèi)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)