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

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

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

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

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

      JAVA學(xué)習(xí)日記

      時(shí)間:2019-05-15 11:31:17下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《JAVA學(xué)習(xí)日記》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《JAVA學(xué)習(xí)日記》。

      第一篇:JAVA學(xué)習(xí)日記

      第一天

      Javac –version 檢查JDK版本

      Path設(shè)置技巧

      JAVA_HOME環(huán)境變量 設(shè)置為bin前面的路徑 設(shè)置為Path = %JAVA_HOME%bin 避免對系統(tǒng)環(huán)境的頻繁修改造成錯(cuò)誤 path只支持可執(zhí)行文件 配置臨時(shí)環(huán)境變量 set path = XXXX 增加臨時(shí)環(huán)境變量 set path=XXX;%path% 環(huán)境變量從頭開始查找

      Hello World 任何事物的第一步

      代碼:計(jì)算機(jī)能識別的特殊格式的單詞 class Demo{ } 源程序經(jīng)過編譯 計(jì)算機(jī)能識別的文件 一次編譯到處運(yùn)行

      任何程序都有入口 主函數(shù)就是入口 被虛擬機(jī)調(diào)用 保證程序的獨(dú)立運(yùn)行

      Javac 檢查源代碼的正確性 保證語法正確 經(jīng)驗(yàn)來源于錯(cuò)誤

      java命令對應(yīng)虛擬機(jī)JVM 虛擬機(jī)將類文件加載入內(nèi)存

      classpath 類文件路徑

      將java的類文件目錄告訴JVM 未設(shè)置在當(dāng)前路徑 set classpath=c:xxxxx;加了分號虛擬機(jī)會在當(dāng)前目錄下查找類文件

      閱讀性加強(qiáng) set classpath=.;c:xxxxx;

      找不到類文件(1)類名錯(cuò)誤

      (2)set classpath設(shè)置

      java文件名 類名要一致

      第二天

      高級語言的特征:關(guān)鍵字 標(biāo)識符 注視 變量和常量 運(yùn)算符 語句 函數(shù) 數(shù)組 但是表現(xiàn)形式不同 掌握兩點(diǎn):(1)表現(xiàn)形式(2)什么時(shí)候用 關(guān)鍵字:被賦予特殊含義的單詞 關(guān)鍵字都是小寫 類名首字母大寫

      標(biāo)示符:程序中自定義的一些名稱

      標(biāo)示符組成:26個(gè)大小寫字母 數(shù)字 _ $符號(1)數(shù)字不可以開頭(2)不可以使用關(guān)鍵字 名字盡量要有意義 java中嚴(yán)格區(qū)分大小寫 標(biāo)識符可以做 類名 變量名 方法名

      下劃線 美元符號的作用 用于連接某些名稱

      文檔注釋可以用javadoc提取出來

      多行注釋不能嵌套

      注釋可以進(jìn)行代碼的調(diào)試 注釋不寫入字節(jié)碼 代碼中一定要寫注釋

      代碼是思想表現(xiàn)形式的一種

      寫代碼前必須格式 /* 需求:XXXX 思路: 1.XXXX 2.。。。步驟: 1.XXXXX */

      常量表示不能改變的數(shù)值

      常量分類:整數(shù)常量 小數(shù)常量 布爾常量 字符常量 字符串常量 null常量(只有一個(gè)值null)

      整數(shù)的進(jìn)制表現(xiàn)形式:二進(jìn)制 八進(jìn)制 十進(jìn)制 十六進(jìn)制 八進(jìn)制占二進(jìn)制三位 十六進(jìn)制占二進(jìn)制4位 常用的是二進(jìn)制和十六進(jìn)制

      負(fù)數(shù)在內(nèi)存中是以補(bǔ)碼的形式存在的 負(fù)數(shù)二進(jìn)制最高位是1 整數(shù)是0 補(bǔ)碼的算法:負(fù)數(shù)的絕對值取反加1

      變量的概念:

      內(nèi)存中的一個(gè)存儲區(qū)域 該區(qū)域有自己的名稱和類型

      該區(qū)域的數(shù)據(jù)可以在同一個(gè)類型的范圍內(nèi)不斷變化

      作用:用來不斷的存放同一類型的常量,并可以重復(fù)使用 變量的格式

      數(shù)據(jù)類型 變量名 = 初始化值 變量就如同數(shù)學(xué)中的未知數(shù) 當(dāng)數(shù)據(jù)不確定時(shí)就定義變量 Java的數(shù)據(jù)類型

      變量不能重復(fù)定義 局部變量必須初始化

      實(shí)例變量可以不初始化 虛擬機(jī)會為實(shí)例變量初始化

      運(yùn)算兩端必須都是相同類型的變量 Java整形默認(rèn)是int 浮點(diǎn)默認(rèn)是double 強(qiáng)制轉(zhuǎn)換必須小心使用,會丟失精度 int x = 2;byte b = 3;b =(byte)(x+b);ASII碼表 美國信息交換表 GB2312 國標(biāo)表 GBK 國標(biāo)擴(kuò)展表

      Unicode表 國際標(biāo)準(zhǔn)碼表 強(qiáng)轉(zhuǎn)例子: byte b = 4;b = 3+7;byte b1 = 3;byte b2 = 4;b = b1+b2;//err 精度損失

      分析:byte b =4;4在java中默認(rèn)是int型 編譯器會先檢查所賦的值在-128~127范圍內(nèi),在的話自動(dòng)強(qiáng)轉(zhuǎn)為byte類型 b = b1+b2;//err 精度損失

      b1,b2 為變量范圍不確定 編譯器不能確定值,所以編譯報(bào)錯(cuò) 注意:右邊無法確定則無法判斷并賦值,編譯無法通過 int 類型

      int x1= Integer.MAX_VALUE;int x2 = 2;int x = x1 + x2;會產(chǎn)生精度丟失 負(fù)數(shù)只參考被取余的數(shù)

      5%-2 == 1 int a = 3,b;b = a++;內(nèi)存中的過程:a變量先在內(nèi)存中劃一塊臨時(shí)區(qū)域保存a變量的值,再自增運(yùn)算,最后將臨時(shí)區(qū)域的值賦值給b變量 面試小例子1:int i =3;i =i ++;//i的值為3 過程:i=i+1 i = i在臨時(shí)區(qū)域的值 面試小例子2:short s = 3;

      s+=4;//加等會在底層自動(dòng)轉(zhuǎn)換類型 與short s =3 類似

      s = s+4;//error 損失精度

      第三天 運(yùn)算符

      比較運(yùn)算符運(yùn)算完的結(jié)果必須是true或者是false 邏輯運(yùn)算符:用于連接兩個(gè)boolean類型的表達(dá)式 & 與符號運(yùn)算特點(diǎn): true & true true true & false false false & false false 與運(yùn)算兩邊只要有一邊為false結(jié)果為false 只有兩邊都為true結(jié)果為true | 或運(yùn)算符特點(diǎn): true | true true true | false true false | false false 或運(yùn)算兩邊只要有一邊為true結(jié)果為true 只有兩邊都為false結(jié)果為false ^ 異或運(yùn)算符 和或有點(diǎn)不一樣 true | true false true | false true false | false false 異或運(yùn)算規(guī)律:相同為false 不同為true 面試細(xì)節(jié):

      && 短路與 當(dāng)左邊為false時(shí)右邊不運(yùn)算 || 短路或 當(dāng)左邊為true時(shí)右邊不運(yùn)算

      位運(yùn)算符

      & 運(yùn)算

      可以取二進(jìn)制數(shù)的某一段

      ^ 異或符號 一個(gè)數(shù)異或同一個(gè)數(shù)兩次,結(jié)果還是這個(gè)數(shù) 6^3^3 = 6;~ 取反

      一個(gè)正數(shù)的反碼是這個(gè)正數(shù)的負(fù)數(shù)減一 6的反碼是-7

      移位運(yùn)算符號

      >> 右移 3>>2 右移2位 符號位補(bǔ)最高位 右移n位其實(shí)就是該數(shù)字除以2^n次方

      << 左移 3<<2 左移兩位 最低位補(bǔ)零 左移n位其實(shí)就是該數(shù)字乘以2^n次方

      >>> 無符號位右移

      3>>>2 無符號位右移2位

      對兩個(gè)值進(jìn)行互換高效方法(不用第三方變量)int a = 5,b =3;a = a^b;b = a^b;a = a^b;

      三元運(yùn)算符

      (表達(dá)式)?表達(dá)式1 : 表達(dá)式2

      流程控制:順序結(jié)構(gòu) 判斷結(jié)構(gòu) 選擇結(jié)構(gòu) 循環(huán)結(jié)構(gòu) If語句時(shí)候要注意寫{ }

      簡化格式簡化代碼書寫但是造成代碼可讀性變差 簡寫格式什么時(shí)候用?

      當(dāng)if else運(yùn)算后有具體結(jié)果時(shí)可以使用三目運(yùn)算符替代

      局部代碼塊可以節(jié)省內(nèi)存空間 可以定義局部變量的生命周期

      代碼復(fù)用性 當(dāng)多個(gè)條件對應(yīng)一個(gè)結(jié)果時(shí),可以講條件合并

      switch表達(dá)式中的數(shù)據(jù)類型 byte short char int String enum switch{

      case 1: case 2:

      } switch多個(gè)對應(yīng)關(guān)系

      if和switch的應(yīng)用

      if:1.對具體的值進(jìn)行判斷

      2.對區(qū)間判斷

      3.對運(yùn)算結(jié)果是boolean類型的表達(dá)式進(jìn)行判斷 switch:1.對具體的值進(jìn)行判斷

      2.值的個(gè)數(shù)通常是固定的

      對于幾個(gè)固定的值判斷,建議使用switch語句,因?yàn)閟witch語句會將具體的答案都加載入內(nèi)存,效率相對高一些

      循環(huán)結(jié)構(gòu)的代表性結(jié)構(gòu)有三個(gè) while(){} do{} while()for(){} do{}while()特點(diǎn)無論條件如何循環(huán)體都要執(zhí)行

      累加思想 計(jì)數(shù)器思想

      for(表達(dá)式1;表達(dá)式2;表達(dá)式3){} 表達(dá)式2必須為boolean表達(dá)式 表達(dá)式1和3可以為任意表達(dá)式 for和while的區(qū)別

      1.for和while可以互換

      2.格式上的不同,在使用上有點(diǎn)小區(qū)別

      控制循環(huán)的變量for只在for范圍內(nèi)有效 while在范圍大些 無限循環(huán)最簡單的形式 while(true){} for(;;)for第二個(gè)表達(dá)式默認(rèn)為true 什么時(shí)候使用循環(huán)結(jié)構(gòu)

      當(dāng)對某些代碼執(zhí)行多次時(shí),使用循環(huán)結(jié)構(gòu)完成

      當(dāng)對一個(gè)條件進(jìn)行一次判斷是,可以使用if語句 當(dāng)對一個(gè)條件進(jìn)行多次判斷是可以使用while語句

      第四天

      大圈套小圈思想:有一種重復(fù)的情況,每種情況對應(yīng)其他的重復(fù)情況多次 轉(zhuǎn)義字符 n 回車 t 制表符 b 退格

      r按下回車 Window系統(tǒng)中回車其實(shí)是有兩個(gè)符號組成的 rn Linux中回車符是 n 制表符 tab break:跳出

      break作用范圍:要么是switch語句,要么是循環(huán)語句

      記?。寒?dāng)break語句單獨(dú)存在時(shí),下面不要定義其他語句,因?yàn)閳?zhí)行不到會編譯錯(cuò)誤 break跳出最近的循環(huán) continue :繼續(xù) 作用范圍:循環(huán)結(jié)構(gòu)

      continue結(jié)束本次循環(huán),繼續(xù)下次循環(huán)

      函數(shù)就是定義在類中的具有特定功能的小程序 函數(shù)特點(diǎn):

      (1)函數(shù)提高代碼的復(fù)用性,簡化書寫(2)定義函數(shù)將功能代碼封裝,(3)便于功能復(fù)用(4)函數(shù)被調(diào)用才執(zhí)行

      注意:函數(shù)中只能調(diào)用函數(shù),不能定義函數(shù)

      如何定義一個(gè)函數(shù) 通過兩個(gè)明確來完成

      明確一:這個(gè)功能的結(jié)果是什么?

      明確函數(shù)返回值

      明確二:這個(gè)功能實(shí)現(xiàn) 過程中是否需要位置內(nèi)容參與?

      明確參數(shù)列表

      注意:返回值類型和參數(shù)類型沒有直接關(guān)系

      函數(shù)內(nèi)存加載過程:

      javac命令啟動(dòng)java編譯器 java 命令 啟動(dòng)java虛擬機(jī)

      在運(yùn)行時(shí)期java虛擬機(jī)尋找主函數(shù)main()

      函數(shù)的重載 Overload 增強(qiáng)閱讀性 兩同一不同 1.同一個(gè)類中

      2.相同的方法名

      3.不同的參數(shù)列表

      注意:函數(shù)重載與返回值無關(guān)

      Java是嚴(yán)謹(jǐn)性的語言,如果函數(shù)出現(xiàn)調(diào)用的不確定性,會編譯失敗

      函數(shù)重載使用動(dòng)態(tài)綁定,當(dāng)程序運(yùn)行時(shí),JVM函數(shù)標(biāo)簽存入一張表中,當(dāng)調(diào)用函數(shù)時(shí)在表中查詢相應(yīng)的參數(shù)類型,即可調(diào)用相應(yīng)的方法

      函數(shù)的重寫:Override: 1.在不同的類中

      2.相同的方法名和參數(shù)類表

      3.重寫函數(shù)的權(quán)限要比被重寫的函數(shù)權(quán)限大

      4.函數(shù)的返回值是被重寫的函數(shù)的返回值的子類或者相同

      數(shù)組:同一種數(shù)據(jù)類型的集合,其實(shí)數(shù)組就是一個(gè)容器 數(shù)組格式:靜態(tài)數(shù)組:int[] arr = new int[]{0,1,2,3,4};

      動(dòng)態(tài)數(shù)組:int[] arr = new int[length];

      arr[0] = 0;

      arr[1] = 1;

      …………

      arr[length-1] = n;JVM內(nèi)存的劃分 1.寄存器

      cpu 2.本地方法區(qū)

      與所在系統(tǒng)相關(guān) 3.方法區(qū)

      4.棧內(nèi)存

      5.堆內(nèi)存

      棧內(nèi)存:存儲的都是局部變量(定義在方法中的變量),而且變量所屬的作用域一旦結(jié)束,該變量自動(dòng)釋放 { }局部代碼塊 限定局部變量的生命周期

      動(dòng)態(tài)數(shù)組創(chuàng)建后會默認(rèn)初始化

      堆內(nèi)存

      存儲的是數(shù)組和對象 凡是new出來的對象 堆內(nèi)存不會隨時(shí)釋放

      隊(duì)中存儲的是實(shí)體,實(shí)體中存儲多個(gè)數(shù)據(jù) 特點(diǎn):

      1. 每一個(gè)實(shí)體都有一個(gè)首地址值

      2. 堆內(nèi)存中每一個(gè)變量都有默認(rèn)初始化值,根據(jù)類型不同而不同,整數(shù)是0,小數(shù)是0.0或0.0f boolean false char ‘u0000’(unicode碼)3. 垃圾回收機(jī)制

      第五天

      數(shù)組中常見的問題 1.角標(biāo)越界異常 2.空指針異常 格式一:

      需要一個(gè)容器,但是不明確容器具體的數(shù)據(jù) 格式二

      需要一個(gè)容器,存儲已知的具體數(shù)據(jù)

      數(shù)組常見操作 基本動(dòng)作:存、取

      核心思想:對角標(biāo)的操作

      獲取最值的思路:

      1.定義一個(gè)變量存儲最值 2.比較數(shù)組的值得到最大值 3.存儲最大值

      排序:

      選擇排序和冒泡排序

      選擇排序:大圈套小圈思想

      選擇排序:

      for(int i = 0;i

      for(int j =i+1;jarr[j]){ temp =arr[i];arr[j] = arr[i];arr[j] = temp;} } } 性能提升的選擇排序

      for(int i = 0;i

      int num = arr[i];

      int index = i;

      for(int j =i+1;jarr[j]){ num = arr[j];index = j;} } If(index!= i){ int temp = arr[i];arr[i] = arr[index];arr[index] = temp;} }

      冒泡排序:

      解釋:外層循環(huán)-1 是因?yàn)樽詈笠粋€(gè)數(shù)不用比較 外層循環(huán)控制比較的大次數(shù)

      內(nèi)層循環(huán)-1是為了不將角標(biāo)越界

      -i 是為了控制每次比較的元素?cái)?shù)量

      for(int i = 0;iarr[j+1]){ temp =arr[j];arr[j] = arr[j+1];arr[j+1] = temp;} } } 最快的排序:希爾排序

      查找:

      public static int getIndex(int[] arr,int num){

      for(int i =0,i

      if(arr[i] == num)

      return i;} return-1;}

      折半查找法:二分法 數(shù)組必須是有序的 //方法一

      public static int binserach(int[] arr,int key){

      int left = 0;

      int right = arr.length-1;

      int mid =(left+right)/2;

      while(arr[mid]!=key){

      if(arr[mid]>key){

      right = mid-1;

      mid =(left+right)/2;

      }

      else if(arr[mid]

      left = mid+1;

      mid =(left+right)/2;

      }

      if(left>right)return-1;

      }

      return mid;

      }

      //方法二

      public static int halfserach(int[] arr,int key){

      int left = 0;

      int right = arr.length-1;

      while(left<=right){

      int mid =(left+right)>>1;

      if(arr[mid]

      left = mid+1;

      else if(arr[mid]>key)

      right = mid-1;

      else return mid;

      }

      return-1;

      } 面試題:

      給定一個(gè)有序的數(shù)組,如果往該數(shù)組中存儲一個(gè)元素,并保證這個(gè)數(shù)組還是有序的,那么這個(gè)元素的存儲的角標(biāo)位如何獲取

      思路:用折半查找法查找保證數(shù)組有序的位置

      要放的位置就是在最后一次比較left和right角標(biāo)的時(shí)候left的值

      public static int halfserach(int[] arr,int key){

      int left = 0;

      int right = arr.length-1;

      while(left<=right){

      int mid =(left+right)>>1;

      if(arr[mid]

      left = mid+1;

      else if(arr[mid]>key)

      right = mid-1;

      else return mid;

      }

      return min;

      } Arrays.binarySerach();當(dāng)數(shù)不存在時(shí)返回插入點(diǎn)負(fù)值-1 將一個(gè)整數(shù)的16進(jìn)制表現(xiàn)形式 public static String toHex(int num){

      char[] nums = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};

      return nums[(num>>4)&0xf]+""+nums[num&0xf];

      } 第六天

      二維數(shù)組定定義方法 方法一:

      int[][] arr = new arr[2][3];方法二:

      int[][] arr = new arr[2][];arr[0] = new int [3];..........初始化

      int[][] arr = {{1,2,3}, {4,5,6}, {7,8,9}};

      面向?qū)ο?/p>

      面向過程:舉例:大象裝進(jìn)冰箱 打開冰箱-> 存儲大象->關(guān)上冰箱 對于面向過程思想強(qiáng)調(diào)過程(動(dòng)作)C語言

      面向?qū)ο笫且环N思想

      面向?qū)ο髲?qiáng)調(diào)對象(實(shí)體)

      總結(jié):面向?qū)ο缶褪菍ο蟮姆椒ㄟM(jìn)行封裝,不關(guān)注具體實(shí)現(xiàn)的具體步驟 C++ Java C#

      特點(diǎn):

      1.面向?qū)ο缶褪且环N常見的思想,符合人們的思考習(xí)慣 2.面向?qū)ο蟮某霈F(xiàn),將復(fù)雜問題簡單化

      3.面向?qū)ο蟮某霈F(xiàn),讓曾經(jīng)在過程中的執(zhí)行者,變成了對象中的指揮者

      名詞定義法 人開門 人是一個(gè)對象 門是一個(gè)對象

      類與對象的關(guān)系:用java語言對現(xiàn)實(shí)生活中的事物進(jìn)行描述,通過類的形式來體現(xiàn)的 對象:其實(shí)就是該類事物實(shí)實(shí)在在存在的個(gè)體 類是某一類對象的抽象體現(xiàn) 類:事物的描述

      對象:該類事物的實(shí)例,在java中通過new來創(chuàng)建的 成員:成員變量(屬性)

      成員函數(shù)(行為)

      一旦產(chǎn)生對象,對象中存在類中的內(nèi)容

      成員變量和局部變量的區(qū)別:

      1.成員變量定義在類中,整個(gè)類中都可以訪問

      局部變量定義在函數(shù),語句,局部代碼塊中,只在多數(shù)的區(qū)域有效 2.成員變量存在于堆內(nèi)存對象中

      局部變量存在以棧內(nèi)存的方法中

      3.成員變量隨著對象的創(chuàng)建而存在,綏中對象而消亡

      局部變量隨著所屬的區(qū)域執(zhí)行而存在,隨著所屬區(qū)域消亡而釋放 4.成員變量有默認(rèn)初始化值

      局部變量沒有默認(rèn)初始化值必須程序員手動(dòng)初始化 5.成員變量可以不初始化

      局部變量必須要初始化

      匿名對象

      1.當(dāng)對象方法僅進(jìn)行一次調(diào)用的時(shí)候,就可以簡化為匿名對象 2.匿名對象可以作為實(shí)際參數(shù)進(jìn)行傳遞

      面向?qū)ο笕筇匦裕悍庋b、繼承、多態(tài)

      封裝: 隱藏對象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對外提供公共訪問方式 好處:將變量隔離、便于使用、提高復(fù)用性、保證數(shù)據(jù)安全

      封裝原則:

      將不需要對外提供的隱藏起來

      注意:私有僅僅是封裝的一種體現(xiàn)而已 保證數(shù)據(jù)的安全,隱藏代碼

      java最小的封裝體是函數(shù)

      第七天 構(gòu)造函數(shù)

      特點(diǎn):1.函數(shù)名與類名一致

      2.不能定義函數(shù)返回值類型

      3.沒有返回值 class Human{

      private String name;

      private int age;

      public Human(String name){//定義一個(gè)有參數(shù)的構(gòu)造函數(shù)

      this.name = name;} } 構(gòu)造函數(shù):在構(gòu)建創(chuàng)造對象時(shí)調(diào)用的函數(shù) 構(gòu)造函數(shù)作用:給對象進(jìn)行初始化 創(chuàng)建對象都必須通過構(gòu)造函數(shù)初始化

      一個(gè)類中如果沒有定義構(gòu)造函數(shù),那么該類中就有一個(gè)默認(rèn)的空參數(shù)構(gòu)造函數(shù) 如果在類中定義了指定的構(gòu)造函數(shù)就沒有默認(rèn)的構(gòu)造函數(shù)

      一般函數(shù)和構(gòu)造函數(shù)的區(qū)別

      構(gòu)造函數(shù):對象創(chuàng)建時(shí)就會調(diào)用與之對應(yīng)的構(gòu)造函數(shù),對對象初始化 一般函數(shù):對象創(chuàng)建后,需要函數(shù)功能時(shí)候才會調(diào)用 構(gòu)造函數(shù):對象創(chuàng)建時(shí)會調(diào)用,只調(diào)用一次 一般函數(shù):對象創(chuàng)建后,可以被調(diào)用多次 什么時(shí)候定義構(gòu)造函數(shù)

      在描述事物時(shí),該事物已經(jīng)存在的屬性

      (Overload)函數(shù)重載:增加復(fù)用性,增強(qiáng)閱讀性 構(gòu)造函數(shù)內(nèi)存分配

      構(gòu)造函數(shù)中有return語句

      當(dāng)成員變量和局部變量重名,可以用關(guān)鍵字this來區(qū)分 this:代表對象,代表當(dāng)前函數(shù)所屬對象的引用 誰調(diào)用this代表誰

      注意:一個(gè)類中的成員想要被執(zhí)行必須有對象 this也可以在構(gòu)造函數(shù)中調(diào)用其他構(gòu)造函數(shù)

      注意:只能 定義在構(gòu)造函數(shù)第一行,因?yàn)槌跏蓟瘎?dòng)作必須先執(zhí)行 只要在本類中使用本類屬性或方法使用this

      static關(guān)鍵字

      增強(qiáng)代碼復(fù)用性 static特點(diǎn):

      1. static是一個(gè)修飾符,用于修飾成員 2. static修飾的成員被所有對象共享

      3. static優(yōu)先于對象存在,因?yàn)閟tatic的成員隨著類的加載就已經(jīng)存在了 4. static修飾的成員可以以 類名.成員變量 方式調(diào)用

      5. static修飾的數(shù)據(jù)是共享數(shù)據(jù),對象中的存儲是特有的數(shù)據(jù) 成員變量和類變量的區(qū)別 1.兩個(gè)變量的生命周期不同

      成員變量隨著對象的創(chuàng)建而存在,隨著對象的被回收而釋放

      類變量隨著類的加載而存在,隨著類的消失而消失 2.調(diào)用方式不同

      成員變量只可以被對象調(diào)用 類變量可以被類名和對象調(diào)用 3.別名不同 成員變量為實(shí)例變量 靜態(tài)變量稱為類變量 4.成員變量在堆中

      類變量在方法區(qū)的靜態(tài)去(共享數(shù)據(jù)區(qū))

      方法存儲在【方法區(qū)】中

      方法中的代碼也存放在方法區(qū) static使用注意事項(xiàng): 1.靜態(tài)方法只能訪問靜態(tài)成員。(非靜態(tài)可以訪問靜態(tài)和非靜態(tài)成員)2.靜態(tài)方法中不可以定義this和super關(guān)鍵字 3.(main)主函數(shù)是靜態(tài)的

      public static void main(String[] args)主函數(shù)特殊之處: 1.格式固定 2.被JVM所識別和調(diào)用 public:因?yàn)闄?quán)限必須是最大的

      static:不需要對象的,直接用主函數(shù)所屬類名調(diào)用即可 void:主函數(shù)沒有具體的返回值

      main:函數(shù)名,不是關(guān)鍵,只是一個(gè)JVM識別的固定的名字

      String[] args:主函數(shù)的參數(shù)列表,是一個(gè)數(shù)組類型的參數(shù),而且元素都是字符串類型

      主函數(shù)留參數(shù)原因:程序員將自定義的參數(shù)傳入程序,使程序自定義性更高

      類加載:類在什么時(shí)候用什么時(shí)候加載

      靜態(tài)什么時(shí)候用 1.靜態(tài)變量

      當(dāng)分析對象所具備的成員變量的值都是相同的 當(dāng)這個(gè)成員可以被靜態(tài)修飾 2.靜態(tài)方法

      該函數(shù)功能是否訪問到對象中的非靜態(tài)數(shù)據(jù)

      靜態(tài)代碼塊

      隨著類的加載而執(zhí)行,而且只執(zhí)行一次 作用:

      用于給類進(jìn)行初始化

      執(zhí)行順序:

      類加載->靜態(tài)代碼塊->構(gòu)造代碼塊->構(gòu)造函數(shù)

      構(gòu)造代碼塊:可以對所有對象初始化

      第二篇:Java學(xué)習(xí)日記

      Java學(xué)習(xí)日記

      1,一個(gè)文件里可編寫多個(gè)類,一個(gè)文件里不能有兩個(gè)public類。獨(dú)立運(yùn)行的類必須有main()函數(shù)。

      2,Print()不換行,println()打印新東西之前會換行。3,在set classpath前后不能有空格,不能有中文符號。

      4,三種注釋方法://、/*…*/、/**….*/,/*….*/不能嵌套,注釋功能有:說明程序的功能,可以取消代碼,或者是回復(fù)代碼。

      5,標(biāo)識符:由字母、數(shù)字、下劃線、美元符號組成,不能以數(shù)字、關(guān)鍵字開頭。

      6,常量:不變的數(shù)值。有整型,長整型,單精度、雙精度、布爾常量、字符常量、字符號常量。單精度常量以’f’結(jié)尾。

      7,變量就是系統(tǒng)為程序分配的一塊內(nèi)存單元,用來存儲數(shù)據(jù)。變量須先定義后使用,不允許嵌套定義。

      8,低字節(jié)的類型可以轉(zhuǎn)換成高字節(jié)的類型,高字節(jié)的類型不可以轉(zhuǎn)換成低字節(jié)。

      9,流程控制:if若有多條語句最好用大括號括起來。問號表達(dá)式:y=x>0?x:-x;若表達(dá)式為真,結(jié)果為x,反之為-x.10,Switch()語句只接受int、byte、char、short類型數(shù)據(jù),switch語句用break,多個(gè)條件執(zhí)行相同命令:case 1:

      case 2:…… break;

      11,while語句后若有“;”,不是不執(zhí)行該語句,而是一直在執(zhí)行空語句。12,do..while..語句不管三七二十一都執(zhí)行該語句,直到while語句為假,且while()后有“;”。

      13,system.in.read():從鍵盤上讀取數(shù)據(jù);

      14,定義數(shù)組:int[] x或 int x[];arraycopy數(shù)組拷貝。

      15,面向?qū)ο笕筇卣鳎悍庋b、繼承、多態(tài)。一個(gè)類中方法可以訪問同類成員。若局部變量和成員變量名字一樣,則成員變量隱藏。16,一個(gè)類中方法可以訪問同類的成員變量和局部變量。

      17,“==”與“equals()”的區(qū)別:“==”是比較兩個(gè)對象的值是否相同,而equals()是比較兩個(gè)對象的內(nèi)容是否相同。例如: String str1=new String(“abc”);String str2=new String(“abc”);String str3=str1;If(str1==str2)System.out.println(“true”);System.out.println(“false”);Else

      則結(jié)果返回為false。因?yàn)閟r1和str2在堆中首地址不一樣,而str1和str3首地址是一樣的。若 If(str1.equals(str2))

      System.out.println(“true”);System.out.prinltn(“false”);Else

      則結(jié)果返回的是true,因?yàn)楸容^的是內(nèi)容。

      18,用private修飾的成員變量,在同一類中可以訪問,在其他類中不可以訪問。程序代碼要求強(qiáng)內(nèi)聚弱耦合

      19,構(gòu)造方法:和類名一樣,無返回值,不能用return語句。實(shí)例對象一產(chǎn)生就立馬調(diào)用構(gòu)造方法,有幾個(gè)實(shí)例對象就調(diào)用幾次,一次完成對實(shí)例對象的初始化,若沒有定義構(gòu)造函數(shù),系統(tǒng)會自動(dòng)生成一個(gè)空構(gòu)造函數(shù),也可以進(jìn)行重載。若定義了構(gòu)造函數(shù),則不再產(chǎn)生構(gòu)造函數(shù)。了解構(gòu)造函數(shù)執(zhí)行過程。

      20,finalize()方法類似于C++中析構(gòu)函數(shù),在被清除之前會調(diào)用這個(gè)函數(shù)。21,static靜態(tài)方法只能直接調(diào)用同類中其他的靜態(tài)成員,而不能訪問非靜態(tài)成員。靜態(tài)方法在使用之前不用創(chuàng)建任何對象,而非靜態(tài)對象在使用之前必須先創(chuàng)建實(shí)例對象。靜態(tài)方法不以任何方式調(diào)用this和super方法

      22,內(nèi)部類:在類中直接定義內(nèi)部類,內(nèi)部類可以訪問外部類成員變量。在程序塊中均可定義內(nèi)部類。

      23,類的繼承:在java中只支持單繼承,但類可以有多層繼承,子類繼承了父類所有的成員變量和成員方法,但不繼承父類的構(gòu)造方法,可使用super方法調(diào)用父類的構(gòu)造方法。

      24,final()可聲明類、屬性、方法,若聲明為類,則該類不被繼承。若聲明為變量,則該變量變?yōu)槌A?。若聲明為方法,則該方法在子類中不能被覆蓋。25,含有抽象方法的類稱為抽象類。抽象方法:abstract int aa(int x,int y);一般方法:int aa(int x,int y){ 程序代碼 }

      兩者的區(qū)別:前者必須由abstract修飾,只能聲明,不能實(shí)例化,沒有大括號;后者有大括號,說明實(shí)現(xiàn)了代碼,不是抽象方法。

      26,特殊的抽象類稱為接口,接口中所有的方法都是抽象的。一個(gè)類用implements去實(shí)現(xiàn)一個(gè)接口的所有方法。27,一個(gè)類繼承了另一個(gè)類,不能使用比繼承類的訪問權(quán)限更低的權(quán)限去訪問該類。

      28,del person.class 刪除person字節(jié)碼;javac *.java:編譯所有源文件。29,a instanceof B:判斷a是否是B的一個(gè)實(shí)例對象。對象的類型轉(zhuǎn)換:子類可以轉(zhuǎn)換成父類。Object是所有類的父類。

      30,異常是非致命的錯(cuò)誤,不是語法錯(cuò)誤。對異常處理用try….catch..。用throws關(guān)鍵字拋出異常,也可以自定義異常。try后面可以跟多個(gè)catch捕獲多個(gè)異常。finally語句無論如何都要執(zhí)行,沒有異常也會執(zhí)行。

      31,包,package語句,為java源文件的第一條語句,若無包則為缺省無包。同一個(gè)包中的類可以相互調(diào)用,不必寫上包名。若為類加上包,則應(yīng)將源文件中所有類都存到該包中。同一包中輛各類不一定在一個(gè)目錄上。

      32,訪問控制:類本身有兩種訪問控制:public和默認(rèn)。父類不能是private和protected,否則子類無法繼承。默認(rèn)修飾的類只被同一包中的所有類訪問。33,進(jìn)程:正在進(jìn)行的程序。線程:一個(gè)程序內(nèi)部的一條執(zhí)行線索,每個(gè)線程上所要運(yùn)行的程序代碼段是多線程,用Thread類創(chuàng)建線程。

      34,后臺線程:如果對某線程對象在啟動(dòng)(調(diào)用start方法)前調(diào)用了setDaemon(true)方法,這個(gè)線程就變成了后臺線程。只要還有一個(gè)前臺線程在運(yùn)行,這個(gè)進(jìn)程就不會結(jié)束。如果一個(gè)進(jìn)程中只有后臺線程在進(jìn)行,這個(gè)進(jìn)程就會結(jié)束。Pp.join()的作用是把pp所對應(yīng)的線程合并到調(diào)用pp.join();語句的線程中。35,單線程和多線程的區(qū)別:必須等到run()調(diào)用后才實(shí)現(xiàn)

      36,要實(shí)現(xiàn)多線程必須要編寫一個(gè)繼承了Thread類的子類,子類要覆蓋Thread類的run方法,在子類run方法中調(diào)用正在新程序中運(yùn)行的程序代碼,啟動(dòng)一個(gè)新線程是調(diào)用Thread類的start方法,Thread類對象的start方法產(chǎn)生一個(gè)新線程,并在該線程上運(yùn)行Thread類對象中的run方法,控制線程是否結(jié)束。37,產(chǎn)生一個(gè)TestThread對象,四個(gè)tt.start()線程,共同去賣同100張車票: TestThread tt =new TestThread();tt.start();tt.start();tt.start();tt.start();

      38,多個(gè)線程共享同一數(shù)據(jù)就會發(fā)生線程安全問題。

      39,線程間的通信:wait():當(dāng)前線程放棄監(jiān)視器并進(jìn)入睡眠狀態(tài)直到其他線程進(jìn)入同一監(jiān)視器并調(diào)用notify()為止。

      40,API:應(yīng)用程序編程接口。Windous API:WIndous操作系統(tǒng)提供的各種函數(shù)。Java API:JDK提供的各種java類 41,java開發(fā)工具軟件的基本特點(diǎn):集成編輯軟件功能,使用工程化管理,產(chǎn)生應(yīng)用程序的基本框架,支持調(diào)試,提供各種輔助工具。

      42,JCreator Pro:一個(gè)工作區(qū)可以管理多個(gè)工程,只能有一個(gè)活動(dòng)工程。使用該軟件時(shí)不用完全記住函數(shù)或者參數(shù),因?yàn)橛刑崾荆?3,String 類對象中的內(nèi)容一旦被初始化就不能在改變。而stringBuffer類用于封裝,內(nèi)容可以改變。

      44,indexOf(int ch)方法用于返回一個(gè)字符在字符串中第一次出現(xiàn)的位置,若沒有該字符,返回-1.45,集合類,用于存儲一組對象,其中每個(gè)對象稱為元素,常用到的有:Vetor、Enumeration、ArrayList等。

      46,從鍵盤上讀取數(shù)字:int b=System.in.read();Vector.addElement():向Vector中添加元素。

      47,Collection,Set與List三者區(qū)別:Collection是父類,通用集合類,各元素對象無指定順序,允許有重復(fù)元素和null元素對象。Set為子類,無指定順序,不允許有重復(fù)元素,最多允許一個(gè)null元素對象。List也為子類,有指定順序,允許有重復(fù)元素和多個(gè)null元素對象。

      48,Hashtable類:Hashtable像Vector一樣動(dòng)態(tài)存儲一系列對象,而且對存儲的每個(gè)對象都要安排另一個(gè)對象與之相關(guān)聯(lián)。用put()存儲數(shù)據(jù): Hashtable ht=new Hashtable();Ht.put(“one”,new Integer(1));檢索數(shù)據(jù)用get方法: Integer n=(Integer)ht.get(“two”);If(n!=null){

      System.out.println(“two=”+n);}

      要成功檢索某個(gè)字,用作關(guān)鍵字的類必須覆蓋Object.hashtableCode()和Object.equals().49.Properties類:Hashtable類的子類,增加了講Hashtable對象中的關(guān)鍵字和值保存到文件和從文件中讀取關(guān)鍵字和值到Hashtable對象中的方法。如果要用Properties.store方法存儲Properties對象中的內(nèi)容,每個(gè)屬性的關(guān)鍵字和值都必須是String類型。

      50,System類中的exit方法用于結(jié)束java虛擬機(jī)運(yùn)行的程序。currentTimeMills():可以檢測程序運(yùn)行的時(shí)間。Java虛擬機(jī)系統(tǒng)變量或者系統(tǒng)環(huán)境變量都是變量和值成對出現(xiàn)。getProperties方法獲取java虛擬機(jī)系統(tǒng)屬性,setProperties方法用于設(shè)置系統(tǒng)屬性。

      51,Date類:日期時(shí)間的類;Calendar:日期字段相互間的操作類; Calendar.add():增加時(shí)間;Calendar.Set():設(shè)置時(shí)間;Calendar.get():獲取時(shí)間。Calendar類位于java.util包中

      52.TimerTash類實(shí)現(xiàn)了Runable接口,要運(yùn)行的任務(wù),由它里面實(shí)現(xiàn)的run方法來完成。

      53,Math類包含了所用于幾何和三角運(yùn)算的方法,Random類一個(gè)偽隨機(jī)數(shù)產(chǎn)生類。

      54,F(xiàn)ile類:IO包中唯一代表磁盤文件本身信息的類,而不是文件中的內(nèi)容。File f=new File(“hello.txt”);If(f.exist()){f.delete();} Else {f.createNewFile();}

      System.out.println(“File name:”+f.getName());獲取文件的名稱 System.out.println(“File path:”+f.getPath());獲取文件的路徑 System.out.println(f.exist()?”exist”:”not exist”);判斷文件是否存在

      55,RandomAccessFile類提供了眾多的文件訪問方法;RandomAccessFile類支持隨機(jī)訪問,但是不能訪問其他的Io設(shè)備,如網(wǎng)絡(luò)、內(nèi)存映像等。兩種構(gòu)造方法:

      new RandomAccessFile(f,”rw”);可以讀寫 new RandomAccessFile(f,”r”);只讀

      56,流是字節(jié)序列的抽象概念。文件是數(shù)據(jù)的靜態(tài)存儲形式流是數(shù)據(jù)傳輸時(shí)的形態(tài)。流分為兩種:節(jié)點(diǎn)流類和過濾流類。57,InputStream類方法:int read();讀取方法 void close();讀取后要關(guān)閉文件

      58,F(xiàn)ileInputStream inone=new FileInputStream(“hello.test”);等同于 File f=new File(“hello.test”);

      FileInputStream intwo=new FileInputStream(f);

      59,System.in連接到鍵盤,而System.out連接到顯示器,用-1作為鍵盤輸入的結(jié)束。

      60,PipedInputStream與PipedOntputStream類:創(chuàng)建管道通信,使用管道流類,可以實(shí)現(xiàn)各個(gè)程序模塊之間的耦合通信。

      61,DateOutputStream類提供了三個(gè)寫入字符串方法:-public final void writeByte(String s)-public final void writeChars(String s)

      -public final void writeUTF(String s)

      62,ObjectInputStream、ObjectInputStream用于從底層輸入流中讀取對象類型的數(shù)據(jù)和將對象類型的數(shù)據(jù)寫入到底層輸出流。

      63,避免頻繁地在字符與字節(jié)間進(jìn)行轉(zhuǎn)換,最好不要直接使用InputStreamReader和OutputStreamWriter類讀寫數(shù)據(jù),應(yīng)盡量使用BufferedWriter類包裝OutputStreamWriter類,用BufferredReader類包裝InputStreamReader。InputStreamrReader和OutputStreamWriter用于將字節(jié)轉(zhuǎn)換成字符流來讀寫的兩個(gè)類。

      63,讀取一行文本用BufferredReader。

      64,printStackTrace()用于將異常信息打印在標(biāo)準(zhǔn)輸出設(shè)備上。65,AWT:應(yīng)用窗口工具集;GUI:圖形用戶界面。66,將窗口從內(nèi)存中顯示出來用Frame.setViseble(true);Frame.setSize(int x,int y);設(shè)置窗口大小 Frame.add(new Button(“OK”));增加一個(gè)新按鈕

      67,GUI:包括基本組件和容器。Frame.dispose()將窗口對象釋放,但線程消失,而Frame.setVisible(false);窗口不顯示但程序沒有結(jié)束。

      68,事件適配器:事件監(jiān)聽器接口的最簡單的實(shí)現(xiàn)類,稱為Adapter。69,調(diào)用enableevents(long eventsToEnable))方法,可以在即使沒有注冊事件監(jiān)聽器情況下,組件也能夠?qū)δ承╊愋偷臅r(shí)間進(jìn)行響應(yīng)和產(chǎn)生相應(yīng)的事件對象。70,GraPhics類與圖形繪制有關(guān)。GraPhics.draw String()方法的坐標(biāo)參數(shù)是左下面,這和其他的坐標(biāo)在左上方是不一樣的。

      71,設(shè)置圖形顏色:GraPhics.setColor(Color.Red);顏色英文須大寫 72使用GraPhics.drawImage(Image img,int s,int y,imageObserver observer)方法顯示圖像。

      73,與菜單相關(guān)的類:MenuBar、Menu、MenuItem。創(chuàng)建菜單的過程:先創(chuàng)建一個(gè)菜單條,再把幾個(gè)菜單掛在菜單條上,最后在每個(gè)菜單上添加菜單項(xiàng)。也可以在菜單上創(chuàng)建子菜單。

      74Container容器類,所有容器類的父類,Container.add()用于將組件添加到容器中。

      75,Dialog類用于產(chǎn)生對話框,分為模態(tài)對話框和非模態(tài)對話框兩種。76,Checkbox類用來建立單選按鈕和多選按鈕,單選按鈕和多選按鈕語義事件為ItemEvent,對應(yīng)的監(jiān)聽器接口為ItemOutstream。

      77,panel容器類,產(chǎn)生空白面板,可容納多個(gè)組件,不能獨(dú)立存在。78,ScrollPane用于產(chǎn)生滾動(dòng)窗口。79,布局管理器管理組件在容器中的布局。

      BroderLagout:NORTH、WEST、SOUTH、EAST、CENTER FlowLagout:布局分配是從左到右從上到下

      GridLagout:網(wǎng)格布局,模塊大小完全相同,也是從左到右,從上到下 cardLagout:多個(gè)組件交替顯示,只有最上面的那一個(gè)可見。Container.setLagout(null)用于取消布局管理器

      Container.setBounds(x1.y1,x2,y2)用坐標(biāo)來設(shè)置組件位置

      80,Swing提供了豐富的GUi組件,增強(qiáng)了AWT中原有組件的功能。JFC:java功能類,集合了Swing組件和其他能夠開發(fā)API類。

      81,JFrame是與AWT中的Frame相對應(yīng)的Swing組件,只能有一個(gè)唯一組件——JRootPane;

      82,Applet:嵌套在網(wǎng)頁中的小程序。

      83,瀏覽器顯示網(wǎng)頁的原理和打開記事本方式一樣

      84,Applet由瀏覽器來啟動(dòng)執(zhí)行過程:1)瀏覽器載入HTML文件。2)瀏覽器載入HTML文件中引用的Applet字節(jié)碼。3)瀏覽器啟動(dòng)java虛擬機(jī)執(zhí)行Applet; 85Applet需要覆蓋的方法:init()、start()、stop()、destroy()、paint()。鼠標(biāo)事件監(jiān)聽器: MouseListener()。

      86,Thread.sleep(1000);語句需要捕獲異常,用try…catch….語句捕獲

      87,Applet相關(guān)知識:容器與插件的程序架構(gòu)設(shè)計(jì)模式、Applet程序中的控制臺輸出。

      88,Applet程序的限制:不能啟動(dòng)執(zhí)行其他應(yīng)用程序,不能進(jìn)行文件IO操作,不能調(diào)用本機(jī)代碼,不能與Applet所在的主機(jī)之外的其他主機(jī)進(jìn)行網(wǎng)絡(luò)連接; 89,Applet標(biāo)記的詳細(xì)表:

      [archive=archiveList]方括號的為可選項(xiàng) Code=appletFile.class不帶方括號的為必選項(xiàng)

      90,OBJECT標(biāo)記:使用HTMLContainer將Applet標(biāo)記轉(zhuǎn)換成OBJECT標(biāo)記。使用OBJECT標(biāo)記執(zhí)行Applet小程序的java解釋器被作為一個(gè)ActiveX插件使用。使用OBJECT標(biāo)記比Applet標(biāo)記多了自動(dòng)下載和安裝java解釋器的功能。91,網(wǎng)絡(luò)協(xié)議:TCP/IP UDP

      92,獲取本機(jī)IP地址:在命令行輸入:ipcongif;端口號的范圍是0-65535之間。93,TCP傳輸控制協(xié)議,是面向連接的通信協(xié)議 UDP用戶數(shù)據(jù)報(bào)協(xié)議,是無連接的通信協(xié)議

      94,Socket是網(wǎng)絡(luò)驅(qū)動(dòng)層提供給應(yīng)用程序編程的接口和一種機(jī)制。網(wǎng)絡(luò)編程類位于java.net包中。95,DatagramSocket類用于UDP通信,ServerSocket類用于TCP通信的服務(wù)器端。Socket類用于TCP通信的服務(wù)器端和客戶端。

      96,了解DatagramSocket類三種構(gòu)造方法,close()關(guān)閉方法,send(DatagramPackage p)發(fā)送數(shù)據(jù)包方法;receive(DatagramPackage p)接受數(shù)據(jù)包方法

      97,DatagramPackage提供了兩種構(gòu)造方法。getInetAddresss用于表示計(jì)算機(jī)IP地址的一個(gè)類,類中有g(shù)etByName方法,返回一個(gè)相應(yīng)的inetAddress實(shí)例對象。

      98,TCP網(wǎng)絡(luò)編程工作原理,利用TCP協(xié)議進(jìn)行,兩個(gè)應(yīng)用程序有主次之分,主的稱為服務(wù)器端,另一個(gè)稱為客戶端。

      99,客戶端與服務(wù)器端交互過程:1)服務(wù)器程序創(chuàng)建一個(gè)ServerSocket,然后調(diào)用Accept方法等待客戶來連接。2)客戶端程序創(chuàng)建一個(gè)Socket并請求與服務(wù)器建立連接。3)服務(wù)器接受客戶的連接請求,并創(chuàng)建一個(gè)新的Socket與該客戶建立專線連接。4)建立了連接的兩個(gè)Socket在一個(gè)單獨(dú)的線程上對話。5)服務(wù)器開始等待新的連接請求,當(dāng)新的連接請求達(dá)到時(shí),重復(fù)步驟2到5.100,TCP服務(wù)器程序必須先啟動(dòng)運(yùn)行,TCP客戶程序才能連接上TCP服務(wù)器,使用Windous提供的telent程序測試服務(wù)器程序,使用BufferredReader包裝類,從網(wǎng)絡(luò)輸入流中一次讀取一行文本。

      101,使用netstart命令查看當(dāng)前正在被使用的TCP端口號。通過一個(gè)配置參數(shù)來指定TCP服務(wù)器程序所使用的端口號。

      102,ObjectInputStream和ObjectOutputStream可以從底層輸入流中讀取對象類型的數(shù)據(jù)和將對象類型的數(shù)據(jù)寫入到底層輸出流。

      103,使用ObjectInputStream和ObjectOutputStream來包裝底層網(wǎng)絡(luò)字節(jié)流,TCP服務(wù)器和TCP客戶端之間可以接受對象類型的數(shù)據(jù)。

      104URL:統(tǒng)一資源定位器,由協(xié)議、主機(jī)名、端口號和資源名組成,了解相對URL和絕對URl的含義。

      第三篇:JAVA學(xué)習(xí)

      買本《java瘋狂講義》 或者 在網(wǎng)上下載下來看看主要看java語法部分和面向?qū)ο缶幊滩糠诌@些要速度過 接下來開始寫一些小例子 從例子里面學(xué)習(xí)會更快例子差不多了就開始web方面的涉獵,先學(xué)struts->jsp->servlet->hibernate->spring學(xué)習(xí)javascript

      第四篇:java學(xué)習(xí)

      .如何學(xué)習(xí)Java?

      3.1 Java學(xué)習(xí)路線

      3.1.1 基礎(chǔ)語法及Java原理基礎(chǔ)語法和Java原理是地基,地基不牢靠,猶如沙地上建摩天大廈,是相當(dāng)危險(xiǎn)的。學(xué)習(xí)Java也是如此,必須要有扎實(shí)的基礎(chǔ),你才能在J2EE、J2ME領(lǐng)域游刃有余。參加SCJP(SUN公司認(rèn)證的Java程序員)考試不失為一個(gè)好方法,原因之一是為了對得起你交的1200大洋考試費(fèi),你會更努力學(xué)習(xí),原因之二是SCJP考試能夠讓你把基礎(chǔ)打得很牢靠,它要求你跟JDK一樣熟悉Java基礎(chǔ)知識;但是你千萬不要認(rèn)為考過了SCJP就有多了不起,就能夠獲得軟件公司的青睞,就能夠獲取高薪,這樣的想法也是很危險(xiǎn)的。獲得“真正”的SCJP只能證明你的基礎(chǔ)還過得去,但離實(shí)際開發(fā)還有很長的一段路要走。

      3.1.2 OO思想的領(lǐng)悟掌握了基礎(chǔ)語法和Java程序運(yùn)行原理后,我們就可以用Java語言實(shí)現(xiàn)面向?qū)ο蟮乃枷肓?。面向?qū)ο?,是一種方法學(xué);是獨(dú)立于語言之外的編程思想;是 CBD基于組件開發(fā)的基礎(chǔ);屬于強(qiáng)勢技術(shù)之一。當(dāng)以后因工作需要轉(zhuǎn)到別的面向?qū)ο笳Z言的時(shí)候,你會感到特別的熟悉親切,學(xué)起來像喝涼水這么簡單。

      使用面向?qū)ο蟮乃枷脒M(jìn)行開發(fā)的基本過程是: ●調(diào)查收集需求。●建立用例模型。

      ●從用例模型中識別分析類及類與類之間的靜態(tài)動(dòng)態(tài)關(guān)系,從而建立分析模型?!窦?xì)化分析模型到設(shè)計(jì)模型?!裼镁唧w的技術(shù)去實(shí)現(xiàn)?!駵y試、部署、總結(jié)。

      3.1.3 基本API的學(xué)習(xí)進(jìn)行軟件開發(fā)的時(shí)候,并不是什么功能都需要我們?nèi)?shí)現(xiàn),也就是經(jīng)典名言所說的“不需要重新發(fā)明輪子”。我們可以利用現(xiàn)成的類、組件、框架來搭建我們的應(yīng)用,如SUN公司編寫好了眾多類實(shí)現(xiàn)一些底層功能,以及我們下載過來的JAR文件中包含的類,我們可以調(diào)用類中的方法來完成某些功能或繼承它。那么這些類中究竟提供了哪些方法給我們使用?方法的參數(shù)個(gè)數(shù)及類型是?類的構(gòu)造器需不需要參數(shù)?總不可能SUN公司的工程師打國際長途甚至飄洋過海來告訴你他編寫的類該如何使用吧。他們只能提供文檔給我們查看,Java DOC文檔(參考文獻(xiàn)4.4)就是這樣的文檔,它可以說是程序員與程序員交流的文檔。基本API指的是實(shí)現(xiàn)了一些底層功能的類,通用性較強(qiáng)的API,如字符串處理/輸入輸出等等。我們又把它成為類庫。熟悉API的方法一是多查Java DOC文檔(參考文獻(xiàn)4.4),二是使用JBuilder/Eclipse等IDE的代碼提示功能。

      3.1.4 特定API的學(xué)習(xí)Java介入的領(lǐng)域很廣泛,不同的領(lǐng)域有不同的API,沒有人熟悉所有的API,對一般人而言只是熟悉工作中要用到的API。如果你做界面開發(fā),那么你需要學(xué)習(xí)Swing/AWT/SWT等API;如果你進(jìn)行網(wǎng)絡(luò)游戲開發(fā),你需要深入了解網(wǎng)絡(luò)API/多媒體API/2D3D等;如果你做WEB開發(fā),就需要熟 悉Servlet等API啦。總之,需要根據(jù)工作的需要或你的興趣發(fā)展方向去選擇學(xué)習(xí)特定的API。

      3.1.5 開發(fā)工具的用法在學(xué)習(xí)基礎(chǔ)語法與基本的面向?qū)ο蟾拍顣r(shí),從鍛煉語言熟練程度的角度考慮,我們推薦使用的工具是Editplus/JCreator+JDK,這時(shí)候不要急于上手JBuilder/Eclipse等集成開發(fā)環(huán)境,以免過于關(guān)注IDE的強(qiáng)大功能而分散對Java技術(shù)本身的注意力。過了這一階段你就可以開始熟悉 IDE了。程序員日常工作包括很多活動(dòng),編輯、編譯及構(gòu)建、調(diào)試、單元測試、版本控制、維持模型與代碼同步、文檔的更新等等,幾乎每一項(xiàng)活動(dòng)都有專門的工具,如果獨(dú)立使用這些工具的話,你將會很痛苦,你需要在堆滿工具的任務(wù)欄上不斷的切換,效率很低下,也很容易出錯(cuò)。在JBuilder、Eclipse等IDE中已經(jīng)自動(dòng)集成編輯器、編譯器、調(diào)試器、單元測試工具JUnit、自動(dòng)構(gòu)建工具ANT、版本控制工具CVS、DOC文檔生成與更新等等,甚至可以把UML建模工具也集成進(jìn)去,又提供了豐富的向?qū)椭煽蚣艽a,讓我們的開發(fā)變得更輕松。應(yīng)該說IDE發(fā)展的趨勢就是集成軟件開發(fā)中要用到的幾乎所有工具。從開發(fā)效率的角度考慮,使用IDE是必經(jīng)之路,也是從一個(gè)學(xué)生到一個(gè)職業(yè)程序員轉(zhuǎn)變的里程碑。Java開發(fā)使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等幾種;而Eclipse、JBuilder 占有的市場份額是最大的。JBuilder在近幾年來一直是Java集成開發(fā)環(huán)境中的霸主,它是由備受程序員尊敬的Borland公司開發(fā),在硝煙彌漫的 Java IDE大戰(zhàn)中,以其快速的版本更新?lián)魯BM的Visual Age for Java等而成就一番偉業(yè)。IBM在Visual Age for Java上已經(jīng)無利可圖之下,干脆將之貢獻(xiàn)給開源社區(qū),成為Eclipse的前身,真所謂“柳暗花明又一村”。浴火重生的Eclipse以其開放式的插件擴(kuò)展機(jī)制、免費(fèi)開源獲得廣大程序員(包括幾乎所有的骨灰級程序員)的青睞,極具發(fā)展?jié)摿Α?/p>

      3.1.6 學(xué)習(xí)軟件工程 對小型項(xiàng)目而言,你可能認(rèn)為軟件工程沒太大的必要。隨著項(xiàng)目的復(fù)雜性越來越高,軟件工程的必要性才會體現(xiàn)出來。參見“軟件開發(fā)學(xué)習(xí)路線”小節(jié)。

      3.2學(xué)習(xí)要點(diǎn) 確立的學(xué)習(xí)路線之后,我們還需要總結(jié)一下Java的學(xué)習(xí)要點(diǎn),這些要點(diǎn)在前文多多少少提到過,只是筆者覺得這些地方特別要注意才對它們進(jìn)行匯總,不要嫌我婆婆媽媽啊。

      3.2.1勤查API文檔當(dāng)程序員編寫好某些類,覺得很有成就感,想把它貢獻(xiàn)給各位苦難的同行。這時(shí)候你要使用“Javadoc”工具(包含在JDK中)生成標(biāo)準(zhǔn)的Java DOC文檔,供同行使用。J2SE/J2EE/J2ME的DOC文檔是程序員與程序員交流的工具,幾乎人手一份,除了菜鳥之外。J2SE DOC文檔官方下載地址:http://Java.sun.com/j2se/1.5.0/download.jsp,你可以到google搜索CHM版本下載。也可以在線查看:http://Java.sun.com/j2se/1.5.0/docs/api/index.html。對待DOC文檔要像毛主席語錄,早上起床念一遍,吃飯睡覺前念一遍。當(dāng)需要某項(xiàng)功能的時(shí)候,你應(yīng)該先查相應(yīng)的DOC文檔看看有沒有現(xiàn)成的實(shí)現(xiàn),有的話就不必勞神費(fèi)心了直接用就可以了,找不到的時(shí)候才考慮自己實(shí)現(xiàn)。使用步驟一般如下: ●找特定的包,包一般根據(jù)功能組織?!裾倚枰褂妙?,類命名規(guī)范的話我們由類的名字可猜出一二?!襁x擇構(gòu)造器,大多數(shù)使用類的方式是創(chuàng)建對象?!襁x擇你需要的方法。

      3.2.2 查書/google->寫代碼測試->查看源代碼->請教別人 當(dāng)我們遇到問題的時(shí)候該如何解決?這時(shí)候不要急著問別人,太簡單的問題,沒經(jīng)過思考的問題,別人會因此而瞧不起你??梢韵日艺視絞oogle中搜一下看看,絕大部分問題基本就解決了。而像“某些類/方法如何使用的問題”,DOC文檔就是答案。對某些知識點(diǎn)有疑惑是,寫代碼測試一下,會給你留下深刻的印象。而有的問題,你可能需要直接看 API的源代碼驗(yàn)證你的想法。萬不得已才去請教別人。

      3.2.3學(xué)習(xí)開源軟件的設(shè)計(jì)思想 Java領(lǐng)域有許多源代碼開放的工具、組件、框架,JUnit、ANT、Tomcat、Struts、Spring、Jive論壇、PetStore寵物店等等多如牛毛。這些可是前輩給我們留下的瑰寶呀。入寶山而空手歸,你心甘嗎?對這些工具、框架進(jìn)行分析,領(lǐng)會其中的設(shè)計(jì)思想,有朝一日說不定你也能寫一個(gè)XXX框架什么的,風(fēng)光一把。分析開源軟件其實(shí)是你提高技術(shù)、提高實(shí)戰(zhàn)能力的便捷方法。

      3.2.4 規(guī)范的重要性 沒有規(guī)矩,不成方圓。這里的規(guī)范有兩層含義。第一層含義是技術(shù)規(guī)范,多到http://004km.cn下載JSRXXX規(guī)范,多讀規(guī)范,這是最權(quán)威準(zhǔn)確最新的教材。第二層含義是編程規(guī)范,如果你使用了大量的獨(dú)特算法,富有個(gè)性的變量及方法的命名方式;同時(shí),沒給程序作注釋,以顯示你的編程功底是多么的深厚。這樣的代碼別人看起來像天書,要理解談何容易,更不用說維護(hù)了,必然會被無情地掃入垃圾堆。Java編碼規(guī)范到此查看或下載http://Java.sun.com/docs/codeconv/,中文的也有,啊,還要問我在哪,請參考3.2.2節(jié)。

      3.2.5 不局限于Java 很不幸,很幸運(yùn),要學(xué)習(xí)的東西還有很多。不幸的是因?yàn)橐獙W(xué)的東西太多且多變,沒時(shí)間陪老婆家人或女朋友,導(dǎo)致身心疲憊,嚴(yán)重者甚至導(dǎo)致抑郁癥。幸運(yùn)的是別人要搶你飯碗絕非易事,他們或她們需要付出很多才能達(dá)成心愿。Java不要孤立地去學(xué)習(xí),需要綜合學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)、OOP、軟件工程、UML、網(wǎng)絡(luò)編程、數(shù)據(jù)庫技術(shù)等知識,用橫向縱向的比較聯(lián)想的方式去學(xué)習(xí)會更有效。如學(xué)習(xí)Java集合的時(shí)候找數(shù)據(jù)結(jié)構(gòu)的書看看;學(xué)JDBC的時(shí)候復(fù)習(xí)數(shù)據(jù)庫技術(shù);采取的依然是“需要的時(shí)候再學(xué)”的原則。

      4.結(jié)束語需要強(qiáng)調(diào)的是,學(xué)習(xí)軟件開發(fā)確實(shí)有一定的難度,也很辛苦,需要付出很多努力,但千萬不要半途而廢。本文如果能對一直徘徊在Java神殿之外的朋友有所幫助的話,筆者也欣慰了。哈哈,怎么聽起來老氣橫秋呀?沒辦法,在電腦的長期輻射之下,都快變成小老頭了。最后奉勸各位程序員尤其是MM程序員,完成工作后趕快遠(yuǎn)離電腦,據(jù)《胡播亂報(bào)》報(bào)道,電腦輻射會在白皙的皮膚上面點(diǎn)綴一些小黑點(diǎn),看起來鮮艷無比……

      第五篇:Java學(xué)習(xí)周報(bào)

      Java學(xué)習(xí)周報(bào)

      隨著時(shí)間的推移,學(xué)習(xí)Java已經(jīng)是第二周了。在這一周中,可以說是充分體驗(yàn)了困難與收獲。經(jīng)過第一周的熟悉,Java學(xué)習(xí)越來越深入,許多的新知識出現(xiàn)在我的眼前。這其中有難以理解的,讓我充分認(rèn)識到了Java學(xué)習(xí)的困難,但是當(dāng)我深入學(xué)習(xí)并理解了這些知識時(shí),又讓我感到難以言表的收獲與滿足。在這一周中,主要學(xué)習(xí)了一下內(nèi)容在:

      (1)學(xué)習(xí)內(nèi)容:Java面向?qū)ο缶幊碳夹g(shù),包括程序包的使用,類的繼承與訪問控制,多態(tài)性及其應(yīng)用,類成員及其應(yīng)用,方法的重載與重寫,以及關(guān)鍵字static、final的使用。

      收獲:通過本章的學(xué)習(xí),我深入理解了Java面向?qū)ο缶幊碳夹g(shù),并能夠恰當(dāng)?shù)氖褂冒?、訪問控制與重載技術(shù),能夠掌握與應(yīng)用繼承、方法重寫與多態(tài)性機(jī)制實(shí)現(xiàn)對現(xiàn)有類型的擴(kuò)充與改造,以滿足新的需求。

      (2)學(xué)習(xí)內(nèi)容:重點(diǎn)學(xué)習(xí)了抽象類、接口和嵌套類。作為面向?qū)ο缶幊碳夹g(shù)中的幾種重要機(jī)制,這是必須要求掌握的,對他們的綜合應(yīng)用能夠使Java程序代碼結(jié)構(gòu)更加緊湊、簡潔。

      收獲:在這一章中,我深入學(xué)習(xí)和掌握了Java高級類特性,其重點(diǎn)是抽象類與接口的用法,作為高層次的類型抽象,在實(shí)際應(yīng)用中應(yīng)能夠熟練應(yīng)用JDK中定義好的抽象和接口類型。而對于嵌套類則應(yīng)該理解與掌握。

      (3)學(xué)習(xí)內(nèi)容:在本章中,主要了解與掌握J(rèn)ava在異常處理方面的知識,包括Java語言異常處理的內(nèi)部機(jī)制;能夠隨時(shí)及開發(fā)中常見的異常進(jìn)行分類展示,并給出Java異常處理原則與具體應(yīng)用技巧。

      收獲:學(xué)習(xí)完本章后,我充分理解了Java異常概念及其處理機(jī)制,能夠捕獲并處理常見的異常,或根據(jù)需要聲明拋出異常,能夠定義自己的異常類型。

      (4)學(xué)習(xí)內(nèi)容:本章主要學(xué)習(xí)了Java中常見的類,包括Object類、字符串相關(guān)類型、封裝類、日期相關(guān)類型、數(shù)學(xué)相關(guān)類型。

      收獲:通過本章的學(xué)習(xí),我掌握了常用的Java類及其功能方法,尤其是Object類的equals()方法、toString()方法、常用的字符串及數(shù)學(xué)操作相關(guān)方法、封裝類的自動(dòng)封裝與拆封機(jī)制以及日期信息的處理。

      (5)學(xué)習(xí)內(nèi)容:在以前學(xué)習(xí)的基礎(chǔ)上,這章重點(diǎn)學(xué)習(xí)了命令行參數(shù)、系統(tǒng)屬性、可變參數(shù)、注釋的使用。

      收獲:通過本章的學(xué)習(xí),基本掌握了通過命令行參數(shù)、標(biāo)準(zhǔn)I/O和文件I/O實(shí)現(xiàn)應(yīng)用程序與外界之間的信息傳輸,理解并掌握可變參數(shù)、API及注解機(jī)制。

      (6)學(xué)習(xí)內(nèi)容:本章主要學(xué)習(xí)Java框架結(jié)構(gòu)、Collection及Map接口、列表、集以及映射。

      收獲:通過本章的學(xué)習(xí),全面理解了Java集合的相關(guān)概念、框架體系及其工作原理,基本能夠熟練應(yīng)用常用的Java集合類型。經(jīng)過又一周的學(xué)習(xí),使我更加深入的理解了Java,當(dāng)然,在這期間,有許多的疑難點(diǎn)困擾著我,比如多重繼承,比如作為Java特性之一的多態(tài)性的理解與實(shí)際使用,比如嵌套類的使用及其實(shí)現(xiàn)機(jī)制,比如人工拋出異常的具體操作方法等。但是通過自己的深入學(xué)習(xí),以及查閱資料,和詢問老師,最后在上手實(shí)際操作,基本解決了這些疑難點(diǎn),這使我收獲良多。

      對于未來一周的學(xué)習(xí),因?yàn)橐钊氲絁ava的具體開發(fā)技術(shù),對于前面的基礎(chǔ)知識要能夠?qū)嶋H綜合運(yùn)用,在新知識的基礎(chǔ)上做到溫故而知新。

      下載JAVA學(xué)習(xí)日記word格式文檔
      下載JAVA學(xué)習(xí)日記.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ù),工作人員會在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        JAVA學(xué)習(xí)總結(jié)

        ==========Java學(xué)習(xí)總結(jié)========= 從3月8號開班以來我們已經(jīng)學(xué)習(xí)Java 有3個(gè)多月了,主要學(xué)習(xí)了Java基礎(chǔ)知識、OOP(面向?qū)ο?、JavaSE、ORACLE(數(shù)據(jù)庫)、JDBC WebBasic、JQUER......

        JAVA學(xué)習(xí)報(bào)告

        java實(shí)習(xí)報(bào)告摘要:古人有云:“紙上得來終覺淺,絕知此事要躬行”。 自從走進(jìn)了大學(xué),距離工作就不遠(yuǎn)了,學(xué)校為了拓展我們學(xué)生自身的知識面,擴(kuò)大與社會的接觸面,增加個(gè)人在社會競爭中......

        Java學(xué)習(xí)總結(jié)

        基礎(chǔ)部分: 編譯命令javac 編譯命令:java JVM:java虛擬機(jī), 類聲明:1、一個(gè)java文件中只能有一個(gè)public class 的聲明,但是容許多個(gè)class聲明 Class 聲明:生成的.class 文件和類文件......

        JAVA學(xué)習(xí)總結(jié)

        Java學(xué)習(xí)總結(jié)在學(xué)習(xí)了三周的Java基礎(chǔ)編程語言之后,我對Java有了一定的了解。Java是由Sun公司推出的一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,現(xiàn)在被廣泛應(yīng)用于很多領(lǐng)域。最讓我關(guān)注的一......

        java學(xué)習(xí)總結(jié)

        第三周學(xué)習(xí)總結(jié)這周從HTML學(xué)到了mysql: 1. HTML:Hypertext Markup Language超文本標(biāo)記語言 后綴名為.html或.htm 由兩部分組成:head和body 2.body屬性:bgcolor、background、bgp......

        JAVA學(xué)習(xí)路線

        1. JAVA學(xué)習(xí)路線1.1 基礎(chǔ)語法及JAVA原理基礎(chǔ)語法和JAVA原理是地基,地基不牢靠,猶如沙地上建摩天大廈,是相當(dāng)危險(xiǎn)的。學(xué)習(xí)JAVA也是如此,必須要有扎實(shí)的基礎(chǔ),你才能在J2EE、J2ME領(lǐng)......

        JAVA學(xué)習(xí)路線

        Java是一個(gè)通用的編程語言,其實(shí)可以干很多事,怎么學(xué)Java就看怎么用了。但有一些一般的步驟:1. 熟悉一種文本編輯器,比如vim, eclipse, notepad++, textmate等。知道哪些是開源的......

        java學(xué)習(xí)筆記

        jdk(java development kit)有如下公司或組織開發(fā)jdksun jdkibm jdkbea jrocketgun jdk其中ibm的jdk包含的jvm(java virtual machine)運(yùn)行效率要比sun jdk包含的jvm高出許多。......