第一篇:【黑馬程序員】Java之debug總結(jié)三
【黑馬程序員】Java之debug總結(jié)三
之前寫了“Java之debug總結(jié)一”,“Java之debug總結(jié)二”共總結(jié)了5種debug方式,現(xiàn)在簡(jiǎn)紹第6種,不足之處,敬請(qǐng)指正:(源碼在文章末尾處)本文以chrome瀏覽器為例
六.前臺(tái)debug 主要:debug js代碼(1.jsp中嵌入的js代碼 2.js文件中的js代碼)第一步:首先創(chuàng)建一個(gè)web項(xiàng)目,需要有一個(gè)jsp頁(yè)面和js,如下圖:
第二步:在test.js,index.jsp中填充內(nèi)容,如圖示: index.jsp
黑馬程序員濟(jì)南中心 編著
test.js
第三步:把項(xiàng)目發(fā)布到tomcat服務(wù)器中,并啟動(dòng)tomcat服務(wù)器
第四步:在瀏覽器上訪問index.jsp,使用“F12”打開chrome開發(fā)者工具,如下圖:
黑馬程序員濟(jì)南中心 編著
選中“Source”,點(diǎn)擊,出現(xiàn)如下界面
黑馬程序員濟(jì)南中心 編著
點(diǎn)擊“[url=]encode測(cè)試[/url]”按鈕進(jìn)行測(cè)試
以上為外部js代碼測(cè)試,測(cè)試過程中可以修改js的內(nèi)容,“Ctrl+s”保存后,可以立馬生效,斷點(diǎn)會(huì)從第一行從新開始.黑馬程序員濟(jì)南中心 編著
內(nèi)部js測(cè)試步驟類似于上面的步驟,只是在選擇資源的時(shí)候不是選擇“test.js”,而是選擇“index”,選擇后頁(yè)面如下圖:
測(cè)試步驟和外部js一樣
比較外部js和內(nèi)部js的區(qū)別: 外部js,可以進(jìn)行動(dòng)態(tài)的修改, 修改之后立馬生效,并且可以立馬進(jìn)行測(cè)試.內(nèi)部js,不可以動(dòng)態(tài)修改,用起來(lái)有點(diǎn)不方便
以上以我用過的所有debug方式,希望對(duì)大家有所幫助
黑馬程序員濟(jì)南中心 編著
第二篇:【黑馬程序員】Java之debug總結(jié)二
【黑馬程序員濟(jì)南】Java之debug總結(jié)二
之前詳細(xì)描述了4種debug方式,現(xiàn)在簡(jiǎn)紹第5種,不足之處,敬請(qǐng)指正:(源碼在文章末尾處)五.maven項(xiàng)目debug
第一步:首先創(chuàng)建一個(gè)maven項(xiàng)目,如圖所示:
第二步:debug運(yùn)行前設(shè)置
黑馬程序員濟(jì)南中心 編著
執(zhí)行完上面的步驟,會(huì)出現(xiàn)如下彈出框
黑馬程序員濟(jì)南中心 編著
Source配置如下
黑馬程序員濟(jì)南中心 編著
黑馬程序員濟(jì)南中心 編著
黑馬程序員濟(jì)南中心 編著
第三步:Debug運(yùn)行,上面配置完成后,直接debug運(yùn)行即可,如下圖
第四步:打斷點(diǎn)測(cè)試結(jié)果
黑馬程序員濟(jì)南中心 編著
希望能對(duì)不會(huì)使用maven進(jìn)行debug的猿友們有所幫助,第六種方式我會(huì)盡快補(bǔ)上
maven-debug.zip
黑馬程序員濟(jì)南中心 編著
第三篇:【黑馬程序員】Java基礎(chǔ)總結(jié)
【黑馬程序員】Java基礎(chǔ)總結(jié)
黑馬程序員的javaEE課程主要分為2個(gè)部分:java基礎(chǔ)+java就業(yè)。今天就簡(jiǎn)單的給大家總結(jié)一下咱們java基礎(chǔ)的知識(shí)。
注:Java采用Unicode符號(hào)集,每個(gè)字符占2個(gè)字節(jié),無(wú)論英文還是中文還是其他字符。
標(biāo)識(shí)符
為變量、類或方法起的名稱 以字母,下劃線、或者$符號(hào)開頭 由字母、數(shù)字、下劃線或者$符號(hào)開頭 區(qū)分大小寫,沒有長(zhǎng)度限制,不能使用關(guān)鍵字 盡量取得容易辨識(shí),見名知意
如:identifier、userName、user_Name、_sys_varl、$change
基本數(shù)據(jù)類型
Java定義了8中基本數(shù)據(jù)類型
[AppleScript] 純文本查看 復(fù)制代碼
?
/**
* @author 傳智播客 1 */ 2 布爾值----boolean(只有true和false兩種類型)3 字符-------char(16 位的Unicode字符 用單引號(hào)('')標(biāo)注;'a'表示字母4 a
't' 表示制表符
'u'中?用確切的代替
申明5 并且初始化: char c = 'A'
申明變量 char ch1,ch2)6 整數(shù)--------byte(8位)short(16)int(32)long(64)【以0開7 頭表示八進(jìn)制 ;以0x開始表示16進(jìn)制】 浮點(diǎn)型-----float double
變量
必須在類的內(nèi)部【可以在方法外也可以在方法類】 在方法類定義的變量叫做局部變量,需要顯示的初始化
黑馬程序員合肥中心 編著
成員變量和類變量【對(duì)象】自動(dòng)初始化【數(shù)字初始化為0,對(duì)象初始化為null】
常量
在程序運(yùn)行中,其值保持不變的量
不同數(shù)據(jù)類型間的相互轉(zhuǎn)換【封裝Wrapper類】 Java中類的定義:
[AppleScript] 純文本查看 復(fù)制代碼
? /**
2* @author 傳智播客
3*/ 4 <修飾符> Class <類名>{ <屬性申明>;6
<構(gòu)造器申明>;7
<方法申明>;8 }
成員變量申明:
[AppleScript] 純文本查看 復(fù)制代碼
? <修飾符> <類型> <名稱>;修飾符:
[AppleScript] 純文本查看 復(fù)制代碼
? /** 2
* @author 傳智播客 3
*/ 4 final:修飾常量,常量的值不能被修改【例如 final int CONSTANT = 50;】 5 static:申明靜態(tài)變量[類變量] static int nCount;方法的申明:
[AppleScript] 純文本查看 復(fù)制代碼
? /** 2
* @author 傳智播客
黑馬程序員合肥中心 編著
3*/ 4 <修飾符> <返回值類型> <名稱>[參數(shù)列表]{ 5
語(yǔ)句;6 }
方法參數(shù)的傳遞方式:
1、值傳遞:形參是基本數(shù)據(jù)類型,方法調(diào)用時(shí),實(shí)際參數(shù)把值傳遞給形式參數(shù),形式參數(shù)只是用實(shí)際參數(shù)的值初始化自己的存儲(chǔ)單元內(nèi)容;是兩個(gè)不同的存儲(chǔ)單元,所以方法執(zhí)行中,形式參數(shù)值的改變不會(huì)影響實(shí)際參數(shù)的值。
2、引用傳遞:形參類型是引用數(shù)據(jù)類型【傳遞地址】,方法調(diào)用時(shí),實(shí)際參數(shù)是對(duì)象或者數(shù)組,這時(shí),形式參數(shù)和實(shí)際參數(shù)指向的是同一地址,方法執(zhí)行中,對(duì)形式參數(shù)的操作實(shí)際上是對(duì)實(shí)際參數(shù)的操作,這個(gè)結(jié)果在方法結(jié)束后被保留了下來(lái),所以對(duì)形式參數(shù)的操作實(shí)際上就是對(duì)實(shí)際參數(shù)的操作。構(gòu)造器申明:
[AppleScript] 純文本查看 復(fù)制代碼
?
/** 1 * @author 傳智播客 2 */ 3 <修飾符> <類名>[參數(shù)列表]{ 4
語(yǔ)句;5 } 6 注釋:構(gòu)造器沒有返回值,void也不行;如果有返回值,方法會(huì)被當(dāng)做普通函7 數(shù)執(zhí)行; 構(gòu)造器函數(shù)特點(diǎn):
1、作用:完成對(duì)類對(duì)象的初始化
2、名稱必須和類名相同
3、不能有返回值,不能有 return 語(yǔ)句
4、一般申明為Public類型 構(gòu)造器的使用:
黑馬程序員合肥中心 編著
1、不能現(xiàn)實(shí)的調(diào)用
2、在創(chuàng)建一個(gè)類的對(duì)象時(shí),系統(tǒng)自動(dòng)調(diào)用構(gòu)造器為該對(duì)象初始化
3、構(gòu)造器只能和new關(guān)鍵字一起使用
格式:
類名 對(duì)象名 = new 構(gòu)造函數(shù)名稱(成員變量的初始值);
默認(rèn)構(gòu)造器:
1、每個(gè)類至少有一個(gè)構(gòu)造器
2、如果不編寫構(gòu)造函數(shù),系統(tǒng)自動(dòng)添加默認(rèn)的構(gòu)造函數(shù)【默認(rèn)構(gòu)造函數(shù)不帶參數(shù),默認(rèn)構(gòu)造函數(shù)函數(shù)體為空】
3、不必編寫構(gòu)造函數(shù)就能使用new XXX()
創(chuàng)建實(shí)例
對(duì)象創(chuàng)建格式:
<對(duì)象名> = new <類名>(實(shí)參)
對(duì)象的清除:
對(duì)象為null時(shí),Java自動(dòng)調(diào)用垃圾回收機(jī)制清除對(duì)象,釋放對(duì)象占用的內(nèi)存空間 手動(dòng)編寫finalize()方法撤銷對(duì)象--不提倡
對(duì)象的內(nèi)存模型:
棧內(nèi)存:方法中定義的變量(基本類型和引用類型)。超過變量的作用域,自動(dòng)釋放變量的內(nèi)存
堆內(nèi)存:new 創(chuàng)建的對(duì)象(包括數(shù)組),由系統(tǒng)自動(dòng)回收
類的繼承【僅支持單繼承】
[AppleScript] 純文本查看 復(fù)制代碼
? /**
2* @author 傳智播客
3*/ 4 <修飾符> class <名稱> extends <父類>{ 申明;6 }
黑馬程序員合肥中心 編著
子類可以繼承父類中非private的方法和屬性;子類可以添加新的屬性和方法;【程序代碼重,減少冗余】 方法的重載(overload):
1、一個(gè)類中有多個(gè)同名的方法
2、條件:參數(shù)的個(gè)數(shù)不同;參數(shù)的類型不同
3、如果兩個(gè)方法只有返回值不一樣,不是重載,會(huì)報(bào)錯(cuò)
方法的覆蓋(override):
1、子類可以修改父類繼承過來(lái)的行為
2、子類可以創(chuàng)建和父類的方法不同功能的方法,但是下面必須相同:【方法名、返回值、參數(shù)列表】
super關(guān)鍵字:
往往在覆蓋方法時(shí),真正不目的不是代替現(xiàn)有的行為,而是在某些方面擴(kuò)展那些行為; 類中使用super關(guān)鍵字指向父類的成員 包括數(shù)據(jù)和方法; 3中使用方法:
super.方法名([參數(shù)表]);----調(diào)用父類的方法 super.成員變量名;----訪問父類的成員變量 super([參數(shù)表]);----調(diào)用父類的構(gòu)造函數(shù)
構(gòu)造函數(shù)不能被繼承:
子類從父類繼承所有的方法和變量 子類不能繼承父類的構(gòu)造函數(shù)
有兩種方式可以獲取構(gòu)造函數(shù):
1、使用默認(rèn)的構(gòu)造函數(shù)
2、編寫1個(gè)或者多個(gè)構(gòu)造函數(shù)
調(diào)用父類的構(gòu)造函數(shù):
要調(diào)用父類的構(gòu)造函數(shù),必須在子類構(gòu)造函數(shù)的第一行使用super關(guān)鍵字
黑馬程序員合肥中心 編著
要調(diào)用特定的父類的構(gòu)造函數(shù),必須為super提供參數(shù)
如果沒有this或者super調(diào)用,編譯器會(huì)插入一個(gè)對(duì)父類無(wú)參數(shù)構(gòu)造函數(shù)的隱式調(diào)用: super();
變量的多態(tài):
類型為X的參考變量,指向的對(duì)象類型既可以是X,也可以是X的子類; 如: Employee x = new Manager();Employee y = new Employee();
實(shí)例方法能夠被覆蓋,靜態(tài)(static)方法不能被覆蓋 原因:
靜態(tài)方法在編譯時(shí)候,根據(jù)調(diào)用該方法的類或者對(duì)象所屬的類決定 實(shí)例方法在運(yùn)行時(shí)根據(jù)對(duì)象所屬的類決定
如:Super s = new Sub();編譯時(shí)候S是Super類的對(duì)象,運(yùn)行時(shí) S 指向Sub類的對(duì)象;
instanceof操作符:
可以根據(jù)對(duì)象所屬的類進(jìn)行不同的處理 抽象類:只能被繼承,不能被實(shí)例化的類 定義格式:
[AppleScript] 純文本查看 復(fù)制代碼
? /**
2* @author 傳智播客
3*/ 4 abstract class 類名{ abstract 返回值類型
方法名[參數(shù)列表];6
...7 } 說(shuō)明:
抽象類中可以包含抽象方法和非抽象方法,也可以不包含抽象方法和非抽象方法;只要有一個(gè)抽象方法,就屬于抽象類;
[AppleScript] 純文本查看 復(fù)制代碼
黑馬程序員合肥中心 編著
?
01 /** 02
* @author 傳智播客 03
*/ 04 abstract class Animal{ 05
public abstract void eat();06
} 07
class Dog extends Animal{ 08
public void eat(){System.out.println(“狗吃骨頭”);} 09
} 10class Cat extends Animal{ 12
public void eat(){System.out.println(“貓吃老鼠”);} 13 } 115 class Wolf extends Animal{ 16
public void eat(){System.out.println(“狼吃羊”);} 17 } 說(shuō)明:不能創(chuàng)建抽象類的對(duì)象,即不能被實(shí)例化;
使用時(shí),必須用起創(chuàng)建子類
子類可以定義自己的成員變量和方法,但是必須將父類的所有抽象方法代碼寫完;
如果子類只是實(shí)現(xiàn)了部分抽象的方法,那么,該類仍然是抽象類; 最終類:
final 類不能被子類化;如Java.lang.String 是final 類,這樣做是基于安全的考慮; 標(biāo)記為final的方法不能被覆蓋;處于安全的考慮,如果方法的實(shí)現(xiàn)不應(yīng)改變,而且對(duì)對(duì)象的一致性要求比較高,則可以創(chuàng)建一個(gè)final方法。
標(biāo)記為final的變量代表常量,只能一次賦值; 接口:
使用interface關(guān)鍵字申明,可以支持多重繼承 接口中只能包含: 抽象方法;
黑馬程序員合肥中心 編著
常量(默認(rèn)為 public static final)【用得較少】 說(shuō)明:
1、接口本身只是提供定義,使用時(shí),必須通過類實(shí)現(xiàn)接口(implements)實(shí)現(xiàn)接口時(shí),必須實(shí)現(xiàn)所有的方法。否則該類還是抽象類(abstract class)。
2、一個(gè)雷尅實(shí)現(xiàn)多個(gè)接口。
3、擴(kuò)展子句(extends)必須在實(shí)現(xiàn)子句(implements)之前
包:
package <頂層包名>[.<子包名>]*;
如:package shipping.domain;說(shuō)明:
1、如果有包申明,必須在源文件開始處申明。他的前面只能有空白和注釋,不能有其他語(yǔ)句;
2、每個(gè)源文件只能有一個(gè)包申明;
3、如果沒有包申明,則該類屬于“默認(rèn)”包(沒有名稱的包)
4、包的名稱有層次,且用.分開;
import語(yǔ)句: 基本語(yǔ)法:
import <包名>[.<子包名>].<類名> 或者import <包名>[.<子包名>].*;
其實(shí)在學(xué)習(xí)java過程中基礎(chǔ)還是比較容易,如果大家想學(xué)習(xí)java基礎(chǔ)的知識(shí),歡迎大家可以去傳智播客官網(wǎng)http://www.tmdps.cn/去了解java基礎(chǔ)知識(shí)!
黑馬程序員合肥中心 編著
第四篇:黑馬程序員:Java集合簡(jiǎn)單總結(jié)
黑馬程序員:Java集合簡(jiǎn)單總結(jié)
在Java語(yǔ)言中,學(xué)好集合是非常重要的,下面簡(jiǎn)單的對(duì)集合進(jìn)行總結(jié),以便大家學(xué)習(xí),有
問題再相互交流。
集合框架圖
在集合框架圖中可以看出,Collection接口中主要有兩個(gè)子接口,分別是List和Set。List集合的特點(diǎn)是元素有序、包含重復(fù)元素,Set集合的特點(diǎn)是元素?zé)o序、不包含重復(fù)元素。Map集合中存儲(chǔ)的是鍵值映射關(guān)系,元素都是成對(duì)出現(xiàn)的。Map接口的主要子接口有HashMap和TreeMap。
總結(jié)ist有順序有重復(fù)沒有排序,set無(wú)重復(fù)有排序,map的key也和set一樣。
List接口
List : 特點(diǎn)是元素有序、可以包含重復(fù)元素。它有兩個(gè)實(shí)現(xiàn)類分別是:ArrayList和LinkedList。
ArrayList : 內(nèi)部維護(hù)一個(gè)數(shù)組結(jié)構(gòu),允許對(duì)元素進(jìn)行快速隨機(jī)訪問,但是向List中間插入與移除元素的速度很慢。
LinkedList : 內(nèi)部維護(hù)了一個(gè)雙向鏈表結(jié)構(gòu),即通過節(jié)點(diǎn)之間彼此連接來(lái)實(shí)現(xiàn)的,每一個(gè)節(jié)點(diǎn)都包含前一個(gè)節(jié)點(diǎn)和后一個(gè)節(jié)點(diǎn)的引用。當(dāng)一個(gè)新節(jié)點(diǎn)插入時(shí),只需要修改其中保持先后關(guān)系的節(jié)點(diǎn)引用即可,這樣的存儲(chǔ)結(jié)構(gòu)保證了LinkedList集合在增刪元素時(shí)效率非常高。
Set接口
Set具有與Collection完全一樣的接口,因此沒有任何額外的功能,不像前面的List。實(shí)際上Set就是Collection只是行為不同,也就是說(shuō)Set集合并沒有對(duì)Collection接口進(jìn)行擴(kuò)充,只是比collection接口要求更加嚴(yán)了。
Set : 存入Set的每個(gè)元素都必須是唯一的,因?yàn)镾et不保存重復(fù)元素。加入Set的元素必須定義equals()方法以確保對(duì)象的唯一性。
HashSet : 為快速查找設(shè)計(jì)的Set。存入HashSet的對(duì)象必須定義hashCode()。
TreeSet : 保存有序的Set, 底層為樹結(jié)構(gòu)。使用它可以從Set中提取有序的序列。
LinkedHashSet : 具有HashSet的查詢速度,且內(nèi)部使用鏈表維護(hù)元素的順序。于是在使用迭代器遍歷Set時(shí),結(jié)果會(huì)按元素插入的次序顯示。
Map接口
Map用于保存具有映射關(guān)系的數(shù)據(jù),因此Map集合里存儲(chǔ)兩組值,一組用于保存Map里的key,另一組用于保存Map中的value,key和value都可以是任意引用類型數(shù)據(jù),其中,作為key的值是不允許重復(fù)的,而value中可以出現(xiàn)重復(fù)。Map : 維護(hù)“鍵值對(duì)”的關(guān)聯(lián)性,使你可以通過“鍵”查找“值”。
HashMap就是使用對(duì)象的hashCode()進(jìn)行快速查詢的。此方法能夠顯著提高性能。HashMap集合是基于哈希表的Map接口實(shí)現(xiàn),并允許使用null鍵null值,但必須保證鍵的唯一性。
LinkedHashMap : 類似于HashMap,但是迭代遍歷它時(shí),取得“鍵值對(duì)”的順序是其插入次序。而在迭代訪問時(shí)發(fā)而更快,因?yàn)樗褂面湵砭S護(hù)內(nèi)部次序。
TreeMap : 基于紅黑樹數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)。查看“鍵”或“鍵值對(duì)”時(shí),它們會(huì)被排序(順序由Comparabel或Comparator決定)。TreeMap的特點(diǎn)在于,你得到的結(jié)果是經(jīng)過排序的。
Hashtable線程安全,但是存取速度很慢,且不允許存放null鍵null值,目前基本上被hashMap類所取代。Hashtable有一個(gè)重要的子類Properties。
Properties:java.util.Properties;key和value都是String類型,用來(lái)讀配置文件。繼承自Hashtable,比 Hashtable 更嚴(yán)格 屬性列表中每個(gè)鍵及其對(duì)應(yīng)值都是一個(gè)字符串。常用方法 String getProperty(String?key)和 setProperty(String key,String value);
用法:我在D盤下建了一個(gè)名為 AA.dat 的文件,文件的內(nèi)容為:
name=ch
password=12345
執(zhí)行以下程序,輸出 ch,可見用 Properties 可以很方便的解析配置文件 Properties p = new Properties();p.load(new FileInputStream(“D:AA.dat”));System.out.println(p.getProperty(“name”))
第五篇:【黑馬程序員】Java基礎(chǔ) : Java語(yǔ)句筆記
【黑馬程序員】Java基礎(chǔ) : Java語(yǔ)句筆記
摘要: Java基礎(chǔ)—java語(yǔ)句這些是黑馬程序員java基礎(chǔ)入門的一個(gè)很重要的內(nèi)容。今天主要給大家簡(jiǎn)單講解一下Java基礎(chǔ)—java語(yǔ)句,以后會(huì)慢慢講解黑馬程序員的課程內(nèi)容!
關(guān)鍵語(yǔ)句介紹
一、while 語(yǔ)句 一般形式:
whi l e(條件表達(dá)式){ 語(yǔ)句體 ……… } 執(zhí)行過程:
條件表達(dá)式為真,執(zhí)行語(yǔ)句體。否則,退出!
二、do while 語(yǔ)句 一般形式: do { 語(yǔ)句體 …….} while(條件表達(dá)式);執(zhí)行過程:
先執(zhí)行一次語(yǔ)句體,判斷 條件表達(dá)式是否為真,為真再執(zhí)行do語(yǔ)句中的語(yǔ)句體。為假,退出。
需要注意:與whi l e語(yǔ)句區(qū)別
黑馬程序員合肥中心 編著
1.while(條件表達(dá)式)后面有分號(hào);2.不管條件表達(dá)式是否為真,語(yǔ)句體均會(huì)執(zhí)行一次。
三、for 語(yǔ)句 一般形式:
for(子句 1;子句 2;子句 3){ 語(yǔ)句體 …… } 執(zhí)行過程:
四、break、cont inue 語(yǔ)句 break 退出所在循環(huán) : int stopHere = 5;for(int i=1;i<8;i++){ if(i == stopHere){ break;} System.out.println(“i = ” + i);
黑馬程序員合肥中心 編著
} //打印結(jié)果:5,6,7,8均沒有打印出來(lái)。
需要注意的一個(gè)問題: int stopHere = 5;for(int i = 1;i < 8;i + +){ if(i = = stopHere){ / /語(yǔ)句體 } break;System.out.println(“i = ” + i);} 這個(gè)時(shí)候編譯器會(huì)報(bào)錯(cuò):無(wú)效的 System.out 輸出語(yǔ)句。冷靜分析一下:
break 語(yǔ)句會(huì)結(jié)束循環(huán),所以不會(huì)再去執(zhí)行 System.out 輸出語(yǔ)句。編譯會(huì)認(rèn)為你在多此一舉,sorry 報(bào)個(gè)錯(cuò)!
continue 退出本次循環(huán),不會(huì)退出整個(gè)循環(huán): int skipHere = 5;for(int i = 1;i < 8;i + +){ if(i = = skipHere){ continue;}
黑馬程序員合肥中心 編著
System.out.println(“i = ” + i);} / /打印結(jié)果:除了5沒有打印出來(lái)。
i = 1 i = 2
五、switch 語(yǔ)句 一般形式: switch(常量){ case 表達(dá)式1:語(yǔ)句體1;break;case 表達(dá)式2:語(yǔ)句體2;break;.....default : 語(yǔ)句體n;break;}
執(zhí)行過程: 執(zhí)行過程:
case 根據(jù)自己的表達(dá)式看是否匹配常量,如果匹配就執(zhí)行語(yǔ)句體,否則執(zhí)行 default 語(yǔ)句。
case 執(zhí)行類似于并行操作,不是順序操作。所以各個(gè)表達(dá)式的值不可以相同。
黑馬程序員合肥中心 編著
哪個(gè) case 匹配常量就會(huì)執(zhí)行自己的語(yǔ)句體,不會(huì)再去尋找其他 case 語(yǔ)句。注意:
<1> case 穿透:省去break關(guān)鍵字
[AppleScript] 純文本查看 復(fù)制代碼 ?
01 /**
02 * @author 傳智播客 03 */
04 int i = 10;05 switch(i){ 06 case 10:
07 System.out.println(“ A”);08 //break;09 case 5: System.out.println(“ B”);11 //break;12 case 7: System.out.println(“ C”);14 //break;15 default : System.out.println(“ error”);17 break;18 }//打印結(jié)果:A B C error
<2> 在 Java 編程中 switch 括號(hào)中的常量的數(shù)據(jù)類型只可以為 int 類型或者是 byte、char、short(因?yàn)?byte、char、short 可以自動(dòng)提升為 int),常量類型不可以是 long、float 和 double 等數(shù)據(jù)類型。<3> 多個(gè) case 可以合并 , 相當(dāng)于 “ 或 ”,例如下面 i 等于 10、5、7 都可以執(zhí)行打印語(yǔ)句。
[AppleScript] 純文本查看 復(fù)制代碼 ?
01 /**
02 * @author 傳智播客 03 */
04 int i = 5;05 switch(i){ 06 case 10: 07 case 5: 08 case 7:
09 System.out.println(“ C”);10 break;11 default : System.out.println(“ error”);13 break;
黑馬程序員合肥中心 編著 }//打印結(jié)果:C <4> default 語(yǔ)句可以省,但是不推薦,他后面的 break 可省 <5> case 或者 default 子句中可以寫多條語(yǔ)句 case 7: System.out.println(“ C”);if(i == 5){ System.out.println(“ i = ” +i);} break;<6> case 或者 default 子句中還可以嵌套 switch 或者其他語(yǔ)句
六、return 語(yǔ)句
終止方法的運(yùn)行并指定要返回的數(shù)據(jù)。兩種形式:
<1> return 表達(dá)式;
<2> return ;沒有任何數(shù)據(jù)直接返回,結(jié)束函數(shù)(方法)的執(zhí)行。
七、if 語(yǔ)句
一般形式:
1.if(條件表達(dá)式){ 語(yǔ)句體} 2.if(條件表達(dá)式){ 語(yǔ)句體} else{語(yǔ)句體 } 3. if(條件表達(dá)式1){ 語(yǔ)句體} else if(條件表達(dá)式2){語(yǔ)句體 } else {語(yǔ)句體 }
特別注意:形式3,else與其最近的上個(gè)if 配對(duì)。例子:
[AppleScript] 純文本查看 復(fù)制代碼 ?
黑馬程序員合肥中心 編著
01 /**
02 * @author 傳智播客 03 */
04 public class TestIF {
05 public static void main(String[] args){ 06 int i = 30;07 if(i < 20){
08 System.out.println(“<20”);09 } else if(i < 50){ System.out.println(“<50”);11 } else if(i < 80){ System.out.println(“<80”);13 } else System.out.println(“>=80”);15 System.out.println(“黑馬程序員!”);16 }
如果大家想學(xué)習(xí)java基礎(chǔ)的知識(shí),歡迎大家可以去傳智播客官網(wǎng)http://www.tmdps.cn/去了解java基礎(chǔ)知識(shí)!
黑馬程序員合肥中心 編著