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

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

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

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

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

      java考試總結(jié)

      時間:2019-05-13 09:15:31下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關的《java考試總結(jié)》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《java考試總結(jié)》。

      第一篇:java考試總結(jié)

      考試重點:包、數(shù)組、ArrayList可變數(shù)組

      一單項選擇 24分 每題3分

      訪問可見性:

      1、兩個包中的類,一個訪問另一個(各種訪問屬性下的訪問權(quán)限)

      2、同一個包中的連個類可以相互訪問

      訪問屬性用 publicprivate protected沒有修飾符的默認為friendly類型的,即包訪問權(quán)限 對于非公有類,其他包中的類無法訪問,但同一包中的類可以訪問(有時包和文件是同一概念)

      同一個包中的兩個類必須在同一目錄下?不一定??梢栽诓煌夸浵?,因為classpath可以設置很多

      父包和子包在使用上沒有任何聯(lián)系,子包使用父包中的類必須引入

      強制類型轉(zhuǎn)換:兩個小括號一個都不能少

      (父類)子類名.f()×其中f()是父類中的方法

      ((父類)子類名).f()√

      子類轉(zhuǎn)換成父類,不需要強制轉(zhuǎn)化,父類轉(zhuǎn)換成子類,需要強制轉(zhuǎn)化

      ArrayList 的使用可變長數(shù)組:

      它的三個重要方法:

      add

      get

      size

      利用這三個函數(shù)可以實現(xiàn)很多,比如如何求數(shù)組的最后一個元素

      可變對象和不可變對象finally用在不同地方的不同含義

      不可變對象String例:myString=”old pal”;

      myString.replaceAll(“old”,”new”);

      System.out.println(myString)=”old pal”

      字符串變量 StringBuffer

      可變對象Java.awt.Point不是finally類型

      myPoint.setLocation(1.0,1.0);→輸出為1.0

      數(shù)組的使用

      基本類型的數(shù)組

      Static int arr[]=new int[10];引用數(shù)組,所有數(shù)組都是引用

      Array[0]=0?正確,arr為對象數(shù)組,不能直接這樣賦值

      數(shù)組聲明Declare:Circle []circles;

      創(chuàng)建數(shù)組對象: circles=new Circle[8];

      ↑創(chuàng)建了引用數(shù)組,數(shù)組中的每個元素都指向圓,但還沒有創(chuàng)建真正的對象

      創(chuàng)建真正的對象:

      for(int i=0;i<8;i++)

      {

      circles[i]=new Circle(10+i*10,10,5);

      }

      override和overload

      覆蓋和重載

      重載:在同一個類中不能出現(xiàn)函數(shù)名相同、參數(shù)列表相同、但返回值類型不同的函數(shù); 若兩個函數(shù)一個在父類中,一個在子類中,這兩個函數(shù)也不能函數(shù)名一樣、參數(shù)列表一樣,但返回值類型不一樣這種情況。

      子類的覆蓋方法不能拋出比父類多的異常

      如:父類的方法不拋出異常,子類的方法就不能拋出異常

      子類覆蓋方法的可見性不能比父類窄

      如:父類方法是公有,子類方法就只能是公有。

      二程序填空題(研究程序)

      要求實現(xiàn)一個圖形用戶界面的applet指定功能

      要引入的包 import Java.awt;

      ………..event;(actionListen函數(shù)、actionPerform函數(shù))

      一些常用組件:LableTextFieldButton(看計數(shù)器代碼)

      組件上可能發(fā)出的事件及各自實現(xiàn)的監(jiān)聽器

      以上組件常用的方法如getText()

      字符串操作 如字符串長度

      指定位置的字符 char At(0)

      length()

      indexOf()

      applet

      init()構(gòu)造函數(shù)、初始化、只執(zhí)行一次

      paint()畫字符串

      start()需畫時啟動

      repaint()當組件發(fā)生改變,repaint()調(diào)用paint()函數(shù)

      drawstring畫線、畫點

      Applet的動畫實現(xiàn)

      四個步驟:

      在paint()中,依據(jù)一個特定的變量來畫圖

      在一個線程run()中,改變這些變量的值,然后調(diào)用applet的repaint()函數(shù) 在init()中創(chuàng)建并啟動線程,或?qū)Π粹o作出響應等

      例如一個字符從左到右走動,只改變橫坐標

      多線程實現(xiàn)的兩種方式(其中實現(xiàn)runnable接口的特殊用途):

      經(jīng)常用的方法:sleep 靜態(tài)方法

      常用異常、try-catch

      三寫程序運行結(jié)果

      第一個題比較字符串,變量常量都要求,參考實驗報告上的題

      用關系操作函數(shù)equals,compareTo

      返回值類型方法名(父類對象)

      運行時刻的類型識別,(調(diào)用的是子類還是父類方法)

      函數(shù)調(diào)用能否改變原來變量的值

      Java中變量的類型都是引用

      動態(tài)綁定

      運行時刻類型識別

      參數(shù)調(diào)用

      參數(shù)是數(shù)組、數(shù)組元素、對象引用時參數(shù)調(diào)用后參數(shù)值是否改變

      內(nèi)部類:一個類內(nèi)部中有另一個類

      要創(chuàng)建內(nèi)部類對象,必須先創(chuàng)建外部類對象

      四改錯

      (1)異常

      try-catch-finally

      拋出異常用throw

      聲明用throws

      用戶自定義的異常

      (2)多線程

      兩種多線程機制的不同,處理一些問題時為什么用第二種?(實現(xiàn)runnable接口)

      五編程

      1、按要求編寫類

      重寫toString()方法,描述調(diào)用此函數(shù)的對象的屬性,編寫測試程序main()方法,測試所寫的方法是否正確

      正確定義構(gòu)造函數(shù)、定義屬性、定義如何獲取屬性、定義方法修改屬性

      2、寫一個類,同一處理多個類(多態(tài))

      使用隨機函數(shù)

      利用多態(tài)實現(xiàn)多種資源的統(tǒng)一管理

      可能用到對象數(shù)組

      父類自動調(diào)用子類的方法

      注:好多題源自于實驗,代碼好好看

      第二篇:JAVA總結(jié)專題

      在這忙忙碌碌的這段時間里,經(jīng)過老師的輔導,迅速的將一點沒有學的JAVA基礎搞定了!有了基礎學習還是好,萬事開頭難這句話說的太對了,學計算機語言我覺得記憶好的方法就是多打代碼,課前預習,課堂上認真聽講,把現(xiàn)學的方法把以前所做的作業(yè)用最簡便的方法再一次鞏固,創(chuàng)新最重要,在后續(xù)的學習中,得要加倍努力學習。

      其實學java有不懂,要先自己思考。想清楚這句代碼是什么意思。為什么要寫在這,等等之類的。等你真的搞不明白的時候,就一定要向老師咨詢,不要感到有什么丟人的。因為不會是很正常的事。并不是每個人都是天才,一學就會,一學就能運用自如的。學java有一點是非常重要的,就是練習。一段代碼要不停的敲,多敲幾遍,尤其是自己不熟悉或者不熟練的代碼,更要敲。不要感覺到厭煩,其實我感覺敲代碼挺好玩的,并不是一件很枯燥的事。

      老師平常布置的課后上機練習題一定要做,課后的練習題能夠讓你把新學到的知識鞏固一遍,能夠加深記憶,不會讓你在以后做題的時候感到?jīng)]一點思路。

      當感覺到不會的時候,千萬不要氣餒,因為這很正常,現(xiàn)在的學習就是為了培養(yǎng)你有一個邏輯思維,為了以后開發(fā)軟件的時候有個完整,清晰的思路。

      其實,總體來說。學習java很快樂。尤其是當你遇到一道自己不會的題,然后,又通過自己的努力解決了,那時候,那種心情不是用言語來表達的。就好像你遇到一個數(shù)學難題,自己解決了之后那種成就感一樣。

      學java的時候一定要,放松心情,輕輕松松的來學,隨時讓自己快樂著,這樣能夠讓你能夠更快的接受java,千萬不要有什么心理負擔,因為java的特點之一就是--簡單易懂。只要自己努力到了,就一定能夠?qū)W好java。

      學完了JAVA今天我們用項目案例:迷你DVD管理器來鞏固了我們所學的所有內(nèi)容,通過這項目的操練,首先,1、項目用到了會使用順序、分支、循環(huán)、跳轉(zhuǎn)語句編寫程序,2、要會使用數(shù)組、操作字符串,3、會使用帶參的方法;

      4、會定義類、創(chuàng)建和使用對象,看到這些腦袋里一片迷茫?。〔恢涝鯓訉懀缓笙氲皆鐚懲韺懚家粯?,就照著書上寫起來了,到現(xiàn)在還是弄不懂的就是那個對象數(shù)組,不知道怎樣去理解,抽象的把我抽暈了,有望老師來給我們補補這一章,在實現(xiàn)DVD的業(yè)務處理時,計算時差還是不懂,照著書上打了一遍,可還是得不到想要的結(jié)果,經(jīng)過網(wǎng)上的搜尋與老師講解,現(xiàn)在已略懂一二了,在做完這項目后,真不知道當時是怎樣敲出來的,難道這就是所說的靈感!感覺很高興,現(xiàn)在已習慣了代碼報錯,其實代碼報錯是一件值得鼓勵的事,因為沒有錯就覺得自己什么都懂了,在學習中相信每一個人都遇到過挫折吧!但一定要想方法戰(zhàn)勝挫折!我的戰(zhàn)勝挫折方法就是不懂思考后還不懂就問,懂了以后就筆記本記下當時的解決方案!學習剛開始!后面的路很長,慢慢的去磨煉了!總結(jié)完畢!

      第三篇:Java格式總結(jié)

      Java定義格式:

      1、數(shù)據(jù)類型的強制性轉(zhuǎn)換語法:

      (欲轉(zhuǎn)換的數(shù)據(jù)類型)變量名稱;

      2、if語句的格式:

      if(條件判斷)

      語句;

      3、if語句的格式:

      if(條件判斷){ 語句1;

      語句2;

      語句3; }

      4、if…else語句的格式:

      if(判斷條件){ 語句主體1; } else { 語句主體2; }

      5、條件語句格式:

      條件判斷?表達式1:表達式2; 即:

      If(條件判斷){ 變量 x=表達式1; } Else { 變量x=表達式2; }

      6、if…else if…else語句格式:

      if(判斷條件1){ 語句主體1; } else if(判斷條件2){ 語句主體2; }

      //多個else if語句 Else { 語句主體3; }

      7、switch語句格式:

      switch(表達式){ case 選擇值1:語句主體1;

      break;

      case 選擇值2:語句主體2;

      break;

      ……

      case 選擇值n:語句主體n;

      break;

      default: 語句主體; }

      8、while循環(huán)語句格式:

      while(判斷條件){ 語句1;

      語句2; ……

      語句n; }

      9、do……while語句格式:

      do { 語句1;

      語句2;

      ……

      語句n;

      }while(判斷條件)

      10、for循環(huán)語句格式:

      for(賦值初值:判斷條件:賦值增減量){ 語句1;

      ……

      語句n; }

      11、break語句格式:

      for(賦值初值:判斷條件:賦值增減量){ 語句1;12、13、14、15、16、17、18、19、20、21、語句2; …….break;

      ……

      //若執(zhí)行break語句,此塊內(nèi)的語句都不再執(zhí)行 語句n; } continue語句格式:

      for(賦值初值:判斷條件:賦值增減量){ 語句1;

      語句2;

      ……

      Continue;//若執(zhí)行continue語句,此塊內(nèi)的語句不再執(zhí)行

      ……

      語句n; } 一維數(shù)組的聲明與分配內(nèi)存格式:

      數(shù)據(jù)類型

      數(shù)組名[];

      //聲明一維數(shù)組

      數(shù)組名=new 數(shù)據(jù)類型[個數(shù)];

      //分配內(nèi)存給數(shù)組 聲明數(shù)組的同時分配內(nèi)存格式:

      數(shù)據(jù)類型 數(shù)組名[]=new 數(shù)據(jù)類型[個數(shù)] 數(shù)組長度的取得格式: 數(shù)組名.length 數(shù)組初值的賦值格式:

      數(shù)據(jù)類型 數(shù)組名[]={初值0,初值1,…,初值n}; 二維數(shù)組的聲明格式: 數(shù)據(jù)類型 數(shù)組名[][];

      數(shù)據(jù)名=new 數(shù)據(jù)類型[行的個數(shù)][列的個數(shù)]; 二維數(shù)組色聲明及分配內(nèi)存格式:

      數(shù)據(jù)類型 數(shù)據(jù)名[][]=new 數(shù)據(jù)類型[行的個數(shù)][列的個數(shù)]; 二維數(shù)組初值的賦值格式:

      數(shù)據(jù)類型 數(shù)組名={{第0行初值},{第1行初值},……

      {第n行初值} };

      取得二維數(shù)組的行數(shù)與特定行的元素的個數(shù)格式: 數(shù)組名.length

      //取得數(shù)組的行數(shù)

      數(shù)組名[行的索引].length

      //取得特定行元素的個數(shù) 聲明方法并定義內(nèi)容格式:

      返回值類型 方法名稱(類型 參數(shù)1,類型 參數(shù)2,…){ 程序語句;

      return 表達式;22、23、24、25、26、27、28、} 類的定義格式: class 類名稱 { 數(shù)據(jù)類型 屬性;

      ……

      返回值的數(shù)據(jù)類型 方法名稱(參數(shù)1,參數(shù)2…){ 程序語句;

      return 表達式; } } 對象的產(chǎn)生格式:

      類名 對象名=new 類名();

      訪問對象中某個變量或方法格式: 訪問對象:對象名稱.屬性名 訪問方法:對象名稱.方法名()封裝類中的屬性或方法格式:

      封裝屬性:private 屬性類型 屬性名

      封裝方法:private 方法返回類型 方法名稱(參數(shù))構(gòu)造方法的定義格式: class 類名稱 { 訪問權(quán)限 類名稱(類型1 參數(shù)1,類型2 參數(shù)2,…){

      程序語句;

      //構(gòu)造方法沒有返回值 } } 定義內(nèi)部類格式:

      標識符 class 外部類名稱 { //外部類的成員

      標識符 class 內(nèi)部類的名稱 {

      //內(nèi)部類的成員 } } 類的繼承格式

      class父類

      //定義父類 { } class 子類 extends 父類

      //用extends關鍵字實現(xiàn)類的繼承 {29、30、31、32、33、34、35、} Super調(diào)用父類中的屬性或方法格式: super.父類中的屬性; super.父類中的方法();

      子類復寫父類中的方法的格式: class Super { 訪問權(quán)限 方法返回值類型 方法1(參數(shù)1)

      { } } class Sub extends Super { 訪問權(quán)限 方法返回值類型 方法1(參數(shù)1)//復寫父類中的方法

      { } } 抽象類的定義格式:

      abstract class 類名稱

      //定義抽象類 { 聲明數(shù)據(jù)成員;

      訪問權(quán)限 返回值的數(shù)據(jù)類型 方法名稱(參數(shù)…)

      { } abstract 返回值的數(shù)據(jù)類型 方法名稱(參數(shù)…);

      //定義抽象方法,在抽象方法里,沒有定義處理的方式 } 接口的定義格式:

      Interface 接口名稱

      //定義抽象類 { final 數(shù)據(jù)類型 成員名稱=常量;

      //數(shù)據(jù)成員必須賦初值

      abstract 返回值的數(shù)據(jù)類型 方法名稱(參數(shù)…);

      //抽象方法,注意在抽象方法里,沒有定義處理的方式 } 接口的實現(xiàn)格式:

      class 類名稱 implements 接口A,接口B

      //接口的實現(xiàn) { …… } 接口的擴展格式:

      Interface 子接口名稱 extends 父接口1,父接口2,… { …… } 異常處理的語法格式: try36、37、38、39、40、41、{ 要檢查的程序語句;

      … } catch(異常類 對象名稱){ 異常發(fā)生時的處理語句; } finally { 一定會運行到的程序代碼; } 拋出異常的語法格式: Throw 異常類實例對象; 由方法拋出異常格式:

      方法名稱(參數(shù)…)throws 異常類1,異常類2,… 編寫自定義異常類格式:

      class 異常名稱 extends Exception { …… } Package的聲明格式: Package package名稱; package的導入格式:

      import package名稱.類名稱; 由鍵盤輸入數(shù)據(jù)基本形式格式: Import java.io.*;Public class class_name

      //類名 { Public static void main(String args[])throws IOException { BufferedReader buf;//聲明buf為BufferedReader類的變量

      String str;//聲明str為String類型的變量

      ……

      Buf=new BufferedReader(new InputStreamReader(System.in));//產(chǎn)生buf對象

      Str=buf.readLine();

      //讀入字符串至buf …… } }

      第四篇:Java總結(jié)

      Java實驗

      1.調(diào)試HelloWorld程序

      2.this,super,get ,set,把課本90頁程序4.7中的name改成私有變量

      3.繼承,重寫,父類引用指向子類對象

      4.驗證數(shù)組Arrays類和Collection類

      5.編寫一個自己的異常類并捕獲之。

      6.編寫一個類,將該類的幾個對象裝入TreeSet容器中,并將該容器的內(nèi)容通過輸出流寫入文件中。

      前三章重點

      0.java的數(shù)據(jù)類型:四類八種-(1)布爾類型Boolean;(2)字符類型char;(3)整數(shù)byte,short,int,long;(4)浮點類型:float,double;1.面向?qū)ο蟮?個基本特征:封裝,繼承,多態(tài)。

      2.構(gòu)造方法和普通方法的區(qū)別:對構(gòu)造方法而言,它有以下特性---(1)方法名必須與要創(chuàng)建對象的類名相同。(2)不允許聲明返回類型,即使聲明為void也不被允許。

      3.this關鍵字:是一個引用,this引用指向的是其本身所在方法的當前對象。this的使用方法:(1)調(diào)用成員變量;(2)可以用this()調(diào)用其他構(gòu)造函數(shù)。

      4.java中只對類成員變量進行自動初始化,而方法內(nèi)部的局部變量在使用前必須手動初始化。

      5.static 關鍵字:可用來修飾類的成員變量和成員方法,需要注意兩點--(1)靜態(tài)方法不能調(diào)用類的非靜態(tài)方法,不能訪問類的非靜態(tài)變量。(2)靜態(tài)方法和靜態(tài)變量(非私有的)可以有兩種調(diào)用方式,一是實例對象調(diào)用,二是類名直接調(diào)用。

      6.類成員訪問控制修飾符public、private、default(可不寫,即缺省狀態(tài))、protected的使用:public-公用的;private-私有的,只在定義它的類內(nèi)部使用;default-可以被同一包中的類訪問;protected-既可以被同一包中的類訪問,也可以被不在同一包中的子類訪問。

      7.方法的重載:指方法名相同,而方法的參數(shù)列表不相同。參數(shù)列表不同有三層意思:(1)參數(shù)類型不同。(2)參數(shù)順序不同。(3)參數(shù)個數(shù)不同。另外需注意,在同一個類中,當方法名和參數(shù)列表都相同時,訪問控制修飾符或方法返回類型不相同并不是方法的重載,而且這種情況在java中是不被允許的。

      第四五章重點

      1.繼承:需使用關鍵字extends.在使用繼承時需注意--(1)每個子類只能定義一個超類(父類),即extends后面應且僅應跟一個類名作為該類的父類。(2)父類中的私有屬性和私有方法不能被繼承。

      2.方法的重寫:即子類對超類中的方法保持方法名、返回類型和參數(shù)列表不變,重寫了方法體,使子類和超類完成不同的工作。重寫需注意下面幾個關鍵點:(1)超類中的私有方法不能被重寫。(2)訪問限制符強度由低到高依次是:public、protected、default、private,在重寫過程中,如果子類和父類中方法的返回值、方法名及方法的參數(shù)列表都相同,這時,要求子類中該方法的訪問限制符強度不能超過父類的。即如果父類中為public時,子類也只能為public,而不能是余下的三種。

      3.重載(overload)和覆蓋(override)的區(qū)別:(1)重載—發(fā)生在一個類的內(nèi)部或子類與父類之間,要求方法名相同而參數(shù)列表不一樣。(2)覆蓋—只能發(fā)生在繼承過程中,要求子類方法的返回類型,方法名和參數(shù)列表同父類的都相同,而方法體不一樣。

      4.構(gòu)造器的調(diào)用順序:先祖先,再客人,最后自己。

      5.多態(tài):指在類繼承中子類和父類中可以有同名但意義或?qū)崿F(xiàn)方式不同的屬性和方法。分為:覆蓋和重載。多態(tài)的優(yōu)點:因為多態(tài),可以在程序中對類進行擴展,而不需改變那些操作基類接口的方法。

      6.動態(tài)綁定:指在代碼執(zhí)行期間,判斷所引用對象的實際類型,根據(jù)其實際類型調(diào)用相應方法。動態(tài)綁定存在的三個必要條件--(1)要有繼承;(2)要有重寫(覆蓋);(3)父類引用指向子類對象(向上轉(zhuǎn)型)。

      7.Object中常用的方法總結(jié):toString();wait();equals();notify();notifyAll();hashCode();getClass();clone();finalize();(呵呵,盡可能記幾個,以防老師讓咱們列舉)注:java中Object類是所有類的父類,即java中所有的類都有上述9種方法。

      8.對象的比較:注意關鍵字instanceof的使用。

      9.抽象類:

      抽象方法—用關鍵字abstract修飾的方法,該方法只需方法的聲明,而不需方法的實現(xiàn)(即無方法體)。

      抽象類——至少包含一個抽象方法的類,也用abstract關鍵字聲明。(注:(1)抽象類中可以有一些具體方法。(2)抽象類不能實例化。(3)子類繼承抽象類必須實現(xiàn)其抽象方法。)

      10.接口:

      (1)可以看成是高度抽象的抽象類,但是接口不是類。

      (2)用關鍵字interface來聲明接口,用關鍵字imlpements來實現(xiàn)接口。

      (3)接口不能有具體方法,不能有實例數(shù)據(jù),但可以定義常量。

      (4)實現(xiàn)接口的非抽象類必須實現(xiàn)接口的所有方法。

      (5)每個類可以實現(xiàn)多個接口,這些接口用逗號隔開,同時,一個接口可以被多個類實現(xiàn)。

      第六章:重點看一下實驗四

      1.容器——Collection(接口)和Map(接口).Collection——Set(接口)和List(接口)。其中,List必須保持元素的特定順序,常見的實現(xiàn)類有ArrayList和LinkedList;Set不能有重復元素,常見的實現(xiàn)類有HashSet和TreeSet。

      Map——一組成對的“鍵值對”對象,即其元素是成對的對象,常見的實現(xiàn)類有HashMap和TreeMap。

      第七章 1.異常類的根類是Throwable類,它的兩個直接子類是Error類和Exception類。

      2.異常中常用的5個關鍵字為:try,catch,finally,throw,throws.其中,try和catch:用于捕獲異常;finally:無論try塊中的異常是否拋出,finally中的代碼塊總能被執(zhí)行;throw:拋出異常;throws:聲明異常。

      3.“未被檢查的異常(Unchecked Exceptions)”和“受檢查的異常(Checked Exceptions)”——

      Unchecked Exceptions :編譯器不檢查方法是否處理或拋出的異常,即不做處理,編譯時不報錯。

      Checked Exceptions:受編譯器檢查的異常,即不做處理編譯時通不過。

      4.常見的幾種Checked Exceptions:ClassNotFoundExceptionIOExceptionInterruptedExceptionFileNotFoundException.(盡可能的記幾個吧,以防不測)第八章

      1.流--字節(jié)流和字符流;

      流--節(jié)點流和處理流。

      2.所有的輸入流都是從抽象類InputStream和Reader繼承而來。所有輸出流都是從抽象類OutputStream和Writer繼承而來。3.字節(jié)流:InputStream和OutputStream;字符流:Reader和Writer;

      4.節(jié)點流:直接與文件等底層打交道,如FileInputStreamFileOutputStreamFileReaderFileWriter.處理流:相當于包裝流,套在節(jié)點流上,方便數(shù)據(jù)處理。相關一些用法,具體參考最后一次實驗。

      第五篇:java總結(jié)

      調(diào)用父類構(gòu)造方法

      ? 在子類的構(gòu)造方法中可使用super(argument_list)語句調(diào)用父類的構(gòu)造方法

      ? 如果子類的構(gòu)造方法中沒有顯示地調(diào)用父類構(gòu)造方法,也沒有使用this關鍵字調(diào)用重載的其它構(gòu)造方法,則系統(tǒng)默認調(diào)用父類無參數(shù)的構(gòu)造方法

      ? 如果子類構(gòu)造方法中既未顯式調(diào)用父類構(gòu)造方法,而父類中又沒有無參的構(gòu)造方法,則編譯出錯

      1public class Person {

      3private String name;

      4private int age;private Date birthDate;

      7public Person(String name, int age, Date d){ 8this.name = name;

      9this.age = age;

      10this.birthDate = d;

      11}

      12public Person(String name, int age){ 13this(name, age, null);

      14}

      15public Person(String name, Date d){ 16this(name, 30, d);

      17}

      18public Person(String name){

      19this(name, 30);}

      21// ……

      22}

      1public class Student extends Person {

      2private String school;

      4public Student(String name, int age, String s){ 5super(name, age);

      6school = s;

      7}

      8public Student(String name, String s){

      9super(name);

      10school = s;

      11}

      12public Student(String s){ // 編譯出錯: no super()13school = s;

      14}

      15}

      對象構(gòu)造和初始化細節(jié)

      ? 分配存儲空間并進行默認的初始化

      ? 按下述步驟初始化實例變量

      1.綁定構(gòu)造方法參數(shù)

      2.如有this()調(diào)用,則調(diào)用相應的重載構(gòu)造方法,然后跳轉(zhuǎn)到步驟5

      3.顯式或隱式追溯調(diào)用父類的構(gòu)造方法(Object類除外)

      4.進行實例變量的顯式初始化操作

      5.執(zhí)行當前構(gòu)造方法的方法體

      ==操作符與equals方法

      ==操作符與equals方法的區(qū)別:

      ? 引用類型比較引用;基本類型比較值;

      ? equals()方法只能比較引用類型,“==”可以比較引用類型及基本類型;

      ? 特例:當用equals()方法進行比較時,對類File、String、Date及封裝類(Wrapper Class)來說,是比較類型及內(nèi)容而不考慮引用的是否是同一個實例;

      ? 用“==”進行比較時,符號兩邊的數(shù)據(jù)類型必須一致(可自動轉(zhuǎn)換的基本數(shù)據(jù)類型除外),否則編譯出錯;

      由裝箱引發(fā)的——Integer比較的來龍去脈

      前置知識: 眾所周之,java是保留了int,char等基本數(shù)據(jù)類型的,也就是說int類型的并不是對象,然而有些方法卻需要object 類型的變量,所以java使用了裝箱機制,我們可一自豪的這樣聲明一個整型變量:Integer a = new Integer(10);那么整型的a也就是對象了,那這句是什么意思呢:Integer a= 10;java中可以這樣聲明一個對象嗎?當然不是,從jdk1.5后,java實現(xiàn)了自動裝箱,也就是自動將Integer a =10 中的int類型的10轉(zhuǎn)化為了 Integer類型。好,有了前面的只是我們且先看一個題目:

      Integer a = 127;

      Integer b = 127;

      Integer c = 128;

      Integer d = 128;

      System.out.println(a==b);

      System.out.println(c==d);

      答案是什么呢? 如果您回答true,false,那么很遺憾的告訴你,哈哈,其實你答對了?。?/p>

      那我們暈了就相差1的兩個數(shù)為啥走向了“反目成仇”的地步呢?憑啥127等于127,我128就不等于128呢?且聽我慢慢道來,Integer a =127,Integer a=128。

      127,128應該不會造成什么差異吧,難道是自動裝箱的過程有貓膩?找下源碼看看:

      private static class IntegerCache {

      private IntegerCache(){}

      static final Integer cache[] = new Integer[-(-128)+ 127 + 1];static {

      for(int i = 0;i < cache.length;i++)

      cache[i] = new Integer(i128);

      }

      這是用一個for循環(huán)對數(shù)組cache賦值,cache[255] = new Integer(255-128),也就是newl一個Integer(127),并把引用賦值給cache[255],好了,然后是Integer b= 127,流程基本一樣,最后又到了cache[255] = new Integer(255-128),這一句,那我們迷糊了,這不是又new了一個對象127嗎,然后把引用賦值給cache[255],我們比較這兩個引用(前面聲明a的時候也有一個),由于是不同的地址,所以肯定不會相等,應該返回false??!呵呵,這么想你就錯了,請注意看for語句給cache[i]初始化的時候外面還一個{}呢,{}前面一個大大的static關鍵字大咧咧的杵在哪呢,對靜態(tài)的,那么我們就可以回想下static有什么特性了,只能初始化一次,在對象間共享,也就是不同的對象共享同一個static數(shù)據(jù),那么當我們Integer b = 127的時候,并沒有new出一個新對象

      來,而是共享了a這個對象的引用,記住,他們共享了同一個引用??!,那么我們進行比較a==b時,由于是同一個對象的引用(她們在堆中的地址相同),那當然返回true了??!

      然后我們在看Integer c = 128;Integer d = 128;這兩句?,F(xiàn)在不用我說就應該能明白了吧,當數(shù)據(jù)不再-128到127之間時,是不執(zhí)行return

      IntegerCache.cache[i + offset];這句的,也就是不會返回一個static的引用,而是執(zhí)行了return new Integer(i);于是當 Integer d = 128 時,又會重新返回一個引用,兩個不同的引用

      在做c==d 的比較時當然返回false了!

      下面附上本程序的字節(jié)碼以供喜歡底層的讀者參考:

      Compiled from “CompareInteger.java”

      public class CompareInteger extends java.lang.Object{

      public CompareInteger();

      Code:

      0:aload_0

      1:invokespecial#1;//Method java/lang/Object.“”:()V4:return

      public static void main(java.lang.String[]);

      Code:

      0:bipush 127

      2:invokestatic#2;//Method

      java/lang/Integer.valueOf:(I)Ljava/lang/Int

      eger;

      5:astore_1

      6:bipush 127

      8:invokestatic#2;//Method

      java/lang/Integer.valueOf:(I)Ljava/lang/Int

      eger;

      11: astore_2

      12: sipush 128

      15: invokestatic#2;//Method

      java/lang/Integer.valueOf:(I)Ljava/lang/Int

      eger;

      18: astore_3

      19: sipush 128

      22: invokestatic#2;//Method

      java/lang/Integer.valueOf:(I)Ljava/lang/Int

      eger;

      25: astore 4

      27: getstatic#3;//Field

      java/lang/System.out:Ljava/io/PrintStream;

      30: aload_1

      31: aload_2

      32: if_acmpne39

      35: iconst_1

      36: goto40

      39: iconst_0

      40: invokevirtual#4;//Method java/io/PrintStream.println:(Z)V43: getstatic#3;//Field

      java/lang/System.out:Ljava/io/PrintStream;

      46: aload_3

      47: aload4

      49: if_acmpne56

      52: iconst_1

      53: goto57

      56: iconst_0

      57: invokevirtual#4;//Method java/io/PrintStream.println:(Z)V60: return

      }

      評論:呵呵,這么想你就錯了,請注意看for語句給cache[i]初始化的時候外面還一個{}呢,{}前面一個大大的static關鍵字大咧咧的杵在哪呢,對靜態(tài)的,那么我們就可以回想下static有什么特性了,只能初始化一次,在對象間共享,也就是不同的對象共享同一個static數(shù)據(jù),那么當我們Integer b = 127的時候,并沒有new出一個新對象來,而是共享了a這個對象的引用,記住,他們共享了同一個引用??!

      呵呵,博主我被你這句話小小的誤導了一下,其實你這里說的原理沒錯,但是把位置說錯了,這段代碼只是初始化cache:

      static {

      for(int i = 0;i < cache.length;i++)

      cache[i] = new Integer(i-128);

      }

      但真正讓cache[i]為static變量的是這句代碼:

      static final Integer cache[] = new Integer[-(-128)+ 127 + 1];

      下載java考試總結(jié)word格式文檔
      下載java考試總結(jié).doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


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

      相關范文推薦

        java web考試試題

        2. Web的工作模式是:B瀏覽器/服務器 3. 表示:D強制換行 4.一組選項中可以選擇多項的表單元素是:A Checkbox 6. 下面那種語言是解釋執(zhí)行的:C JavaScript 2. JSP文件應放在Tomcat......

        Java面試題目考試

        Java面試題目考試 Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類型?] 方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫Overridin......

        2010年秋季Java考試編程題總結(jié)

        1.編寫一個程序,程序能在命令行中輸出“早上好,good Morning”。 public class Hello{ public static void main (String args){ System.out.println("早上好,goodMoeing");......

        java網(wǎng)絡編程考試總結(jié)要點(推薦五篇)

        1、動靜態(tài)網(wǎng)頁的概念,常見后綴及基本區(qū)別。 靜態(tài)網(wǎng)頁:是指用HTML標記語言等來編排,頁面中的內(nèi)容固定不變,存盤后一般以*.html、*.htm等文件形式存在的網(wǎng)頁。 動態(tài)網(wǎng)頁:是指網(wǎng)頁中......

        Java個人總結(jié)參考

        1、Java中取消指針運算防止了內(nèi)存泄露的可能性。Java中的引用其實就是指針。JAVA語言不支持C++友元方法或友類。 2、編寫完java源代碼后,首先將其編譯為一種中間狀態(tài)字的字節(jié)......

        Java筆記總結(jié)

        1、Java是一種可以編譯 跨平臺、面向?qū)ο蟮母呒売嬎銠C語言。 2、Java語言的特點:簡單、安全、跨平臺、面向?qū)ο?、支持多線程。 3、Java的三個技術(shù)平臺分別是 JavaSE、JavaEE......

        java實習總結(jié)

        java實習總結(jié) java實習總結(jié)1 實習第五個禮拜,使用collection框架做派叫號系統(tǒng)首先分析項目需求,概述如下:1.產(chǎn)品參與者顧客:到營業(yè)大廳排隊取號柜員:提供業(yè)務服務的柜臺業(yè)務員管......

        java培訓總結(jié)(范文大全)

        在現(xiàn)在這個科技飛速發(fā)展的時代,計算機已經(jīng)悄然走進我們的生活,并且占據(jù)了不可動搖與替代的地位,無論是在工作還是生活,學習還是娛樂中,當我們意識到的時候,卻突然發(fā)現(xiàn)我們已經(jīng)離不......