知识大全集
1. struts1的Action是線程不安全的,struts2卻是安全的
2.spring的主要作用在于使j2ee的開發變得簡單
3.ExtJs與jQuery優缺點
ext:
100%面向對象和組件化的思想,一致的語法,全局的命名空間
Ext簡化了很多工作,讓開發更簡潔,更方便,但也帶來了很多麻煩,給我們留下了更小的選擇空間,
缺點:
為重量級的框架(包含大量UI),體積大。較復雜。
jquery:
優點:
體積小
jQuery兼容性良好
局域網里面我們可以使用EXT,但是在互聯網上請優先jQuery
缺點:
由于設計思想是追求高效和簡潔,沒有面向對象的擴展。
4.?java支持的數據類型有五種
他們分別是:
byte、char、short、int、枚舉?
以上是JDK1.6以前的版本。JDK1.7時,又增加了String,所以相對于JDK1.7而言就是六種了
5.java實現同步的方法有2種:分別是synchronized,wait與notify
6.為何不能使用stop和suspend方法
反對使用stop(),是因為它不安全。它會解除由線程獲取的所有鎖定,當在一個線程對象上調用stop()方法時,這個線程對象所運行的線程就會立即停止,假如一個線程正在執行:synchronized void { x = 3; y = 4;} 由于方法是同步的,多個線程訪問時總能保證x,y被同時賦值,而如果一個線程正在執行到x = 3;時,被調用了?stop()方法,即使在同步塊中,它也干脆地stop了,這樣就產生了不完整的殘廢數據。而多線程編程中最最基礎的條件要保證數據的完整性,所以請忘記線程的stop方法,以后我們再也不要說“停止線程”了。而且如果對象處于一種不連貫狀態,那么其他線程能在那種狀態下檢查和修改它們。結果?很難檢查出真正的問題所在。
suspend()方法容易發生死鎖。調用suspend()的時候,目標線程會停下來,但卻仍然持有在這之前獲得的鎖定。此?時,其他任何線程都不能訪問鎖定的資源,除非被"掛起"的線程恢復運行。對任何線程來說,如果它們想恢復目標線程,同時又試圖使用任何一個鎖定的資源,就?會造成死鎖。所以不應該使用suspend(),而應在自己的Thread類中置入一個標志,指出線程應該活動還是掛起。若標志指出線程應該掛起,便用?wait()命其進入等待狀態。若標志指出線程應當恢復,則用一個notify()重新啟動線程
7.集合類的判斷相等
?List?集合: 被比較的對象要重寫equals()方法, 調用List中contains()方法,就是用equals()方法比較的.
????????????????? List?集合 (允許重復元素,允許空值)?
?HashSet集合(不允許重復元素,允許空值): 被比較的對象要重寫hashCode()方法和重寫equals()方法, 兩個都要.?
?TreeSet集合.(不允許重復元素):
??? 方法一:被比較的對象(如學生類)實現Comparable接口,重寫CompareTo()方法.--(不允許空值)
??? 方法二:TreeSet的構造方法,傳入Comparator接口的實現類,他是重寫了compare()方法.--(允許空值)?
?HashMap集合: 與HashSet情況一樣.?
?TreeMap集合: 與TreeSet情況一樣.??
? 順便說一下, 對List排序可用Collections類的sort()方法.要用到Comparable或Comparator接口.
8.list和set繼承自collection接口,map不是。
9.線程的基本狀態及狀態之間的關系
程的基本概念:線程指在程序執行過程中,能夠執行程序代碼的一個執行單位,每個程序至少都有一個線程,也就是程序本身。
Java中的線程有四種狀態分別是:運行、就緒、掛起、結束。
一個程序中可以有多條執行線索同時執行,一個線程就是程序中的一條執行線索,每個線程上都關聯有要執行的代碼,即可以有多段程序代碼同時運行,每個程序至少都有一個線程,即main方法執行的那個線程。如果只是一個cpu,它怎么能夠同時執行多段程序呢?這是從宏觀上來看的,cpu一會執行a線索,一會執行b線索,切換時間很快,給人的感覺是a,b在同時執行,好比大家在同一個辦公室上網,只有一條鏈接到外部網線,其實,這條網線一會為a傳數據,一會為b傳數據,由于切換時間很短暫,所以,大家感覺都在同時上網。
狀態:就緒,運行,synchronize阻塞,wait和sleep掛起,結束。wait必須在synchronized內部調用。
調用線程的start方法后線程進入就緒狀態,線程調度系統將就緒狀態的線程轉為運行狀態,遇到synchronized語句時,由運行狀態轉為阻塞,當synchronized獲得鎖后,由阻塞轉為運行,在這種情況可以調用wait方法轉為掛起狀態,當線程關聯的代碼執行完后,線程變為結束狀
10.abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized
都不可以,因為abstract申明的方法是要求子類去實現的,abstract只是告訴你有這樣一個接口,你要去實現,至于你的具體實現可以是native和synchronized,也可以不是,抽象方法是不關心這些事的,所以寫這兩個是沒有意義的。然后,static方法是不會被覆蓋的,而abstract方法正是要子類去覆蓋它,所以也是沒有意義的。所以,總的來說,就是java語法不允許你這樣做,事實上,也沒有意義這樣做。
?
?
轉載于:https://www.cnblogs.com/jianglong-liang/p/4340888.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
- 上一篇: supersocket中quicksta
- 下一篇: 爱回收jd图标