更新時間:2020-03-18 10:18:20 來源:動力節點 瀏覽2298次
webservice是什么?
webservice是一種跨編程語言和跨操作系統的遠程調用技術,遵循SOPA/WSDL規范。
springCloud是什么?
springcloud是一個微服務框架,并提供全套分布式系統解決方案。支持配置管理,熔斷機制,leader選舉,服務治理,分布式session,微代理,控制總線,智能路由,一次性token。
Java中堆和棧有什么不同?
每個線程都有自己的棧內存,用于存儲本地變量,方法參數和棧調用,一個線程中存儲的變量對其它線程是不可見的。而堆是所有線程共享的一片公用內存區域。對象都在堆里創建,為了提升效率線程會從堆中弄一個緩存到自己的棧,如果多個線程使用該變量就可能引發問題,這時volatile變量就可以發揮作用了,它要求線程從主存中讀取變量的值。
堆:(對象)
引用類型的變量,其內存分配在堆上或者常量池(字符串常量、基本數據類型常量),需要通過new等方式來創建。
堆內存主要作用是存放運行時創建(new)的對象。
(主要用于存放對象,存取速度慢,可以運行時動態分配內存,生存期不需要提前確定)
棧:(基本數據類型變量、對象的引用變量)
基本數據類型的變量(int、short、long、byte、float、double、boolean、char等)以及對象的引用變量,其內存分配在棧上,變量出了作用域就會自動釋放。
Spring的Scope有以下幾種,通過@Scope注解來實現:
(1)Singleton:一個Spring容器中只有一個Bean的實例,此為Spring的默認配置,全容器共享一個實例。
(2)Prototype:每次調用新建一個Bean實例。
(3)Request:Web項目中,給每一個httprequest新建一個Bean實例。
(4)Session:Web項目中,給每一個httpsession新建一個Bean實例。
(5)GlobalSession:這個只在portal應用中有用,給每一個globalhttpsession新建一個Bean實例。
Spring事務傳播行為
所謂事務的傳播行為是指,如果在開始當前事務之前,一個事務上下文已經存在,此時有若干選項可以指定一個事務性方法的執行行為。在TransactionDefinition定義中包括了如下幾個表示傳播行為的常量:
TransactionDefinition.PROPAGATION_REQUIRED:如果當前存在事務,則加入該事務;如果當前沒有事務,則創建一個新的事務。這是默認值。
TransactionDefinition.PROPAGATION_REQUIRES_NEW:創建一個新的事務,如果當前存在事務,則把當前事務掛起。
TransactionDefinition.PROPAGATION_SUPPORTS:如果當前存在事務,則加入該事務;如果當前沒有事務,則以非事務的方式繼續運行。
TransactionDefinition.PROPAGATION_NOT_SUPPORTED:以非事務方式運行,如果當前存在事務,則把當前事務掛起。
TransactionDefinition.PROPAGATION_NEVER:以非事務方式運行,如果當前存在事務,則拋出異常。
TransactionDefinition.PROPAGATION_MANDATORY:如果當前存在事務,則加入該事務;如果當前沒有事務,則拋出異常。
TransactionDefinition.PROPAGATION_NESTED:如果當前存在事務,則創建一個事務作為當前事務的嵌套事務來運行;如果當前沒有事務,則該取值等價于TransactionDefinition.PROPAGATION_REQUIRED。
Spring的聲明式事務管理力度是什么級別?
Struts2是類級別的,Spring是方法級別的spring事務可以分為編程式事務和聲明式事務
springMVC與struts2的區別:
1、Struts2是類級別的攔截,一個類對應一個request上下文,SpringMVC是方法級別的攔截
2、SpringMVC的方法之間基本上獨立的,獨享requestresponse數據
3、由于Struts2需要針對每個request進行封裝,把request,session等servlet生命周期的變量封裝成一個一個
Map,供給每個Action使用,并保證線程安全,所以在原則上,是比較耗費內存的
4、攔截器實現機制上,Struts2有以自己的interceptor機制,SpringMVC用的是獨立的AOP方式
5、SpringMVC的入口是servlet,而Struts2是filter
6、SpringMVC集成了Ajax
7、SpringMVC驗證支持JSR303,處理起來相對更加靈活方便,而Struts2驗證比較繁瑣,感覺太煩亂
8、SpringMVC和Spring是無縫的。從這個項目的管理和安全上也比Struts2高
9、Struts2更加符合OOP的編程思想,SpringMVC就比較謹慎,在servlet上擴展
10、SpringMVC開發效率和性能高于Struts2
11、SpringMVC可以認為已經100%零配置
Spring框架中的核心思想包括什么?
主要思想是IOC控制反轉,DI依賴注入,AOP面向切面
ArrayList和LinkedList的大致區別如下:
1.ArrayList是實現了基于動態數組的數據結構,LinkedList基于鏈表的數據結構。
2.對于隨機訪問get和set,ArrayList覺得優于LinkedList,因為LinkedList要移動指針。
3.對于新增和刪除操作add和remove,LinedList比較占優勢,因為ArrayList要移動數據。
ArrayList,Vector主要區別為以下幾點:
(1):Vector是線程安全的,源碼中有很多的synchronized可以看出,而ArrayList不是。導致Vector效率無法和ArrayList相比;
(2):ArrayList和Vector都采用線性連續存儲空間,當存儲空間不足的時候,ArrayList默認增加為原來的50%,Vector默認增加為原來的一倍;
HashSet與HashMap的區別:
HashMapHashSet實現了Map接口實現Set接口存儲鍵值對僅存儲對象調用put()向map中添加元素調用add()方法向Set中添加元素HashMap使用鍵(Key)計算HashcodeHashSet使用成員對象來計算hashcode值,
對于兩個對象來說hashcode可能相同,
所以equals()方法用來判斷對象的相等性,
如果兩個對象不同的話,那么返回false
HashMap相對于HashSet較快,因為它是使用唯一的鍵獲取對象HashSet較HashMap來說比較慢
以上就是動力節點Java培訓機構小編介紹的“多家公司常問Java的基礎知識面試題”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習