解決:刪除system32下的3個(gè)java*.exe文件
一、DIM
例子:actionName!methodName.action
動(dòng)態(tài)方法調(diào)用(Dynamix Method Invocation,DMI)是在action的名字中使用感嘆號(hào)來表示要調(diào)用的方法名
DMI可能會(huì)帶來安全隱患
和普通方法的區(qū)別:
如果同一個(gè)action的不同方法使用的是相同的配置(同樣的攔截器引用,同樣的result映射),可以使用DMI,相反用普通方法
Integer是int的封裝對(duì)象,兩個(gè)對(duì)象==比較的是棧的值
Integer a = new Integer(1);
Integer b = new Integer(1);
a與b存的是Integer的堆中的地址,而不是值
a、b指向堆中的地址顯然不同所以 a==b 為false
int c = 1; int為值類型,引用類型Integer與值類型int比較顯然比較的是值
因?yàn)閕nt在堆中是不開辟內(nèi)存的,他在棧中的值則為他本身的值
所以a==c比較的是他們各自的value, a==c為true
Integer e=1; 這個(gè)比較特殊,直接賦值 它有獨(dú)立的內(nèi)存,每次賦值時(shí)將檢查內(nèi)存中是否有值跟他匹配的,若有則把此內(nèi)存地址付給e,若沒有,開辟新的內(nèi)存
你可以嘗試下面的例子:
Integer t = 1;
Integer t1 = 1;
t==t1 為true,如上所說,此時(shí)t與t1指向的是同一塊內(nèi)存
new 一定是開辟新的內(nèi)存,直接賦值則不一定開辟新的內(nèi)存
因?yàn)閍的引用指向堆,而e指向?qū)iT存放他的內(nèi)存,所以他們的內(nèi)存地址不一樣
所以a==e為false
c==e等同于 a==c,一個(gè)引用類型一個(gè)值類型