1炫欺、在數(shù)據(jù)流圖中懊纳,用標(biāo)有名字的箭頭表示數(shù)據(jù)流揉抵,即眼箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名嗤疯。在程序流程圖中冤今,用標(biāo)有名字的箭頭表示控制流
2、結(jié)構(gòu)化程序設(shè)計(jì)的思想(基本原則)包括:自頂向下茂缚、逐步求精戏罢、模塊化屋谭、限制使用goto語(yǔ)句
3、軟件設(shè)計(jì)中模塊劃分應(yīng)遵循的原則是高內(nèi)聚低耦合龟糕、模塊大小規(guī)模適當(dāng)桐磁、模塊的依賴(lài)關(guān)系適當(dāng)?shù)取?br>
模塊的劃分應(yīng)遵循一定的要求,以保證模塊劃分合理讲岁,并進(jìn)一步保證以此為依據(jù)開(kāi)發(fā)出的軟件系統(tǒng)可靠性強(qiáng)我擂,易于理解和維護(hù)。模塊之間的耦合應(yīng)盡可能的低缓艳,模塊的內(nèi)聚度應(yīng)盡可能的高校摩。
(耦合性是模塊間互相連接的緊密程度的度量,而內(nèi)聚性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此杰結(jié)合的緊密程度)
4阶淘、在軟件開(kāi)發(fā)中:
需求分析階段產(chǎn)生的主要文檔是軟件需求規(guī)格說(shuō)明書(shū)
可行性分析階段產(chǎn)生的主要文檔是可行性分析報(bào)告
總體設(shè)計(jì)階段產(chǎn)生的主要文檔是概要設(shè)計(jì)說(shuō)明書(shū)
概要設(shè)計(jì)階段編寫(xiě)的主要文檔是集成測(cè)試計(jì)劃
5衙吩、算法的有窮性是指算法程序的運(yùn)行時(shí)間是有限的
算法的空間復(fù)雜度指算法在執(zhí)行過(guò)程中所需要的計(jì)算機(jī)存儲(chǔ)空間。
6舶治、對(duì)長(zhǎng)度為n的線(xiàn)性表排序分井,在最壞情況下,冒泡排序霉猛、快速排序和直接插入排序的比較次數(shù)都是n(n-1)/2尺锚,堆排序算法的計(jì)較次數(shù)是O(nlog2(n))
7、數(shù)據(jù)庫(kù)設(shè)計(jì)的四個(gè)階段:
需求分析階段:
概念設(shè)計(jì)階段:
邏輯設(shè)計(jì)階段:E-R圖轉(zhuǎn)化成關(guān)系數(shù)據(jù)模型(把圖行分析出來(lái)的聯(lián)系反映到數(shù)據(jù)庫(kù)中惜浅,即設(shè)計(jì)出表)(實(shí)體和聯(lián)系都可以表示成關(guān)系)
物理設(shè)計(jì)階段:
補(bǔ)充:在E-R圖中實(shí)體集用矩形表示瘫辩,屬性用橢圓表示,聯(lián)系用菱形表示
8坛悉、Java的三種注釋方法:
//注釋的內(nèi)容:?jiǎn)涡凶⑨?br> /....../:多行注釋
/*....../:這種方式和第二種方式相似伐厌。這種格式是為了便于javadoc程序自動(dòng)生成文檔。
9裸影、Java中:extends 繼承類(lèi)挣轨,implements 實(shí)現(xiàn)接口
extends是繼承父類(lèi),只要那個(gè)類(lèi)不是聲明為final或者那個(gè)類(lèi)定義為abstract的就能繼承轩猩,
Java中不支持多重繼承卷扮,但是可以用接口來(lái)實(shí)現(xiàn),這樣就要用到implements均践,
繼承只能繼承一個(gè)類(lèi)晤锹,但implements可以實(shí)現(xiàn)多個(gè)接口,用逗號(hào)分開(kāi)就行了 ,比如 class A extends B implements C,D,E
10彤委、在Java的異常處理中鞭铆,無(wú)論是否發(fā)生異常,其后的代碼塊都會(huì)被執(zhí)行的關(guān)鍵字是finally
11焦影、RandomAccessFile類(lèi)同時(shí)實(shí)現(xiàn)了DataInput和DataOutput接口
12车遂、 派生出大多數(shù)Swing組件的類(lèi)是Container
13封断、棧(先進(jìn)后出的線(xiàn)性表)按照先進(jìn)后出的原則組織數(shù)據(jù),所以入棧最早的最后出棧艰额。數(shù)據(jù)的插入和刪除都是在棧頂進(jìn)行操作
棧支持子程序調(diào)用澄港。棧是一種只能在一端進(jìn)行插入或刪除的線(xiàn)性表,在主程序調(diào)用子函數(shù)時(shí)要首先保存主程序當(dāng)前的狀態(tài)柄沮,然后轉(zhuǎn)去執(zhí)行子程序回梧,最終把子程序的執(zhí)行結(jié)果返回到主程序中調(diào)用子程序的位置,繼續(xù)向下執(zhí)行祖搓,這種調(diào)用符合棧的特點(diǎn)
14狱意、循環(huán)隊(duì)列是線(xiàn)性結(jié)構(gòu),有隊(duì)頭和隊(duì)尾兩個(gè)指針拯欧;
在循環(huán)隊(duì)列中需要隊(duì)頭指針和隊(duì)尾兩個(gè)指針來(lái)共同反映隊(duì)列中元素的動(dòng)態(tài)變化情況详囤,即由隊(duì)頭指針和隊(duì)尾指針共同決定
循環(huán)隊(duì)列是線(xiàn)性結(jié)構(gòu)的線(xiàn)性表
循環(huán)隊(duì)列的隊(duì)頭指針與隊(duì)尾指針都不是固定的,隨著入隊(duì)與出隊(duì)操作要進(jìn)行變化镐作。因?yàn)槭茄h(huán)利用的隊(duì)列結(jié)構(gòu)藏姐,所以隊(duì)頭指針有時(shí)可能大于隊(duì)尾指針,有時(shí)也可能小于隊(duì)尾指針
隊(duì)列是先進(jìn)先出的線(xiàn)性表
補(bǔ)充:帶鏈隊(duì)列该贾、帶鏈棧是線(xiàn)性結(jié)構(gòu)羔杨。
樹(shù)是簡(jiǎn)單的非線(xiàn)性結(jié)構(gòu),所以二叉樹(shù)作為書(shū)的一種也是一種非線(xiàn)性結(jié)構(gòu)
15杨蛋、當(dāng)有序線(xiàn)性表為順序存儲(chǔ)時(shí)才能用二分法查找兜材。可以證明的是對(duì)于長(zhǎng)度為n的有序線(xiàn)性表逞力,在最壞情況下曙寡,二分法查找只需要比較log2(n)次,而順序查找需要比較n次
16寇荧、鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)既可以針對(duì)線(xiàn)性結(jié)構(gòu)也可以針對(duì)非線(xiàn)性結(jié)構(gòu)
順序存儲(chǔ)結(jié)構(gòu)只針對(duì)線(xiàn)性結(jié)構(gòu)
順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)一定是連續(xù)的举庶,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)不一定是連續(xù)的
鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中的每個(gè)結(jié)點(diǎn)都由數(shù)據(jù)域與指針域兩部分組成,增加了存儲(chǔ)空間揩抡,因此順序存儲(chǔ)結(jié)構(gòu)比鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)節(jié)省存儲(chǔ)空間
17户侥、幾種圖介紹:
N-S圖:也被稱(chēng)為盒圖或NS圖(Nassi Shneiderman圖),是結(jié)構(gòu)化編程中的可視化建模捅膘。用方框圖來(lái)代替?zhèn)鹘y(tǒng)的程序流程圖
特點(diǎn):
1)形象直觀添祸,功能域明確滚粟,具有良好的可見(jiàn)度寻仗;
2)很容易確定局部和全局?jǐn)?shù)據(jù)的作用域;
3)不可能任意轉(zhuǎn)移控制凡壤;
4)很容易表示嵌套關(guān)系及模塊的層次關(guān)系署尤;
5)復(fù)雜度接近代碼本身耙替,修改需要重畫(huà)整個(gè)圖;
6)它強(qiáng)制設(shè)計(jì)人員按SP方法進(jìn)行思考并描述他的設(shè)計(jì)方案曹体,因?yàn)槌吮硎編追N標(biāo)準(zhǔn)結(jié)構(gòu)的符號(hào)之處俗扇,它不再提供其他描述手段,這就有效地保證了設(shè)計(jì)的質(zhì)量箕别,從而也保證了程序的質(zhì)量铜幽。
PAD圖(問(wèn)題分析圖):是繼承程序流程圖和方框圖的又一種主要用于描述軟件詳細(xì)設(shè)計(jì)的圖形表示工具
E-R圖:也稱(chēng)實(shí)體-聯(lián)系圖(Entity Relationship Diagram),提供了表示實(shí)體類(lèi)型串稀、屬性和聯(lián)系的方法除抛,用來(lái)描述現(xiàn)實(shí)世界的概念模型
成分:矩形框,菱形框母截,橢圓形框到忽,連線(xiàn)
矩形框:表示實(shí)體,在框中記入實(shí)體名清寇。
菱形框:表示聯(lián)系喘漏,在框中記入聯(lián)系名。
橢圓形框:表示實(shí)體或聯(lián)系的屬性华烟,將屬性名記入框中翩迈。對(duì)于主屬性名,則在其名稱(chēng)下劃一下劃線(xiàn)垦江。
連線(xiàn):實(shí)體與屬性之間帽馋;實(shí)體與聯(lián)系之間;聯(lián)系與屬性之間用直線(xiàn)相連比吭,并在直線(xiàn)上標(biāo)注聯(lián)系的類(lèi)型绽族。(對(duì)于一對(duì)一聯(lián)系,要在兩個(gè)實(shí)體連線(xiàn)方向各寫(xiě)1衩藤; 對(duì)于一對(duì)多聯(lián)系吧慢,要在一的一方寫(xiě)1,多的一方寫(xiě)N赏表;對(duì)于多對(duì)多關(guān)系检诗,則要在兩個(gè)實(shí)體連線(xiàn)方向各寫(xiě)N,M。)
18瓢剿、在需求分析階段可以使用的工具有數(shù)據(jù)流圖DFD圖逢慌,數(shù)據(jù)字典DD,判定樹(shù)與判定表
19、在面向?qū)ο蠓椒ㄖ屑淇瘢瑢?duì)象有如下一些基本特點(diǎn):表示唯一性攻泼、分類(lèi)性、多態(tài)性、封裝性忙菠、模塊獨(dú)立性好
20何鸡、在數(shù)據(jù)管理技術(shù)發(fā)展的三個(gè)階段(人工管理階段->文件系統(tǒng)階段->數(shù)據(jù)庫(kù)系統(tǒng)階段)中,數(shù)據(jù)共享最好的是數(shù)據(jù)庫(kù)系統(tǒng)階段
數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)的結(jié)構(gòu)牛欢,它是一種系統(tǒng)軟件峻村,負(fù)責(zé)數(shù)據(jù)庫(kù)中的數(shù)據(jù)組織畴蹭、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等馁启,是一種在操作系統(tǒng)支持下的系統(tǒng)軟件
21绕辖、與其他面向?qū)ο笳Z(yǔ)言相比秕磷,Java語(yǔ)言突出的特點(diǎn)是解釋型曲秉,與平臺(tái)無(wú)關(guān)
22、運(yùn)算符:
+:加
-:減
*:乘
/:除熊赖,取結(jié)果
%:取余
a++:先輸出a的原值来屠,后做+1運(yùn)算
++a:先做+1運(yùn)算,再輸出計(jì)算之后的值
a--:先輸出a的原值震鹉,后做-1運(yùn)算
--a:先做-1運(yùn)算俱笛,再輸出計(jì)算之后的值
&&:邏輯與(都對(duì)則對(duì),一個(gè)錯(cuò)兩個(gè)都錯(cuò):true&&true==true,true&&false==false,false&&false==false)
||:邏輯或(一個(gè)對(duì)兩個(gè)都對(duì):true||false==true,true||true==true,false||false==false)
4骸:邏輯非(!true==false)
&:位與(和&&一樣的判斷true和false迎膜,當(dāng)&兩邊不是判斷條件而是數(shù)字時(shí),結(jié)果為&右邊的那個(gè)數(shù)浆兰,例如:8&2==2磕仅,8&8==8)
|:位或(和&||一樣的判斷true和false,當(dāng)|兩邊不是判斷條件而是數(shù)字時(shí)簸呈,結(jié)果為|右邊的那個(gè)數(shù))
~:取反(應(yīng)用于數(shù)字的取反榕订,~a=-(a+1)。~123=-124)
^:位異或(應(yīng)用與true和false以及數(shù)字.當(dāng)a蜕便,b是兩個(gè)數(shù)時(shí)劫恒,如果a>b,a^b==a+b;如果a<=b,a^b==b-a),判斷ture和false的情況如下:
true^true==false true^false==true false^true==true false^false==false
<<:左移位(a<<b,將a轉(zhuǎn)化成二進(jìn)制數(shù)之后轿腺,二進(jìn)制數(shù)的小數(shù)點(diǎn)右移b個(gè)單位两嘴,再轉(zhuǎn)化成十進(jìn)制。即a<<b==a乘以2的b次方)
>>:右移位(a>>b,將a轉(zhuǎn)化成二進(jìn)制數(shù)之后族壳,二進(jìn)制數(shù)的小數(shù)點(diǎn)左移b個(gè)單位憔辫,再轉(zhuǎn)化成十進(jìn)制。即a>>b==a除以2的b次方)
>>>:無(wú)符號(hào)右移位(a>>>b,
當(dāng)a>=0時(shí)仿荆,將a轉(zhuǎn)化成二進(jìn)制數(shù)之后贰您,二進(jìn)制數(shù)的小數(shù)點(diǎn)左移b個(gè)單位喧务,再轉(zhuǎn)化成十進(jìn)制。即a>>b==a除以2的b次方枉圃。
當(dāng)a<0時(shí),將轉(zhuǎn)化成二進(jìn)制數(shù)之后庐冯,取反碼的補(bǔ)碼孽亲,補(bǔ)碼的小數(shù)點(diǎn)左移b個(gè)單位,再轉(zhuǎn)化成十進(jìn)制展父。)
+=:相加結(jié)果賦予左側(cè)(即a+=b等價(jià)于a=a+b)
-=:相減結(jié)果賦予左側(cè)(即a-=b等價(jià)于a=a-b)
*=:相乘結(jié)果賦予左側(cè)(即a*=b等價(jià)于a=a*b)
/=:相除結(jié)果賦予左側(cè)(即a/=b等價(jià)于a=a/b)
%=:取余結(jié)果賦予左側(cè)(即a%=b等價(jià)于a=a%b)
&=:與結(jié)果賦予左側(cè)(即a&=b等價(jià)于a=a&b)
|=:或結(jié)果賦予左側(cè)(即a|=b等價(jià)于a=a|b)
^=:異或結(jié)果賦予左側(cè)(即a^=b等價(jià)于a=a^b)
<<=:左移結(jié)果賦予左側(cè)(即a<<=b等價(jià)于a=a<<b)
>>=:右移結(jié)果賦予左側(cè)(即a>>=b等價(jià)于a=a>>b)
>>>=:無(wú)符號(hào)右移結(jié)果賦予左側(cè)(即a>>>=b等價(jià)于a=a>>>b)
三元運(yùn)算符:條件表達(dá)式 ? 值1:值2(如果條件式的值為true,則整個(gè)表達(dá)式取"值1"返劲,負(fù)責(zé)取"值2")
運(yùn)算符優(yōu)先等級(jí):
1、括號(hào):()
2栖茉、正篮绿、負(fù)號(hào):+、-
3吕漂、 一元運(yùn)算符:++亲配、--、惶凝!
4吼虎、 乘、除:*苍鲜、/思灰、%
5、 加混滔、減:+洒疚、-
6、 移位運(yùn)算:>>坯屿、<<油湖、>>>
7、 比較大辛祯恕:<肺魁、>、<=隔节、>=
8鹅经、比較是否相等:==、!=
9怎诫、位與運(yùn)算:&
10瘾晃、位異或運(yùn)算:^
11、位或運(yùn)算:|
12幻妓、邏輯非運(yùn)算:&&
13蹦误、邏輯或運(yùn)算:||
14劫拢、三元運(yùn)算符:? :
15、賦值運(yùn)算符:=
23强胰、switch:
能用于switch判斷的類(lèi)型有:byte舱沧、short、int偶洋、char(JDK1.6)熟吏,還有枚舉類(lèi)型,但是在JDK1.7后添加了對(duì)String類(lèi)型的判斷
case語(yǔ)句中少寫(xiě)了break玄窝,編譯不會(huì)報(bào)錯(cuò)牵寺,但是會(huì)一直執(zhí)行之后所有case條件下的語(yǔ)句而不再判斷,直到default語(yǔ)句
case語(yǔ)句中的值必須是常量
若果沒(méi)有符合條件的case就執(zhí)行default下的代碼塊恩脂,default并不是必須的帽氓,也可以不寫(xiě)
以下代碼輸出為:A
public static void main(String[] args) {
String a = "A";
switch (a){
case "B":
System.out.print("B");
break;
case "A":
System.out.print("A");
break;
case "C":
System.out.print("C");
break;
}
}
以下代碼輸出為:AC
public static void main(String[] args) {
String a = "A";
switch (a){
case "B":
System.out.print("B");
case "A":
System.out.print("A");
case "C":
System.out.print("C");
break;
}
}
24、Java語(yǔ)言的四大特性:抽象俩块、封裝黎休、多態(tài)和繼承
25、方法重載(method overloading):[摘錄來(lái)源](https://blog.csdn.net/xkfanhua/article/details/80561673)
補(bǔ)充:重載屬于Java多態(tài)機(jī)制
在Java中玉凯,同一個(gè)類(lèi)中的多個(gè)方法可以有相同的方法名稱(chēng)奋渔,但是有不同的參數(shù)列表,這就稱(chēng)為方法重載壮啊。
參數(shù)列表又叫參數(shù)簽名嫉鲸,包括參數(shù)的類(lèi)型、參數(shù)的個(gè)數(shù)歹啼、參數(shù)的順序玄渗,只要有一個(gè)不同就叫做參數(shù)列表不同。
重載時(shí)面向?qū)ο蟮囊粋€(gè)基本特性狸眼。
以下為代碼例子:
public class Demo1 {
//一個(gè)普通的方法藤树,不帶參數(shù),無(wú)返回值
public void add(){
//method body
}
//重載上面的方法拓萌,并且?guī)Я艘粋€(gè)整型參數(shù)岁钓,無(wú)返回值
public void add(int a){
//method body
}
//重載上面的方法,并且?guī)Я藘蓚€(gè)整型參數(shù)微王,返回值為int型
public int add(int a,int b){
//method body
return 0;
}
}
通過(guò)上面的例子屡限,不難看出,重載就是在一個(gè)類(lèi)中炕倘,有相同的函數(shù)名稱(chēng)钧大,但形參不同的函。重載的結(jié)果罩旋,可以讓一個(gè)程序段盡量減少代碼和方法的種類(lèi)啊央。
說(shuō)明:
1眶诈、參數(shù)列表不同包括:個(gè)數(shù)不同、順序不同瓜饥、類(lèi)型不同
2逝撬、僅僅參數(shù)變量名稱(chēng)不同是不可以的
3、跟成員方法一樣乓土,構(gòu)造方法也可以重載
4宪潮、聲明為final的方法不能被重載
5、聲明為static的方法不能被重載帐我,但是能夠被再次聲明
方法重載的規(guī)則:
1、方法名稱(chēng)必須相同
2愧膀、參數(shù)列表必須不同
3拦键、方法的返回類(lèi)型可以相同亦可以不相同
4、僅僅返回類(lèi)型不同不足以稱(chēng)為方法的重載zhuo
方法重載的實(shí)現(xiàn):方法名稱(chēng)相同時(shí)檩淋,編譯器會(huì)根據(jù)調(diào)用方法的參數(shù)個(gè)數(shù)芬为、參數(shù)類(lèi)型等去逐個(gè)匹配,已選擇對(duì)應(yīng)的方法蟀悦,如果匹配失敗媚朦,則編譯器報(bào)錯(cuò),這叫做重載分辨
26日戈、equals方法:用于判斷兩個(gè)字符串是否完全相等(結(jié)果為Boolean類(lèi)型)
contact方法:用于字符串(String)的連接
replace()方法:通過(guò)用 newChar 字符替換字符串中出現(xiàn)的所有 oldChar 字符询张,并返回替換后的新字符串。
public String replace(char oldChar,char newChar)
例如浙炼,以下代碼結(jié)果為:China$$Dream
public static void main(String[] args) {
String s1="China";
String s2=s1.concat("Dream");
String s3=s2.replace("aD","a$$D");
System.out.println(s3);
}
27份氧、Java各種常見(jiàn)異常:https://blog.csdn.net/yangzhengjianglove/article/details/81233784
補(bǔ)充:
異常發(fā)生時(shí),輸出堆棧使用的跟蹤方法是printStackTrace()
try-catch語(yǔ)句中:catch中的對(duì)象類(lèi)型是try中可能拋出的異常類(lèi)或其父類(lèi)
28弯屈、HashMap:使用<關(guān)鍵字蜗帜,值>的形式保存數(shù)據(jù),允許將null用作關(guān)鍵字资厉,也允許將null用作值厅缺。但是不能夠保證其中元素的順序。
TreeMap:使用方法與HashMap使用方法相同宴偿,但是會(huì)對(duì)其中的元素自動(dòng)排序
29湘捎、字節(jié)流、字符流
必看文章:[https://www.cnblogs.com/progor/p/9357676.html]
(https://www.cnblogs.com/progor/p/9357676.html)
補(bǔ)充:OutputStream中的flush()方法的功能是:把緩沖的全部字節(jié)寫(xiě)入輸出流
PipedInputStream類(lèi)是實(shí)現(xiàn)線(xiàn)程之間通信的類(lèi)
InputStream類(lèi)中available()方法的功能是返回輸入流中可讀字節(jié)數(shù)
Reader是輸入流窄刘,Writer是輸出流
補(bǔ)充:
代碼實(shí)例1:運(yùn)行結(jié)果為:生成文件abc.txt消痛,且該文件內(nèi)容為test
public class test9 {
public static void main(String[] args) {
try {
PrintWriter out = new PrintWriter(new FileOutputStream("d:\\abc.txt"));
String content ="test";
out.print(content);
out.close();
} catch (FileNotFoundException e) {
System.out.println("File Not Found!");
}
}
}
注意點(diǎn):此題的陷阱在于catch中的錯(cuò)誤提示,本題的代碼作用是在d盤(pán)中生成新的文件abc.txt都哭,不需要判斷d盤(pán)中是否有該文件
30秩伞、JOptionPane:
基本結(jié)構(gòu)為:JOptionPane.showMessageDialog(null, “消息對(duì)話(huà)框”,”提示框名字”,JOptionPane.INFORMATION_MESSAGE);
四種消息提示框方法:
showConfirmDialog():確認(rèn)對(duì)話(huà)框
showInputDialog():輸入對(duì)話(huà)框
showMessageDialog():消息對(duì)話(huà)框
showOptionDialog():選擇對(duì)話(huà)框
主要有五種消息類(lèi)型逞带,類(lèi)型不同,圖標(biāo)不同:
ERROR_MESSAGE
INFORMATION_MESSAGE
WARNING_MESSAGE
QUESTION_MESSAGE
PLAIN_MESSAGE
轉(zhuǎn)載:https://blog.csdn.net/tjk123456/article/details/77868034
31纱新、Java線(xiàn)程構(gòu)成:代碼展氓、虛擬的CPU、代碼所操縱的數(shù)據(jù)
補(bǔ)充:線(xiàn)程是Java程序中的單個(gè)執(zhí)行流
為了使線(xiàn)程之間同步脸爱,通常使用的方法是wait()和notify()
代碼實(shí)例(線(xiàn)程啟動(dòng)方法):
public class ThreadTest extends Thread{
public static void main(String[] args) {
ThreadTest b = new ThreadTest();
b.start();
}
public void run(){
System.out.println("insist on");
}
}
new Runnable() {
@Override
public void run() {
}
};
32遇汞、對(duì)象鎖:
當(dāng)synchronized(){}語(yǔ)句塊執(zhí)行完畢后,對(duì)象鎖將自動(dòng)釋放簿废;
當(dāng)在當(dāng)synchronized(){}語(yǔ)句塊中出現(xiàn)異常時(shí)空入,對(duì)象鎖將自動(dòng)釋放;
線(xiàn)程A在當(dāng)synchronized(){}塊中調(diào)用x.wait()族檬,則A將釋放對(duì)象x的鎖
在對(duì)共享對(duì)象加鎖以實(shí)現(xiàn)并發(fā)控制時(shí)歪赢,使用的關(guān)鍵字時(shí)synchronized
33、Applet:可由瀏覽器自動(dòng)調(diào)用的方法是:init()方法单料,start()方法埋凯,paint()方法
可能被多次調(diào)用的是:start()和stop()
init()方法用來(lái)完成主類(lèi)實(shí)例的初始化工作,
start()方法用來(lái)啟動(dòng)瀏覽器運(yùn)行Applet的主線(xiàn)程
paint()方法的主要作用是在Applet的界面中顯示文字扫尖,圖形和其他界面表示元素
屬于Applet生命周期的方法是:start(),destroy()
參考文章:https://www.runoob.com/java/java-applet-basics.html
34白对、笛卡爾積:簡(jiǎn)單的來(lái)說(shuō)就是兩個(gè)集合相乘的結(jié)果,比如集合A{a1,a2,a3} 集合B{b1,b2}
他們的笛卡爾積是 A*
B ={(a1,b1),(a1,b2),(a2,b1),(a2,b2),(a3,b1),(a3,b2)}换怖,即任意兩個(gè)元素結(jié)合在一起
自然連接:自然連接是一種特殊的等值連接甩恼,他要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉
自然連接算法易懂講解:https://zhidao.baidu.com/question/498844735021942444.html
自然連接算法詳細(xì)講解:https://wenku.baidu.com/view/b4e78276910ef12d2af9e7eb.html
投影運(yùn)算:對(duì)于關(guān)系內(nèi)的域指定可引入新的運(yùn)算(在原有關(guān)系的內(nèi)部進(jìn)行沉颂,即關(guān)系R—>關(guān)系S)
35媳拴、實(shí)例方法(對(duì)象方法)與類(lèi)方法:
二者的區(qū)別:
實(shí)例方法的方法類(lèi)型前沒(méi)有static,類(lèi)方法的方法類(lèi)型前有static
類(lèi)方法可以通過(guò)類(lèi)名調(diào)用兆览,調(diào)用格式為類(lèi)名+方法名屈溉,而實(shí)例方法不能通過(guò)類(lèi)名調(diào)用,只能通過(guò)類(lèi)創(chuàng)建對(duì)象抬探,然后通過(guò)對(duì)象調(diào)用子巾,即實(shí)例方法只能通過(guò)對(duì)象來(lái)調(diào)用
類(lèi)方法不能操作實(shí)例變量。因?yàn)樵陬?lèi)創(chuàng)建對(duì)象前實(shí)例成員變量還沒(méi)有分配內(nèi)存小压,與此同時(shí)线梗,類(lèi)的實(shí)例方法也不會(huì)分配入口地址。因此怠益,只有該類(lèi)創(chuàng)建對(duì)象后仪搔,類(lèi)的實(shí)例方法才會(huì)分配入口地址
類(lèi)方法是屬于整個(gè)類(lèi)的,而實(shí)例方法是屬于類(lèi)的某個(gè)對(duì)象的
在類(lèi)方法中調(diào)用本類(lèi)的類(lèi)方法可直接調(diào)用
類(lèi)方法的限制:類(lèi)方法中不能引用對(duì)象變量蜻牢;類(lèi)方法中不能調(diào)用類(lèi)的對(duì)象方法烤咧;在類(lèi)方法中不能使用super偏陪、this關(guān)鍵字;類(lèi)方法不能被覆蓋
實(shí)例方法(對(duì)象方法):對(duì)象方法中可以引用對(duì)象變量煮嫌,也可以引用類(lèi)變量笛谦;對(duì)象方法中可以調(diào)用類(lèi)方法;對(duì)象方法中可以使用super昌阿、this關(guān)鍵字
36饥脑、軟件測(cè)試的目的是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程(并不涉及改正錯(cuò)誤)
程序調(diào)試的基本步驟:錯(cuò)誤定位、修改設(shè)計(jì)和代碼懦冰,已排除錯(cuò)誤灶轰、進(jìn)行回歸測(cè)試、防止引進(jìn)新的錯(cuò)誤刷钢。
程序調(diào)試通常稱(chēng)為Debug笋颤,即排錯(cuò)。
軟件測(cè)試的基本準(zhǔn)測(cè):所有測(cè)試都應(yīng)追溯到需求闯捎、嚴(yán)格執(zhí)行測(cè)試計(jì)劃椰弊,排除測(cè)試的隨意性许溅、充分注意測(cè)試中的群集現(xiàn)象瓤鼻、程序員應(yīng)避免測(cè)試自己的程序、窮舉測(cè)試不可能贤重、妥善保存測(cè)試計(jì)劃等文件
37茬祷、Java基本數(shù)據(jù)類(lèi)型(String不屬于):boolean,char,float,byte,short,int,long,double
38、Java命名規(guī)范
1并蝗、項(xiàng)目名全部小寫(xiě)
2祭犯、包名全部小寫(xiě)
3、類(lèi)名首字母大寫(xiě)滚停,如果類(lèi)名由多個(gè)單詞組成沃粗,每個(gè)單詞的首字母都要大寫(xiě)
4、變量名键畴、方法名首字母小寫(xiě)最盅,如果名稱(chēng)由多個(gè)單詞組成,第一個(gè)單詞后的每個(gè)單詞的首字母都要大寫(xiě)
5起惕、常量名必須大寫(xiě)
6涡贱、所有命名規(guī)則必須遵循以下規(guī)則:
1)、名稱(chēng)只能由字母惹想、數(shù)字问词、下劃線(xiàn)、$符號(hào)組成
2)嘀粱、不能以數(shù)字開(kāi)頭
3)激挪、名稱(chēng)不能使用JAVA中的關(guān)鍵字辰狡。
4)、堅(jiān)決不允許出現(xiàn)中文及拼音命名灌灾。
39搓译、跳轉(zhuǎn)語(yǔ)句:
break:跳出全部循環(huán),在switch選擇結(jié)構(gòu)中也可以使用
continue:跳出本次循環(huán)锋喜,選擇結(jié)構(gòu)不認(rèn)同
goto:
static void Main(string[] args)
{
goto Mark;
Console.WriteLine("第一行");
Mark:
Console.WriteLine("第二行");
}
return:如果方法有返回值類(lèi)型return就返回值些己,在void中也可以使用return,這樣的話(huà),return后面的語(yǔ)句就不會(huì)執(zhí)行
throw:拋出異常嘿般,后面語(yǔ)句也不會(huì)執(zhí)行段标,跳轉(zhuǎn)到捕捉異常的地方(有try-catch的地方)
40、二叉樹(shù)的基本性質(zhì)3:在任意一顆二叉樹(shù)中炉奴,度為0的葉子節(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)多一個(gè)
41逼庞、數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中的核心問(wèn)題是數(shù)據(jù)庫(kù)的設(shè)計(jì)
42、Vector類(lèi)中瞻赶,在集合的最后增加一個(gè)元素的方法是addElement()
43赛糟、將內(nèi)存緩沖區(qū)內(nèi)容轉(zhuǎn)換成字符串的方法是toString(String charsetName)
44、將一個(gè)文件的內(nèi)容寫(xiě)到另一個(gè)文件
public class test5 {
public static String file ="d:\\book1.java";
public static void main(String[] args) throws Exception {
BufferedReader in = new BufferedReader(new FileReader("d:\\book1.txt"));
PrintWriter out = new PrintWriter(file);
String s =null;
while ((s=in.readLine())!=null){
out.write(s);
}
out.close();
in.close();
}
}
45砸逊、javax.swing.text包提供的功能是支持文檔的顯示和編輯
46璧南、鍵盤(pán)事件處理方法:keyPressed(keyEvent);keyRelased(keyEvent);keyTyped(keyEvent)
注意:keyDown(keyEvent)不屬于鍵盤(pán)監(jiān)聽(tīng)事件
47、param標(biāo)簽
語(yǔ)法格式:<param name="參數(shù)名稱(chēng)"/>或<param name ="名稱(chēng)">
標(biāo)簽屬性:name(定義參數(shù)的名稱(chēng)(用在腳本中),必須參數(shù))师逸,type(定義MIME類(lèi)型參數(shù)司倚,html5不支持),value(描述參數(shù)值),valuetype(規(guī)定值的MIME類(lèi)型篓像,值:ata动知、ref、object(html5不支持))
代碼實(shí)例:將參數(shù) "autoplay" 設(shè)置為"true"员辩,音頻會(huì)自動(dòng)播放
<object data="1.mp4">
<param name="autoplay" value="true">
</object>
48盒粮、web中通常使用的傳值方法:
1、request,response
request.getAttribute(參數(shù)名);
request.setAttribute(參數(shù)名,值)
2奠滑、session:同一用戶(hù)同一界面
HttpSession hs = request.getSession(true);
hs.setAttribute(參數(shù)名丹皱,值);
hs.getAttribute(參數(shù)名)
3、ServletContext:同一用戶(hù)不同界面
ServletContext sc = this.getServletContext();
sc.setAttribute(參數(shù)名,值);
sc.getAttribute(參數(shù)名);
49养叛、幾種類(lèi)及其修飾符的描述:
abstract類(lèi)只能用來(lái)派生子類(lèi)种呐,不能用來(lái)創(chuàng)建abstract類(lèi)的對(duì)象
abstract不能與final同時(shí)修飾一個(gè)類(lèi)
abstract方法必須在抽象類(lèi)中聲明,但abstract類(lèi)定義中可以沒(méi)有抽象方法
50弃甥、Java 中基本數(shù)據(jù)類(lèi)型不算對(duì)象爽室,但是每個(gè)基本數(shù)據(jù)類(lèi)型都有對(duì)應(yīng)的包裝類(lèi),比如int的包裝類(lèi)就是Integer,同樣的float->Float,short ->Short ,long-> Long,double-> Double,byte-> Byte,char-> Character,boolean->Boolean
例如:a和b都是整數(shù)類(lèi)型變量并且他們的值相等
a=Integer.parseInt("1024");
b=Integer.valueOf("1024").intValue;`
補(bǔ)充:基本數(shù)據(jù)類(lèi)型的字節(jié)及位數(shù):
byte:1阔墩,8
short:2嘿架,16
int:4,32
long: 8啸箫,64
float: 4耸彪,32
double:8,64
char:2忘苛,16
boolean:1蝉娜,8
51:String,StringBuffer,StringBuilder的用法及其區(qū)別
參考文章:https://blog.csdn.net/qq_37856300/article/details/84340288
補(bǔ)充:
代碼實(shí)例1:輸出結(jié)果為Hellothere
public class test8 {
public static void main(String[] args) {
StringBuffer s = new StringBuffer("Hello");
if ((s.length()>=5)&&(s.append("there").equals("False"))){
s.replace(0,6,"False");
}
System.out.println(s);
}
}
注意:append()方法已經(jīng)被調(diào)用
代碼實(shí)例2:輸出結(jié)果為HFalseHHH
public class test8 {
public static void main(String[] args) {
StringBuffer s = new StringBuffer("HelloHHHH");
s.replace(1,6,"False");
System.out.println(s);
}
}
注意點(diǎn):
replace()方法
1、代碼結(jié)構(gòu):replace(start,end,String);
2扎唾、注意點(diǎn):start為索引位置召川,例如replace(0,5,"a"),其是將索引位置為0到4,即[0,5)的元素置換為a
代碼實(shí)例3:輸出結(jié)果為s1.equals(s2)
public class test8 {
public static void main(String[] args) {
String s1 ="abc"+"def";
String s2 = new String(s1);
if (s1==s2){
System.out.println("s1==s2");
}
if (s1.equals(s2)){
System.out.println("s1.equals(s2)");
}
}
}
代碼實(shí)例4:輸出結(jié)果為aceg
public class test8 {
public static void main(String[] args) {
String s = "abcdefg";
for (int i=0;i<s.length();i+=2){
System.out.print(s.charAt(i));
}
}
}
52: