一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Java筆記(一)

 依笑乘風(fēng)涼 2007-05-09

Java筆記(一)

JDK  Java Develop Kit 即Java開發(fā)工具包

J2SDK Java2 Software Develop Kit Java軟件開發(fā)包

JRE Java Runtime Environment 即Java運(yùn)行環(huán)境,通常已包含在J2SDK中了.如果我們僅僅是為了運(yùn)行Java程序,而不是從事Java開發(fā),我們可以直接下載JRE,在我們的程序上安裝

Java開發(fā)工具包(JDK)分為三個版本:J2SE J2EE J2ME

Java代碼是解釋執(zhí)行的,我們使用Java編譯器將Java代碼編譯成字節(jié)碼,這是一種中間代碼,然后由Java解釋其解釋執(zhí)行。而C++程序是編譯執(zhí)行的,C++程序代碼被編譯為本地機(jī)器指令,然后執(zhí)行

Java語言的一個重要特性就是在語言級支持多線程的程序設(shè)計(jì)。

Java是動態(tài)的,其動態(tài)特性是其面向?qū)ο笤O(shè)計(jì)方法的擴(kuò)展。它允許程序動態(tài)地裝入運(yùn)行過程中所需要的類,這是我們采用C++語言進(jìn)行面向?qū)ο蟪绦蛟O(shè)計(jì)所無法實(shí)現(xiàn)的。

Java跨平臺的原理:通過Java虛擬機(jī)(JVM)來實(shí)現(xiàn)的。
    Java應(yīng)用程序的開發(fā)周期包括編譯、下載、解釋和執(zhí)行幾個部分。
    Java編譯程序(javac.exe)將Java源程序翻譯為JVM可執(zhí)行代碼——字節(jié)碼,Java編譯器不將對變量和方法的引用編譯為數(shù)值引用,而是將這些符號引用信息保留在字節(jié)碼中,由解釋器在運(yùn)行過程中創(chuàng)建內(nèi)存布局,然后再通過查表來確定一個方法所在的地址。
    運(yùn)行JVM字節(jié)碼的工作是由解釋器(java.exe)來完成的。解釋執(zhí)行過程分三步進(jìn)行:代碼的裝入(由類裝載器完成)、代碼的效驗(yàn)和代碼的執(zhí)行
    Java的平臺獨(dú)立性是以JVM為基礎(chǔ)的,但JVM不是跨平臺的

j2sdk文件夾下
    bin(binary二進(jìn)制):放的是java的可執(zhí)行程序
    demo:sun公司提供的一些例子程序
    lib:類庫和一些jre,java運(yùn)行時的環(huán)境

比如一個編譯單元中有個public類welcome,編譯(javac,編譯的是原文件)完成后生成了welcome.class文件,當(dāng)用解釋器命令Java welcome時,不是加載welcome.class這個文件,而是加載welcome這個類
 
/* */注釋程序段  //單行注釋 /** */生成注釋文件
 
UltraEdit下的java文件,變紅色的是個類,比如:System就是個類,out是個對象,println是個方法,打印完后面的字符串后換行,print方法不換行,java中\(zhòng)n也表示換行
 
    一維數(shù)組:在C中,可以這樣定義數(shù)組:int num[3],但在java中,數(shù)組在定義的時候是不能夠分配空間的,所以在[]里面不能寫空間大小??梢匀缦露x:
int[] num; num=new int[3]  或  int[] num=new int[3]以給數(shù)組分配大小。
可以定義同時初始化:int[] num={1,2,3}
但int[] num;num={1,2,3}//error
也可以int[] num=new int[]{1,2,3}
int[] num=new int[3]{1,2,3}//error
 
    二維數(shù)組:int [][] num;num=new int[3][4]
還可以這樣(每行分配不同長度):int [][] num;
                                num=new int[3][];
                                num[0]=new int[5];
                                num[1]=new int[3];
                                num[2]=new int[2];
可以這樣int [][] num={{1,2,3},{4,5},{6}}
 
java中移位運(yùn)算符:<<左移 >>帶符號右移 >>>無符號右移 x<<2左移兩位 左移一位乘以2,右移一位除以2
 
要查一個方法的時候首先要知道方法所在的包名,比如java.lang,包下面是類庫中的類,java中所有基本數(shù)據(jù)類型都有相對應(yīng)的類,比如Integer、double、float、Character
 
類是創(chuàng)建對象的模板,對象是類的實(shí)例。類實(shí)質(zhì)上定義的是一種數(shù)據(jù)類型,這種數(shù)據(jù)類型就是對象類型。所以我們可以使用類名稱來聲明對象變量。聲明對象變量后,還不能使用對象。必須用運(yùn)算符new創(chuàng)建對象實(shí)體之后,才能使用對象。
例如:有一個類Point
 Point pt; //聲明對象
 pt=new Point();//常見對象實(shí)體
 pt.x……
 
類的構(gòu)造方法:
  構(gòu)造方法的名字和類名相同,并且沒有返回值
  構(gòu)造方法主要用于為類的對象定義初始化狀態(tài)
  我們不能直接調(diào)用構(gòu)造方法,必須通過new關(guān)鍵字來自動調(diào)用,從而創(chuàng)加類的實(shí)例
  java的類都要求有構(gòu)造方法,如果沒有定義構(gòu)造方法,java編譯器會為我們提供一個缺省的構(gòu)造方法,也就是不帶參數(shù)的構(gòu)造方法。當(dāng)我們用缺省的構(gòu)造方法初始化對象時,系統(tǒng)用默認(rèn)值初始化對象的成員變量。但只要類中自己提供了構(gòu)造函數(shù),那么java就不會提供缺省的構(gòu)造方法。
各種數(shù)據(jù)類型的默認(rèn)值為:數(shù)值型 0;boolean false; char ‘\0‘; 對象 null;
 
new關(guān)鍵字的作用:
  為對象分配內(nèi)存空間
  引起對象構(gòu)造方法的調(diào)用
  為對象返回一個引用
 
反編譯工具javap.exe會將成員變量和成員方法的信息打印出來,它加載的是類
 
方法的重載的構(gòu)成條件:方法名相同,但參數(shù)類型或參數(shù)個數(shù)不同
 
特殊變量this
  this變量代表對象本身
  當(dāng)類中有兩個同名變量,一個屬于類(類的成員變量),而另一個屬于某個特定的方法(方法中的局部變量),使用this區(qū)分成員變量和局部變量
  使用this簡化構(gòu)造函數(shù)的調(diào)用。例如:
  class Point
{
   int x,y;
   Point(a,b)
   {
      x=a;
      y=b;
   }
   Point()
   {
     this(1,1)  //會調(diào)用帶參數(shù)的構(gòu)造函數(shù)
   }
   void output()
   {
      System.out.println(x);
      System.out.println(x);
   }
   public static void main(String[] args)
     {
     Point pt;
     pt=new Point();
     pt.output();
     }
}
 
一個類所有的實(shí)例(對象)調(diào)用的成員方法在內(nèi)存中只有一份拷貝,盡管在內(nèi)存中可能有多個對象。而數(shù)據(jù)成員在類的每個對象所在內(nèi)存中都存在著一份拷貝。this變量允許相同的實(shí)例方法為不同的對象工作。每當(dāng)調(diào)用一個實(shí)例方法時,this變量將被設(shè)置成引用該實(shí)例方法的特定的類對象。方法的代碼接著會與this所代表的對象的特定數(shù)據(jù)建立關(guān)聯(lián)
 
關(guān)鍵字static
    靜態(tài)方法和靜態(tài)變量是屬于某一個類,而不屬于類的對象
    靜態(tài)方法和靜態(tài)變量的引用直接通過類名引用
    在靜態(tài)方法中不能調(diào)用非靜態(tài)的方法和引用非靜態(tài)的成員變量。但反之,可以
    可以用類的對象obj去調(diào)用靜態(tài)的方法method(),如obj.method()
    類變量和類方法在類加載的時候也被加載并分配了內(nèi)存空間
 
常量的定義
    使用關(guān)鍵字final定義常量(其值在運(yùn)行時不能改變):final double PI=3.1415926
    作為一種約定,在定義常量時,通常采用大寫形式
    final常量可以在聲明的同時賦初值,也可以在構(gòu)造函數(shù)中賦初值(若為static常量則不可)
    為了節(jié)省內(nèi)存,我們通常將常量聲明為靜態(tài)的(static):static final double PI=3.1415926
在Java中,通過關(guān)鍵字extends繼承一個已有的類,被繼承的類稱為父類(超類,基類),新的類稱為子類(派生類):class Fish extends Animal

在Java中,不允許多繼承。構(gòu)造方法是不能被繼承的
 
在子類中定義一個與父類同名、返回類型、參數(shù)類型均相同的一個方法,稱為方法的覆蓋。覆蓋發(fā)生在子類與父類之間
 
特殊變量super:
    特殊變量super,提供了對父類的訪問
    可以使用super訪問父類被子類隱藏的變量或覆蓋的方法
    每個子類構(gòu)造方法的第一條語句,都是隱含地調(diào)用super(),如果父類沒有這種形式的構(gòu)造函數(shù),那么在編譯的時候就會報(bào)錯
 
多態(tài)性
    通過覆蓋父類的方法來實(shí)現(xiàn),在運(yùn)行時根據(jù)傳遞的對象引用,來調(diào)用相應(yīng)的方法。若將子類對象的引用傳遞給聲明為父類的參數(shù),若子類有這個方法,就調(diào)用子類的方法,若子類沒有這個方法,就調(diào)用父類的方法
 
instanceof:判斷一個對象是否是一個類的實(shí)例:if(an instanceof Animal)……

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    亚洲一区二区三区精选| 黑人巨大精品欧美一区二区区| 成人精品网一区二区三区| 激情五月天免费在线观看| 午夜福利精品视频视频| 偷自拍亚洲欧美一区二页| 久久老熟女一区二区三区福利| 欧美大粗爽一区二区三区| 五月的丁香婷婷综合网| 九九蜜桃视频香蕉视频| 日韩精品一区二区三区av在线| 少妇在线一区二区三区| 情一色一区二区三区四| 视频一区二区 国产精品| 九九热视频网在线观看| 人妻乱近亲奸中文字幕| 欧美一区日韩二区亚洲三区| 午夜精品黄片在线播放| 成人精品日韩专区在线观看| 亚洲国产另类久久精品| 精品久久综合日本欧美| 99国产一区在线播放| av在线免费观看一区二区三区| 国产亚洲欧美日韩国亚语| 亚洲男女性生活免费视频| 大尺度激情福利视频在线观看| 亚洲午夜福利不卡片在线| 国产中文字幕一区二区| 亚洲熟妇熟女久久精品| 亚洲午夜av一区二区| 国产亚洲精品久久久优势| 少妇丰满a一区二区三区| 国产99久久精品果冻传媒| 亚洲中文字幕在线视频频道| 国产欧美日韩视频91| 国产三级欧美三级日韩三级| 久久天堂夜夜一本婷婷| 老司机亚洲精品一区二区| 国产高清一区二区不卡| 一区二区福利在线视频| 国产又大又黄又粗又免费|