1. 程式人生 > >京東java面試題目

京東java面試題目

1、說一下java類集
2、字串哈西相等,equals相等嗎?反過來呢?
3、Spring的工作原理,控制控制反轉是怎麼實現的,自己寫過濾器過濾編碼怎麼實現
4、框架的原始碼有沒有看過
5、動態代理是怎麼實現的
6、action是單例項還是多例項
1) Struts2 會對每一個請求,產生一個Action的例項來處理.
2) Spring的Ioc容器管理的bean預設是單例項的.
Struts2與Spring整合後, 由spring來管理Struts2的Action,  bean預設是單例項有情況下,會有如下問題:


1) Action是單例,其中的FieldError,actionerror中的錯誤資訊 會累加, 即使再次輸入了正確的資訊,也過不了驗證.


2) Struts2的Action是有狀態的,他有自己的成員屬性, 所以在多執行緒下,會有問題.
如何解決?
方案一: 就是不用單例, spring中bean的作用域設為prototype,每個請求對應一個例項.


方案二: spring中bean的作用域設為session ,每個session對應一個例項,解決了多執行緒問題.(如何設定作用域請看: 4 spring中bean的作用域 )


再寫一個攔截器, 清空 FieldError與actionerror


7、怎麼配置bean
8、修改單例項多例項
9、java的設計模式
10、事務的控制
11、贓讀
髒讀又稱無效資料的讀出,是指在資料庫訪問中,事務T1將某一值修改,然後事務T2讀取該值,此後T1因為某種原因撤銷對該值的修改,這就導致了T2所讀取到的資料是無效的。
髒讀就是指當一個事務正在訪問資料,並且對資料進行了修改,而這種修改還沒有提交到資料庫中,這時,另外一個事務也訪問這個資料,然後使用了這個資料。因為這個資料是還沒有提交的資料,那麼另外一個事務讀到的這個資料是髒資料,依據髒資料所做的操作可能是不正確的。
12、事務的傳播屬性
REQUIRED:業務方法需要在一個事務中執行。如果方法執行時,已經處在一個事務中,那麼加入到該事務,否則為自己建立一個新的事務。(預設是這種事務行為)
NOT_SUPPORTED:宣告方法不需要事務。如果方法沒有關聯到一個事務,容器不會為它開啟事務。如果方法在一個事務中(另一個bean)被呼叫,該事務會被掛起,在方法呼叫結束後,原先的事務便會恢復執行。
REQUIRESNEW:屬性表明不管是否存在事務,業務方法總會為自己發起一個新的事務。如果方法已經執行在一個事務中,則原有事務會被掛起,新的事務會被建立,直到方法執行結束,新事務才算結束,原先的事務才會恢復執行。
MANDATORY:該屬性指定業務方法只能在一個已經存在的事務中執行,業務方法不能發起自己的事務。如果業務方法在沒有事務的環境下呼叫,容器就會丟擲例外。


SUPPORTS:這一事務屬性表明,如果業務方法在某個事務範圍內被呼叫,則方法成為該事務的一部分。如果業務方法在事務範圍外被呼叫,則方法在沒有事務的環境下執行。
Never:指定業務方法絕對不能在事務範圍內執行。如果業務方法在某個事務中執行,容器會丟擲例外,只有業務方法沒有關聯到任何事務,才能正常執行。
NESTED:如果一個活動的事務存在,則執行在一個巢狀的事務中. 如果沒有活動事務, 則按REQUIRED屬性執行.它使用了一個單獨的事務, 這個事務擁有多個可以回滾的儲存點。內部事務的回滾不會對外部事務造成影響。它只對DataSourceTransactionManager事務管理器起效
 
資料庫系統提供了四種事務隔離級
(兩個或者多外併發事務當中)
髒讀:一個事務讀取到另一事務未提交的更新新據。
不可重複讀:在同一事務中,多次讀取同一資料返回的結果有所不同。換句話說就是,後續讀取可以讀到另一事務已提交的更新資料。相反,“可重複讀”在同一事務中多次讀取資料時,能夠保證所讀資料一樣,也就是,後續讀取不能讀到另一事務已提交的更新資料。
幻讀:一個事務讀取到另一事務已提交的insert資料
13、購物車是怎麼實現的
14、GMS
15、統計一天的訂單量
16、IN HAVING  exsit
17、有沒有用過定時任務
18、JVM的記憶體管理,
19、堆記憶體、棧記憶體溢位
20、說一下快取
21、統計所有重名使用者
select name,count(*) from tab group by name having count(*)>1;








1.如何呼叫別人寫的介面?自己寫的介面,如何讓別人呼叫
2.中間間
3.List、set、Map的底層實現原理


京東面試題
1.簡單的懶漢式在多執行緒環境下不是執行緒安全的。有人提出在getInstance()方法上同步鎖,但是鎖住一整個方法可能粒度過大,不利於效率。
單例模式的餓漢式,在定義自身型別的成員變數時就將其例項化,使得在Singleton單例類被系統(姑且這麼說)載入時就已經被例項化出一個單例物件,從而一勞永逸地避免了執行緒安全的問題。