欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      【黑馬程序員】Java基礎(chǔ) : Java語句筆記

      時(shí)間:2019-05-12 21:09:40下載本文作者:會(huì)員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《【黑馬程序員】Java基礎(chǔ) : Java語句筆記》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《【黑馬程序員】Java基礎(chǔ) : Java語句筆記》。

      第一篇:【黑馬程序員】Java基礎(chǔ) : Java語句筆記

      【黑馬程序員】Java基礎(chǔ) : Java語句筆記

      摘要: Java基礎(chǔ)—java語句這些是黑馬程序員java基礎(chǔ)入門的一個(gè)很重要的內(nèi)容。今天主要給大家簡單講解一下Java基礎(chǔ)—java語句,以后會(huì)慢慢講解黑馬程序員的課程內(nèi)容!

      關(guān)鍵語句介紹

      一、while 語句 一般形式:

      whi l e(條件表達(dá)式){ 語句體 ……… } 執(zhí)行過程:

      條件表達(dá)式為真,執(zhí)行語句體。否則,退出!

      二、do while 語句 一般形式: do { 語句體 …….} while(條件表達(dá)式);執(zhí)行過程:

      先執(zhí)行一次語句體,判斷 條件表達(dá)式是否為真,為真再執(zhí)行do語句中的語句體。為假,退出。

      需要注意:與whi l e語句區(qū)別

      黑馬程序員合肥中心 編著

      1.while(條件表達(dá)式)后面有分號(hào);2.不管條件表達(dá)式是否為真,語句體均會(huì)執(zhí)行一次。

      三、for 語句 一般形式:

      for(子句 1;子句 2;子句 3){ 語句體 …… } 執(zhí)行過程:

      四、break、cont inue 語句 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均沒有打印出來。

      需要注意的一個(gè)問題: int stopHere = 5;for(int i = 1;i < 8;i + +){ if(i = = stopHere){ / /語句體 } break;System.out.println(“i = ” + i);} 這個(gè)時(shí)候編譯器會(huì)報(bào)錯(cuò):無效的 System.out 輸出語句。冷靜分析一下:

      break 語句會(huì)結(jié)束循環(huán),所以不會(huì)再去執(zhí)行 System.out 輸出語句。編譯會(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沒有打印出來。

      i = 1 i = 2

      五、switch 語句 一般形式: switch(常量){ case 表達(dá)式1:語句體1;break;case 表達(dá)式2:語句體2;break;.....default : 語句體n;break;}

      執(zhí)行過程: 執(zhí)行過程:

      case 根據(jù)自己的表達(dá)式看是否匹配常量,如果匹配就執(zhí)行語句體,否則執(zhí)行 default 語句。

      case 執(zhí)行類似于并行操作,不是順序操作。所以各個(gè)表達(dá)式的值不可以相同。

      黑馬程序員合肥中心 編著

      哪個(gè) case 匹配常量就會(huì)執(zhí)行自己的語句體,不會(huì)再去尋找其他 case 語句。注意:

      <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í)行打印語句。

      [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 語句可以省,但是不推薦,他后面的 break 可省 <5> case 或者 default 子句中可以寫多條語句 case 7: System.out.println(“ C”);if(i == 5){ System.out.println(“ i = ” +i);} break;<6> case 或者 default 子句中還可以嵌套 switch 或者其他語句

      六、return 語句

      終止方法的運(yùn)行并指定要返回的數(shù)據(jù)。兩種形式:

      <1> return 表達(dá)式;

      <2> return ;沒有任何數(shù)據(jù)直接返回,結(jié)束函數(shù)(方法)的執(zhí)行。

      七、if 語句

      一般形式:

      1.if(條件表達(dá)式){ 語句體} 2.if(條件表達(dá)式){ 語句體} else{語句體 } 3. if(條件表達(dá)式1){ 語句體} else if(條件表達(dá)式2){語句體 } else {語句體 }

      特別注意:形式3,else與其最近的上個(gè)if 配對。例子:

      [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://004km.cn/去了解java基礎(chǔ)知識(shí)!

      黑馬程序員合肥中心 編著

      第二篇:【黑馬程序員】Java基礎(chǔ)總結(jié)

      【黑馬程序員】Java基礎(chǔ)總結(jié)

      黑馬程序員的javaEE課程主要分為2個(gè)部分:java基礎(chǔ)+java就業(yè)。今天就簡單的給大家總結(jié)一下咱們java基礎(chǔ)的知識(shí)。

      注:Java采用Unicode符號(hào)集,每個(gè)字符占2個(gè)字節(jié),無論英文還是中文還是其他字符。

      標(biāo)識(shí)符

      為變量、類或方法起的名稱 以字母,下劃線、或者$符號(hào)開頭 由字母、數(shù)字、下劃線或者$符號(hào)開頭 區(qū)分大小寫,沒有長度限制,不能使用關(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)部【可以在方法外也可以在方法類】 在方法類定義的變量叫做局部變量,需要顯示的初始化

      黑馬程序員合肥中心 編著

      成員變量和類變量【對象】自動(dòng)初始化【數(shù)字初始化為0,對象初始化為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

      語句;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ù)是對象或者數(shù)組,這時(shí),形式參數(shù)和實(shí)際參數(shù)指向的是同一地址,方法執(zhí)行中,對形式參數(shù)的操作實(shí)際上是對實(shí)際參數(shù)的操作,這個(gè)結(jié)果在方法結(jié)束后被保留了下來,所以對形式參數(shù)的操作實(shí)際上就是對實(shí)際參數(shù)的操作。構(gòu)造器申明:

      [AppleScript] 純文本查看 復(fù)制代碼

      ?

      /** 1 * @author 傳智播客 2 */ 3 <修飾符> <類名>[參數(shù)列表]{ 4

      語句;5 } 6 注釋:構(gòu)造器沒有返回值,void也不行;如果有返回值,方法會(huì)被當(dāng)做普通函7 數(shù)執(zhí)行; 構(gòu)造器函數(shù)特點(diǎn):

      1、作用:完成對類對象的初始化

      2、名稱必須和類名相同

      3、不能有返回值,不能有 return 語句

      4、一般申明為Public類型 構(gòu)造器的使用:

      黑馬程序員合肥中心 編著

      1、不能現(xiàn)實(shí)的調(diào)用

      2、在創(chuàng)建一個(gè)類的對象時(shí),系統(tǒng)自動(dòng)調(diào)用構(gòu)造器為該對象初始化

      3、構(gòu)造器只能和new關(guān)鍵字一起使用

      格式:

      類名 對象名 = 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í)例

      對象創(chuàng)建格式:

      <對象名> = new <類名>(實(shí)參)

      對象的清除:

      對象為null時(shí),Java自動(dòng)調(diào)用垃圾回收機(jī)制清除對象,釋放對象占用的內(nèi)存空間 手動(dòng)編寫finalize()方法撤銷對象--不提倡

      對象的內(nèi)存模型:

      棧內(nèi)存:方法中定義的變量(基本類型和引用類型)。超過變量的作用域,自動(dòng)釋放變量的內(nèi)存

      堆內(nèi)存:new 創(chuàng)建的對象(包括數(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、子類可以修改父類繼承過來的行為

      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è)對父類無參數(shù)構(gòu)造函數(shù)的隱式調(diào)用: super();

      變量的多態(tài):

      類型為X的參考變量,指向的對象類型既可以是X,也可以是X的子類; 如: Employee x = new Manager();Employee y = new Employee();

      實(shí)例方法能夠被覆蓋,靜態(tài)(static)方法不能被覆蓋 原因:

      靜態(tài)方法在編譯時(shí)候,根據(jù)調(diào)用該方法的類或者對象所屬的類決定 實(shí)例方法在運(yùn)行時(shí)根據(jù)對象所屬的類決定

      如:Super s = new Sub();編譯時(shí)候S是Super類的對象,運(yùn)行時(shí) S 指向Sub類的對象;

      instanceof操作符:

      可以根據(jù)對象所屬的類進(jìn)行不同的處理 抽象類:只能被繼承,不能被實(shí)例化的類 定義格式:

      [AppleScript] 純文本查看 復(fù)制代碼

      ? /**

      2* @author 傳智播客

      3*/ 4 abstract class 類名{ abstract 返回值類型

      方法名[參數(shù)列表];6

      ...7 } 說明:

      抽象類中可以包含抽象方法和非抽象方法,也可以不包含抽象方法和非抽象方法;只要有一個(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 } 說明:不能創(chuàng)建抽象類的對象,即不能被實(shí)例化;

      使用時(shí),必須用起創(chuàng)建子類

      子類可以定義自己的成員變量和方法,但是必須將父類的所有抽象方法代碼寫完;

      如果子類只是實(shí)現(xiàn)了部分抽象的方法,那么,該類仍然是抽象類; 最終類:

      final 類不能被子類化;如Java.lang.String 是final 類,這樣做是基于安全的考慮; 標(biāo)記為final的方法不能被覆蓋;處于安全的考慮,如果方法的實(shí)現(xiàn)不應(yīng)改變,而且對對象的一致性要求比較高,則可以創(chuàng)建一個(gè)final方法。

      標(biāo)記為final的變量代表常量,只能一次賦值; 接口:

      使用interface關(guān)鍵字申明,可以支持多重繼承 接口中只能包含: 抽象方法;

      黑馬程序員合肥中心 編著

      常量(默認(rèn)為 public static final)【用得較少】 說明:

      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;說明:

      1、如果有包申明,必須在源文件開始處申明。他的前面只能有空白和注釋,不能有其他語句;

      2、每個(gè)源文件只能有一個(gè)包申明;

      3、如果沒有包申明,則該類屬于“默認(rèn)”包(沒有名稱的包)

      4、包的名稱有層次,且用.分開;

      import語句: 基本語法:

      import <包名>[.<子包名>].<類名> 或者import <包名>[.<子包名>].*;

      其實(shí)在學(xué)習(xí)java過程中基礎(chǔ)還是比較容易,如果大家想學(xué)習(xí)java基礎(chǔ)的知識(shí),歡迎大家可以去傳智播客官網(wǎng)http://004km.cn/去了解java基礎(chǔ)知識(shí)!

      黑馬程序員合肥中心 編著

      第三篇:黑馬程序員:Java集合簡單總結(jié)

      黑馬程序員:Java集合簡單總結(jié)

      在Java語言中,學(xué)好集合是非常重要的,下面簡單的對集合進(jìn)行總結(jié),以便大家學(xué)習(xí),有

      問題再相互交流。

      集合框架圖

      在集合框架圖中可以看出,Collection接口中主要有兩個(gè)子接口,分別是List和Set。List集合的特點(diǎn)是元素有序、包含重復(fù)元素,Set集合的特點(diǎn)是元素?zé)o序、不包含重復(fù)元素。Map集合中存儲(chǔ)的是鍵值映射關(guān)系,元素都是成對出現(xiàn)的。Map接口的主要子接口有HashMap和TreeMap。

      總結(jié)ist有順序有重復(fù)沒有排序,set無重復(fù)有排序,map的key也和set一樣。

      List接口

      List : 特點(diǎn)是元素有序、可以包含重復(fù)元素。它有兩個(gè)實(shí)現(xiàn)類分別是:ArrayList和LinkedList。

      ArrayList : 內(nèi)部維護(hù)一個(gè)數(shù)組結(jié)構(gòu),允許對元素進(jìn)行快速隨機(jī)訪問,但是向List中間插入與移除元素的速度很慢。

      LinkedList : 內(nèi)部維護(hù)了一個(gè)雙向鏈表結(jié)構(gòu),即通過節(jié)點(diǎn)之間彼此連接來實(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只是行為不同,也就是說Set集合并沒有對Collection接口進(jìn)行擴(kuò)充,只是比collection接口要求更加嚴(yán)了。

      Set : 存入Set的每個(gè)元素都必須是唯一的,因?yàn)镾et不保存重復(fù)元素。加入Set的元素必須定義equals()方法以確保對象的唯一性。

      HashSet : 為快速查找設(shè)計(jì)的Set。存入HashSet的對象必須定義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ù)“鍵值對”的關(guān)聯(lián)性,使你可以通過“鍵”查找“值”。

      HashMap就是使用對象的hashCode()進(jìn)行快速查詢的。此方法能夠顯著提高性能。HashMap集合是基于哈希表的Map接口實(shí)現(xiàn),并允許使用null鍵null值,但必須保證鍵的唯一性。

      LinkedHashMap : 類似于HashMap,但是迭代遍歷它時(shí),取得“鍵值對”的順序是其插入次序。而在迭代訪問時(shí)發(fā)而更快,因?yàn)樗褂面湵砭S護(hù)內(nèi)部次序。

      TreeMap : 基于紅黑樹數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)。查看“鍵”或“鍵值對”時(shí),它們會(huì)被排序(順序由Comparabel或Comparator決定)。TreeMap的特點(diǎn)在于,你得到的結(jié)果是經(jīng)過排序的。

      Hashtable線程安全,但是存取速度很慢,且不允許存放null鍵null值,目前基本上被hashMap類所取代。Hashtable有一個(gè)重要的子類Properties。

      Properties:java.util.Properties;key和value都是String類型,用來讀配置文件。繼承自Hashtable,比 Hashtable 更嚴(yán)格 屬性列表中每個(gè)鍵及其對應(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程序員

      如何迅速成為Java高手[Tomjava原創(chuàng)]

      很多網(wǎng)友問我學(xué)習(xí)Java有沒有什么捷徑,我說“無他,唯手熟爾”。但是我卻很愿意將自己學(xué)習(xí)的一些經(jīng)驗(yàn)寫出來,以便后來者少走彎路,幫助別人是最大的快樂嘛!

      要想學(xué)好Java,首先要知道Java的大致分類。我們知道,自從Sun推出Java以來,就力圖使之無所不包,所以Java發(fā)展到現(xiàn)在,按應(yīng)用來分主要分為三大塊:J2SE,J2ME和J2EE,這也就是Sun ONE(Open Net Environment)體系。J2SE就是Java2的標(biāo)準(zhǔn)版,主要用于桌面應(yīng)用軟件的編程;J2ME主要應(yīng)用于嵌入是系統(tǒng)開發(fā),如手機(jī)和PDA的編程;J2EE是Java2的企業(yè)版,主要用于分布式的網(wǎng)絡(luò)程序的開發(fā),如電子商務(wù)網(wǎng)站和ERP系統(tǒng)。J2SE開發(fā)桌面應(yīng)用軟件比起VC,VB,DEPHI這些傳統(tǒng)開發(fā)語言來說,優(yōu)勢好象并不明顯。J2ME對于初學(xué)者來說,好象又有點(diǎn)深?yuàn)W,而且一般開發(fā)者很難有開發(fā)環(huán)境。所以現(xiàn)在應(yīng)用最廣泛又最好學(xué)的就是J2EE了。J2EE又包括許多組件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要學(xué)習(xí)起來可不是一兩天的事。

      那么又該如何學(xué)習(xí)J2EE呢?當(dāng)然Java語法得先看一看的,I/O包,Util包,Lang包你都熟悉了嗎?然后再從JSP學(xué)起。如果你學(xué)過HTML,那么事情要好辦的多,如果沒有,那你快去補(bǔ)一補(bǔ)HTML基礎(chǔ)吧。其實(shí)JSP中的Java語法也不多,它更象一個(gè)腳本語言,有點(diǎn)象ASP。然后你就該學(xué)一學(xué)Servlet了。Servlet就是服務(wù)器端小程序,他負(fù)責(zé)生成發(fā)送給客戶端的HTML文件。JSP在執(zhí)行時(shí),也是先轉(zhuǎn)換成Servlet再運(yùn)行的。雖說JSP理論上可以完全取代Servlet,這也是SUN推出JSP的本意,可是Servlet用來控制流程跳轉(zhuǎn)還是挺方便的,也令程序更清晰。接下來你應(yīng)該學(xué)習(xí)一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代碼的混亂方式了,這種方式跟ASP又有什么區(qū)別呢?還好,SUN提供了Javabean可以把你的JSP中的Java代碼封裝起來,便于調(diào)用也便于重用。接著就是EJB了,EJB就是Enterprise JavaBean,看名字好象它是Javabean,可是它和Javabean還是有區(qū)別的。它是一個(gè)體系結(jié)構(gòu),你可以搭建更安全、更穩(wěn)定的企業(yè)應(yīng)用。它的大量代碼已由中間件(也就是我們常聽到的Weblogic,Websphere這些J2EE服務(wù)器)完成了,所以我們要做的程序代碼量很少,大部分工作都在設(shè)計(jì)和配置中間件上。至于JDBC,就不用我多說了,你如果用java編過存取數(shù)據(jù)庫的程序,就應(yīng)該很熟悉。還有,如果你要用Java編發(fā)送電子郵件的程序,你就得看看Javamail了。

      好了,對Java和J2EE有了一些基本概念之后,你就應(yīng)該編一些程序了,千萬不要紙上談兵哦。最好找一些有實(shí)例且?guī)Ч獗P的書來看,這樣看到好的程序就可以直接Ctrl+C再Ctrl+V,也不用勞您老大架再親自把它再輸一遍吧,再說直接復(fù)制還不用怕出錯(cuò),何樂而不為呢!還有就是要經(jīng)常上一些好的Java編程文章,有好的文章要Cut下來,有問題盡管問,只要問題不是太傻,一般高手都會(huì)回答你的。下面介紹幾個(gè)好的Java方面的編程網(wǎng)站:

      CSDN論壇 http:///那里Java資料比較全;

      java.com.cnhttp://.cn/看這域名就知道有多牛,注冊用戶快接近一萬了,同時(shí)在線人數(shù)也在一千左右,人氣很旺的;

      IBM的開發(fā)者網(wǎng)絡(luò)http://IBM永遠(yuǎn)的藍(lán)色巨人;

      那么我書也看了,程序也做了,別人問我的問題我都能解決了,是不是就成為高手了呢?當(dāng)然沒那么簡單,這只是萬里長征走完了第一步。不信?那你出去接一個(gè)項(xiàng)目,你知道怎么下手嗎,你知道怎么設(shè)計(jì)嗎,你知道怎么組織人員進(jìn)行開發(fā)嗎?你現(xiàn)在腦子里除了一些散亂的代碼之外,可能再?zèng)]有別的東西了吧!你現(xiàn)在最缺的是實(shí)際的工作經(jīng)驗(yàn),而不是書本上那些

      憑空想出來的程序。所以你快去找一份Java的編程工作來做吧(如果是在校學(xué)生可以去做兼職?。趯?shí)踐中提高自己,那才是最快的。不過你得祈禱在公司里碰到一個(gè)高手,而且他還愿意不厭其煩地教你,這樣好象有點(diǎn)難哦!

      還有一個(gè)辦法就是讀開放源碼的程序了。我們知道開放源碼大都出自高手,他們設(shè)計(jì)合理,考慮周到,再加上有廣大的程序員參與,代碼的價(jià)值自然是字字珠嘰,鏗鏘有力(對不起,偶最近《金裝四大才子》看多了)。學(xué)Java必讀的兩個(gè)開源程序就是Jive和Pet Store.。Jive是國外一個(gè)非常著名的BBS程序,完全開放源碼。論壇的設(shè)計(jì)采用了很多先進(jìn)的技術(shù),如Cache、用戶認(rèn)證、Filter、XML等,而且論壇完全屏蔽了對數(shù)據(jù)庫的訪問,可以很輕易的在不同數(shù)據(jù)庫中移植。論壇還有方便的安裝和管理程序,這是我們平時(shí)編程時(shí)容易忽略的一部份(中國程序員一般只注重編程的技術(shù)含量,卻完全不考慮用戶的感受,這就是我們與國外軟件的差距所在)。Jive的資料在很多網(wǎng)站上都有,大家可以找來研究一下。相信你讀完代碼后,會(huì)有脫胎換骨的感覺。遺憾的是Jive從2.5以后就不再無條件的開放源代碼,同時(shí)有l(wèi)icence限制。不過幸好還有中國一流的Java程序員關(guān)注它,外國人不開源了,中國人就不能開源嗎?這里向大家推薦一個(gè)漢化的Jive版本—J道。Jive(J道版)是由中國Java界大名鼎鼎的banq在Jive 2.1版本基礎(chǔ)上改編而成, 全中文,增加了一些實(shí)用功能,如貼圖,用戶頭像和用戶資料查詢等,而且有一個(gè)開發(fā)團(tuán)隊(duì)在不斷升級(jí)。你可以訪問banq的網(wǎng)站http:///去下載,或到同濟(jì)技術(shù)論壇的服務(wù)器上ftp://nro.shtdu.edu.cn去下,安裝上有什么問題,可以到論壇上去提問。Pet Store.(寵物店)是SUN公司為了演示其J2EE編程規(guī)范而推出的開放源碼的程序,應(yīng)該很具有權(quán)威性,想學(xué)J2EE和EJB的朋友不要錯(cuò)過了。

      你一定會(huì)高興地說,哈哈,原來成為Java高手就這么簡單啊!記得Tomjava也曾碰到過一個(gè)項(xiàng)目經(jīng)理,號(hào)稱Java很簡單,只要三個(gè)月就可以學(xué)會(huì)。其實(shí)說這種話的人就如當(dāng)年小日本號(hào)稱“三個(gè)月拿下中國”一樣大言不慚。不是Tomjava潑你冷水,你現(xiàn)在只是學(xué)到了Java的骨架,卻還沒有學(xué)到Java的精髓。接下來你得研究設(shè)計(jì)模式了。設(shè)計(jì)模式是高級(jí)程序員真正掌握面向?qū)ο蠛诵乃枷氲谋匦拚n。設(shè)計(jì)模式并不是一種具體“技術(shù)”,它講述的是思想,它不僅僅展示了接口或抽象類在實(shí)際案例中的靈活應(yīng)用和智慧,讓你能夠真正掌握接口或抽象類的應(yīng)用,從而在原來的Java語言基礎(chǔ)上躍進(jìn)一步,更重要的是,設(shè)計(jì)模式反復(fù)向你強(qiáng)調(diào)一個(gè)宗旨:要讓你的程序盡可能的可重用。關(guān)于設(shè)計(jì)模式的資料,還是向大家推薦banq的網(wǎng)站http:///,他把GOF的23種模式以通俗易懂的方式詮釋出來,純Java描述,真是經(jīng)典中的經(jīng)典。有時(shí)間再研究一下MVC結(jié)構(gòu)(把Model-View-Control分離開的設(shè)計(jì)思想)吧,現(xiàn)在很流行的Structs就是它的一種實(shí)現(xiàn)方式,不過Structs用起來實(shí)在是很繁,我們只要學(xué)習(xí)其精髓即可,我們完全可以設(shè)計(jì)自己的MVC結(jié)構(gòu)。然后你再研究一下軟件Refactoring(重整)和極限XP編程,相信你又會(huì)上一個(gè)臺(tái)階。

      做完這些,你不如整理一下你的Java代碼,把那些經(jīng)典的程序和常見的應(yīng)用整理出來,再精心打造一番,提高其重用性和可擴(kuò)展性。你再找?guī)讉€(gè)志同道合的朋友成立一個(gè)工作室吧,你可以去承接一些項(xiàng)目做了,一開始可能有些困難,可是你有技術(shù)積累,又考慮周全,接下項(xiàng)目來可以迅速作完,相信大家以后都會(huì)來找你的,所以Money就嘩啦啦的來了。。。當(dāng)然你也可以參加一些開源項(xiàng)目,一方面可以提高自己,另一方面也是為中國軟件事業(yè)做貢獻(xiàn)嘛!開發(fā)者在互聯(lián)網(wǎng)上用CVS合作開發(fā),用QQ,MSN,E-mail討論聯(lián)系,天南海北的程序員分散在各地卻同時(shí)開發(fā)同一個(gè)軟件,是不是很有意思呢?

      下面介紹兩個(gè)好的開源項(xiàng)目網(wǎng)站:

      湖北省軟件公共開發(fā)平臺(tái)http://gro.clinux.org/

      共創(chuàng)聯(lián)盟http://cosoft.org.cn/

      哇,好高興哦,我終于成為高手了!非也,非也。古人云:“識(shí)時(shí)務(wù)者為俊杰”。你知道計(jì)算

      機(jī)界現(xiàn)在的發(fā)展形勢嗎?你知道微軟的.NET藍(lán)圖和SUN ONE計(jì)劃之間的明爭暗斗嗎?你知道計(jì)算機(jī)技術(shù)將向何處發(fā)展嗎?其實(shí)從各大計(jì)算機(jī)廠商最近的動(dòng)作,都可以看出來“Web服務(wù)將是下一代互聯(lián)網(wǎng)應(yīng)用的制高點(diǎn)”,而微軟的.NET藍(lán)圖和SUN ONE計(jì)劃的斗爭焦點(diǎn),也就是Web服務(wù)。Web服務(wù)就是一個(gè)嶄新的分布式計(jì)算模型,它是一系列標(biāo)準(zhǔn)的綜合(XML,SOAP,UDDI,WSDL和WSFL等)。它使得不同語言編寫的軟件能夠輕易的集成起來,使網(wǎng)絡(luò)資源和Web站點(diǎn)變成一種服務(wù)而不是混亂的垃圾場。不遠(yuǎn)的將來,我們就可以在家里點(diǎn)擊一下鼠標(biāo),就可以完成出門旅游的全部準(zhǔn)備工作,包括定飛機(jī)票,定旅游線路,定好房間等。請注意,這所有的一切都是Web站點(diǎn)間自動(dòng)完成的,再也不用象現(xiàn)在一樣,表面上是電子商務(wù),實(shí)際上很多環(huán)節(jié)都是人工操作。也許你會(huì)覺得這是天方夜談,不過就近的說,你也很有可能承接一個(gè)項(xiàng)目,要集成兩個(gè)企業(yè)的ERP系統(tǒng)。很有可能上游企業(yè)的系統(tǒng)是用Dephi編的,而下游企業(yè)的系統(tǒng)是用Java編的。你說你是Java高手,大家都看者你怎么做呢。所以啊,你還得學(xué)習(xí)新技術(shù),如Web服務(wù),而且你Dephi也要懂一點(diǎn)吧(Dephi6現(xiàn)在已經(jīng)提供Web服務(wù)的控件了)。你編的Java系統(tǒng),可能要和.NET集成,所以你.NET要懂一點(diǎn)吧?到最后,你可能發(fā)現(xiàn)你已經(jīng)成為Java高手了,但很多時(shí)間卻在搞別的技術(shù)。太極張三豐里說,最厲害的招式就是沒有招式,可能就是這個(gè)道理吧!

      因?yàn)閯倓偱d起,所以網(wǎng)上Web服務(wù)的資料不是很多,我還是給大家推薦幾個(gè)網(wǎng)站吧: 中國UDDI技術(shù)聯(lián)盟http:///developerWorks/cn/xml/index.shtml?csdnIBM可是Web服務(wù)的力推者

      嗚?你費(fèi)勁千心萬苦,總算成為Java高手了,怎叫人不由喜極而泣呢!是啊,真不容易,真不簡單,真叫人感動(dòng)??!那么打個(gè)電話告訴我吧,什么?我的電話號(hào)碼是多少?昏到,你打電話問不就知道了嗎,真是的??

      第五篇:黑馬程序員java培訓(xùn)就業(yè)班筆記:day05總結(jié)

      Day05 上午:

      1、數(shù)組的靜態(tài)初始化

      多種定義格式:

      Int[] arr=new int[]//標(biāo)準(zhǔn)格式,可以明確數(shù)組的數(shù)據(jù)類型,和數(shù)組名,但是不知道數(shù)組的長度

      Int arr[]=new int[] Int[] arr=new int[]{2,1,3,4,5,}//通過大括號(hào)可以標(biāo)示出數(shù)組中的內(nèi)容,此處最好別寫長度,因?yàn)槿菀壮鲥e(cuò),因?yàn)榧闯跏蓟瘜?shí)體,又初始化實(shí)體中的元素。

      Int[] arr={2,1,3,4,5};//可以明確數(shù)組的數(shù)據(jù)類型,和數(shù)組名,也可以知道數(shù)組中的內(nèi)容。

      2、arr.length:方便獲取數(shù)組中的元素個(gè)數(shù)的方式。

      3、操作數(shù)組的最基礎(chǔ)的思想以及核心思想:

      a)最基礎(chǔ)的思想:就是遍歷。什么是遍歷。

      Eg:int[] arr = new int[3];int[] arr = {4,8,9,2,6,9};//明確了數(shù)組的類型和長度,并明確了數(shù)組中元素的內(nèi)容。

      // int[] arr1 = new int[]{4,8,9};//方便獲取數(shù)組中的元素個(gè)數(shù)的方式,可以使用數(shù)組實(shí)體一個(gè)屬性。length System.out.println(“l(fā)en:”+arr.length);

      for(int x=0;x

      if(x%2==1)

      System.out.println(“arr[”+x+“]=”+arr[x]);//arr[0] = 4;}

      這就是遍歷的思想,獲取數(shù)組中的元素,通常會(huì)用到遍歷。

      b)核心思想:就是操作數(shù)組中元素的角標(biāo),角標(biāo)即索引,因?yàn)榇鏀?shù)據(jù)的最終目的就是取出數(shù)據(jù)使用,就是操作角標(biāo),操作動(dòng)作:

      1、給數(shù)組角標(biāo)上的元素賦值,2、獲取角標(biāo)上元素的值,存儲(chǔ)都得用角標(biāo)

      4、數(shù)組中常見的操作:

      a)獲取最值:

      思路:

      1、首先我們要定義一個(gè)功能完成獲取數(shù)組中最大值的動(dòng)作;

      2、定義個(gè)函數(shù)來實(shí)現(xiàn)這一功能;明確結(jié)果,整數(shù)數(shù)組中的最大值,int,明確是否有未知內(nèi)容參與運(yùn)算,參數(shù)列表中有一個(gè)參數(shù),數(shù)組類型int[],一定要注意這里是數(shù)組類型,不是int型;

      3、如何實(shí)現(xiàn)功能細(xì)節(jié)呢?

      1、對數(shù)組中的元素進(jìn)行比較,將比較后比較大的值進(jìn)行記錄,并參與下一次比較,當(dāng)數(shù)組中的元素都比較完成后,最大值就已經(jīng)被記錄下來了。

      2、每次比較的較大的值不確定,定義一個(gè)變量進(jìn)行記錄,該變量如何初始化呢?只要初始化為數(shù)組中的人一個(gè)元素即可。

      3、應(yīng)該讓數(shù)組中的元素自動(dòng)和該變量記錄的元素進(jìn)行比較,所以可以使用遍

      歷,獲取數(shù)組中的每一個(gè)元素。

      4、當(dāng)遍歷到元素比較變量中的記錄的元素大,用該變量記錄住更大的元素。

      5、遍歷結(jié)束后,變量存儲(chǔ)就是數(shù)組中的最大值。實(shí)現(xiàn)代碼:eg:

      Public static int getMax(int arr){ /.定變量記錄較大的值;

      Int max=arr[0];//初始化數(shù)組中的任意個(gè)元素; //對數(shù)組進(jìn)行遍歷比較

      For(int x=1;xmax)

      Max=arr[x];} Return max;} 同樣有另外一種方式獲取最大值 Public static int getMax(int[] arr){ Int maxIndex=0;//初始化為數(shù)組中一個(gè)元素的角標(biāo) For(int x=1;xarr[maxIndex])

      maxIndex=x;} Return arr[maxIndex];} b)排序:

      1、選擇排序:

      首先通過數(shù)組中元素的比較方式來分析:

      用數(shù)組中第一個(gè)角標(biāo)的元素與數(shù)組中第二個(gè)角標(biāo)的元素進(jìn)行比較,發(fā)現(xiàn)9比6大,進(jìn)行位置置換,此處應(yīng)該定義一個(gè)三方變量,用來記錄住置換過程的元素值,然后再用第一個(gè)角標(biāo)的元素與下一個(gè)角標(biāo)元素進(jìn)行比較,按照全面的原則進(jìn)行置換位置,如果前者小于后者,則不置換位置,一次比較,當(dāng)?shù)谝惠喗Y(jié)束之后第一個(gè)角標(biāo)出能取的該數(shù)組中最小的元素的值,然后再用第一個(gè)角標(biāo)的元素開始和下一個(gè)角標(biāo)的元素進(jìn)行比較,同理,當(dāng)?shù)诙喗Y(jié)束后,第二個(gè)角標(biāo)處獲取了該數(shù)組中的第二小的值。所以我們發(fā)現(xiàn)當(dāng)依次這樣比較下去,就可以對數(shù)組中的元素進(jìn)行排序,當(dāng)比較到arr.length-1元素時(shí),發(fā)現(xiàn)只剩下這一個(gè)元素,沒有其他元素和它進(jìn)行比較了。思路:

      1、首先定義一個(gè)功能函數(shù)對數(shù)組進(jìn)行排序,2、明確結(jié)果,沒有返回值,因?yàn)樗皇菍?shù)組進(jìn)行排序的一個(gè)動(dòng)作,明確是否有未知內(nèi)容參與運(yùn)算,有,數(shù)組類型int[] arr 實(shí)現(xiàn)代碼:

      Public static void selectSort(int[] arr){ For(int x=0;x

      if(arr[x]>arr[y]){

      Int temp=arr[x];Arr[x]=arr[y];Arr[y]=temp;} } }

      }

      優(yōu)化后的選擇排序:

      從上面的排序圖中我們可以知道,對數(shù)組中元素進(jìn)行置換位置的次數(shù)過多,也就是對堆內(nèi)存的操作頻繁,降低了性能,下面我們可以通過這種方式對性能優(yōu)化。

      思路:

      在棧內(nèi)存中我們定義兩個(gè)變量,分別用來記錄較小的元素的值和較小元素的角標(biāo),然后對其進(jìn)行初始化,至于初始化的值只要是數(shù)組中的任意元素即可,然后拿數(shù)組中的元素與它進(jìn)行比較,如果發(fā)現(xiàn)拿去比較的元素比變量中記錄的數(shù)值要小,那么就進(jìn)行位置置換,并記錄下較小的元素的角標(biāo),依次把數(shù)組中的元素遍歷完,就可以獲取數(shù)組中的最小元素的值和角標(biāo),然后我們拿初始化的值和獲取的最小的元素進(jìn)行位置的置換,這樣以來當(dāng)我們獲取了數(shù)組中的元素的最小的時(shí)候,堆內(nèi)存中的只用操作一次位置即可,這樣的就提高性能。實(shí)現(xiàn)代碼:

      Public static void selectSort_2(int[] arr){ For(int x=0;xarr[y])

      Num=arr[y];Index=y;} If(index!=x){ int temp = arr[x];arr[x] = arr[index];arr[index] = temp;

      } } } 注意:復(fù)習(xí)的時(shí)候添加注釋

      2、冒泡排序:

      首先通過排序方式來分析其步驟:

      通過排序方式,可以知道是用數(shù)組中的元素挨個(gè)比較,如果前面的元素的值比它下一個(gè)角標(biāo)的元素大,則進(jìn)行位置置換,然后再用第二個(gè)角標(biāo)的元素與下一個(gè)角標(biāo)的元素進(jìn)行比較,同樣如果下一個(gè)角標(biāo)的元素比它小,則進(jìn)行位置置換,這樣當(dāng)比較到arr.length-1個(gè)元素時(shí)已經(jīng)沒有 和它進(jìn)行的比較的元素了,當(dāng)?shù)谝惠啽容^結(jié)束后,我們可以知道最后一個(gè)角標(biāo)的元素為該數(shù)組中的最大值,按照同樣的原理進(jìn)行下一次比較,依次獲取了比較大的元素的值。

      實(shí)現(xiàn)代碼:

      Public static void bubbleSort(int[] arr){ For(int x=0;x

      If(arr[y]>arr[y+1]){

      //位置置換 } } } }

      c)折半查找:

      首先分析數(shù)組元素的查找方式:

      首先要明確數(shù)組時(shí)有序的。

      首先定義三個(gè)變量min、mid、max分來用來記錄最小角標(biāo)、中間角標(biāo)、最大角標(biāo),中間角標(biāo)的獲取為(min+max)/2;獲取中間角標(biāo)之后,就可以獲取中間角標(biāo)對應(yīng)的元素arr[mid];用我們所需要查找的key與中間角標(biāo)運(yùn)算進(jìn)行比較,如果key>arr[mid];那么此時(shí)min的位置就是mid的下一個(gè)角標(biāo),min=mid+1;然后再次獲取中間角標(biāo)的元素,mid=(min+max)/2,同時(shí)也獲取了中間角標(biāo)對應(yīng)的數(shù)組元素,arr[mid],然后同理,拿key與中間角標(biāo)的元素進(jìn)行比較.同樣的原則,依次比較,直到key==arr[mid]的時(shí)候獲取key.如果當(dāng)出現(xiàn)了min>max或者時(shí)候則說明我們要查找的key在該數(shù)組中布存在,return-1;

      實(shí)現(xiàn)代碼:

      Public static void binarySearch(int[] arr int key){ Int min,mid,max;Min=0;Max=arr.length-1;Mid=(min+max)>>1//相當(dāng)于/2,右移的效率比它要高 While(arr[mid]!=key){ If(key>arr[mid])Min=mid+1;Else if(key

      Min=mid-1;If(max>1;}

      Return mid;} 注意:復(fù)習(xí)的添加代碼注釋

      總結(jié):折半查找也稱二分查找,這種查找可以提高效率,但是被查找的數(shù)組的額元素必須是有序的。不能對無序的數(shù)組進(jìn)行排序后再用折半查找,因?yàn)檫@時(shí)候數(shù)組中元素的角標(biāo)已經(jīng)發(fā)生變化了。

      5、查表法思想:

      a)什么時(shí)候使用查表法?

      當(dāng)元素很多,而且這些元素與數(shù)組有對應(yīng)關(guān)系,而且這些數(shù)字都有角標(biāo)的規(guī)律的時(shí)候。

      擴(kuò)展:什么時(shí)候使用數(shù)組?

      當(dāng)同一類型的元素較多時(shí),就使用數(shù)組這個(gè)容器對數(shù)據(jù)進(jìn)行存儲(chǔ)。b)查表法思想的代碼體現(xiàn):

      0 1 2 3 4 5 6 7 10 11 12 13 14 15 '0', '1', '2', '3', '4','5', '6',' 7', '8', '9','A',' B', 'C' ,'D', 'E' ,'F' 我們發(fā)現(xiàn)十六進(jìn)制中一共有16個(gè)元素,而且每通過&15獲取的數(shù)字都再15之內(nèi),都有對應(yīng)的十六進(jìn)制元素,而且元素對應(yīng)的數(shù)字正好有規(guī)律,而且符合了數(shù)組這種容器的特點(diǎn)角標(biāo),那么可以將十六進(jìn)制的元素都存儲(chǔ)到數(shù)組中,將每次&15的結(jié)果作為角標(biāo)去查這個(gè)數(shù)組,就可以獲取到十六進(jìn)制的對應(yīng)的元素。這就是查表思想。

      代碼體現(xiàn):

      Public static void searchList(int num){ //定義一個(gè)十六進(jìn)制的元素表

      Char[] arr={'0', '1', '2', '3', '4','5', '6',' 7', '8', '9','A',' B', 'C' ,'D', 'E' ,'F'};//定義一個(gè)char類型元素的數(shù)組,用于存儲(chǔ)每次獲取到的十六進(jìn)制值。Char[] chs=new char[8];Int pos=chs.length;While(num!=0){ Int temp=num&15;Chs[--pos]=arr[temp];Num=num>>>4;} For(int x=pos;x

      通過上面我們可以知道那么是否可以定義這樣的一個(gè)功能函數(shù)呢?用來對十進(jìn)制、二進(jìn)制、八進(jìn)制、十六進(jìn)制進(jìn)行轉(zhuǎn)換?

      思路:

      1、明確結(jié)果,沒有返回值,只是對給定的數(shù)據(jù)轉(zhuǎn)換的功能。

      2、明確是否有未知內(nèi)容參與運(yùn)算,有,是什么?求的數(shù)值num,十六進(jìn)制是&15,八進(jìn)制是&7,二進(jìn)制是&1,那么&的這個(gè)是不確定的,我們定義為變量 base,當(dāng)這個(gè)數(shù)值通過&上這些數(shù)據(jù)后,要取出后面的數(shù)值,我們通過右移來實(shí)現(xiàn),但是各個(gè)進(jìn)制的不一樣右移的位置數(shù)也是不一樣的,十六進(jìn)制是無條件右移四位,八進(jìn)制是無條件右移三位,二進(jìn)制是無條件右移1位,所以這個(gè)數(shù)也是不確定的,定義變量 offset 實(shí)現(xiàn)代碼:

      //十進(jìn)制--二進(jìn)制

      public static void toBin(int num){ trans(num,1,1);} //十進(jìn)制--八進(jìn)制

      public static void toOctal(int num){ trans(num,7,3);} //十進(jìn)制--十六進(jìn)制

      public static void toHex(int num){ trans(num,15,4);} Public static void trans(int num,int base,int offset){ If(num==0){ Sop(0);;Return;} //定義一個(gè)十六進(jìn)制的元素表

      Char[] arr={0', '1', '2', '3', '4', '5', '6', ' 7', '8', '9', 'A',' B', 'C' ,' D', 'E' ,'F'};Char[] chs=new char[32];Int pos=chs.length;While(num!=0){ Int temp=num&base;Chs[--pos]=arr[temp];Num=num>>>offset;} For(ingt x=pos;x

      System.outr.println(chs[x]);} } 注意:復(fù)習(xí)的添加代碼注釋。

      這一章節(jié)自己還不是很熟悉,能理解,但是不能獨(dú)立寫出代碼,在以后的幾天內(nèi)要每天都要一遍,并自己獨(dú)立寫出代碼,做到思想理解透徹。先要產(chǎn)生一天的宏觀思想。復(fù)習(xí)方法:

      首先總結(jié)當(dāng)天學(xué)習(xí)的方法。遇到不會(huì)的先放到一邊。每天晚上睡著覺之前要回憶一遍。

      下載【黑馬程序員】Java基礎(chǔ) : Java語句筆記word格式文檔
      下載【黑馬程序員】Java基礎(chǔ) : Java語句筆記.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        黑馬程序員java培訓(xùn)就業(yè)班筆記:day10總結(jié)

        Day10總結(jié): 1、多態(tài)的特點(diǎn): 1、成員變量: 當(dāng)在子父類中出現(xiàn)了相同的非私有成員變量時(shí),在多態(tài)調(diào)用中的特點(diǎn): 在編譯時(shí):參考引用型變量所屬類中是否有調(diào)用的成員變量,如果有編譯通過,......

        黑馬程序員java培訓(xùn)就業(yè)班筆記:day06總結(jié)

        Day06總結(jié): 上午 1、二維數(shù)組 格式: Int arr=new int; 代表1維數(shù)組的個(gè)數(shù); 代表1維數(shù)組有三個(gè)元素; 內(nèi)存圖: 分析: 通過對內(nèi)存圖分布可知,首先在棧內(nèi)存中加載main......

        java基礎(chǔ)總結(jié)大全(筆記)

        一、基礎(chǔ)知識(shí): 1、JVM、JRE和JDK的區(qū)別:JVM(Java Virtual Machine):java虛擬機(jī),用于保證java的跨平臺(tái)的特性。 java語言是跨平臺(tái),jvm不是跨平臺(tái)的。JRE(Java Runtime Environmen......

        【黑馬程序員】Java之debug總結(jié)三

        【黑馬程序員】Java之debug總結(jié)三 之前寫了"Java之debug總結(jié)一","Java之debug總結(jié)二"共總結(jié)了5種debug方式,現(xiàn)在簡紹第6種,不足之處,敬請指正:(源碼在文章末尾處) 本文以chr......

        【黑馬程序員】Java之debug總結(jié)二

        【黑馬程序員濟(jì)南】Java之debug總結(jié)二 之前詳細(xì)描述了4種debug方式,現(xiàn)在簡紹第5種,不足之處,敬請指正:(源碼在文章末尾處) 五.maven項(xiàng)目debug 第一步:首先創(chuàng)建一個(gè)maven項(xiàng)目......

        黑馬程序員java培訓(xùn)就業(yè)班筆記:day09總結(jié)(最終五篇)

        Day09總結(jié): 上午: 1、final關(guān)鍵字:Eg:代碼實(shí)現(xiàn):Class Fu { Final void method { //code...訪問低層代碼} } Class Zi extends Fu { Void method { Sop("haha"); } } 以......

        好程序員學(xué)習(xí)筆記-Java網(wǎng)絡(luò)

        1、 網(wǎng)絡(luò)基礎(chǔ)知識(shí) 2、 JAVA網(wǎng)絡(luò)編程網(wǎng)絡(luò)與分布式集群系統(tǒng)的區(qū)別:每個(gè)節(jié)點(diǎn)都是一臺(tái)計(jì)算機(jī),而不是各種計(jì)算機(jī)內(nèi)部的功能設(shè)備。 Ip:具有全球唯一性,相對于internet,IP為邏輯地址。......

        java程序員面試題

        1、 你怎樣理解Struts,又那些配置文件,以及作用? 理解:http://ruixin.iteye.com/blog/899289 配置文件:struts.xml 作用:struts 框架mvc 實(shí)現(xiàn)低耦合,便于程序的維護(hù)~ 配置文件控制......