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