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