日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java編程思想讀書筆記(第5-7章)

瀏覽:43日期:2024-06-17 09:05:08
內容: 第2章萬事萬物皆對象一.所有對象都必須由你建立1.存儲在哪里1.寄存器:我們在程序中無法控制2.stack:存放基本類型的數據和對象的reference,但對象本身不存放在stack中,而是存放在Heap中3.Heap:存放用new產生的數據4.Static storage:存放在對象中用static定義的靜態成員5.Constant storage:存放常量6.NON-RAM:硬盤等永久存儲空間2.特例:基本型別基本類型數據存放在Stack中,存放的是數據。而產生對象時,只把對象的reference存放在stack中,用于指向某個對象,對象本身存放在Heap中。3.Java中的數組當你產生某個存儲對象的數組時,真正產生的其實是存儲reference的數組。引數組建立后,其中的每一個reference都會被自動設為null,表示“不指向任何對象。二.建立新的數據型別:Class1.數據成員和函數1.1基本成員的缺省值1)當class的某個成員屬于基本型別時,即使你沒有為它提供初值,Java仍保證它有一個缺省值。2)只有當變量身份是“class內的成員時,Java才保證為該變量提供初值。三.函數(Mehtods),引數(arguments),返回值(return values)1.引數列當引數傳遞的是對象時,傳遞的是對象的reference。四.注解用內嵌式文檔Java提供兩種注解風格:/*XXXX*/、//XXXX第3章控制程序流程一.使用Java運算符1.關系運算符1.) 當對兩個對象運用關系運算符進行比較時,比較的是object reference,如:java/lang/Integer.java.html' target='_blank'>Integer n1 = new java/lang/Integer.java.html' target='_blank'>Integer(3);java/lang/Integer.java.html' target='_blank'>Integer n2 = new java/lang/Integer.java.html' target='_blank'>Integer(3);java/lang/System.java.html' target='_blank'>System.out.println(n1==n2);結果為false,因為兩個object reference(n1和n2)值是不同的2) quals()的缺省行為也是拿referenct來比較。不過Java中的class覆寫了equals方法,如:java/lang/Integer.java.html' target='_blank'>Integer n1 = new java/lang/Integer.java.html' target='_blank'>Integer(3);java/lang/Integer.java.html' target='_blank'>Integer n2 = new java/lang/Integer.java.html' target='_blank'>Integer(3);java/lang/System.java.html' target='_blank'>System.out.println(n1.quals(n2));//值為true2.邏輯運算符1)只能將and、or、not施用于boolean值身上。如果邏輯運算符兩邊的值存在non-boolean值,將會出錯,如:int test1 = 1;java/lang/System.java.html' target='_blank'>System.out.println((test && 1String ss){}Flower(int petals, Sting ss){//petals++;調用另一個構造函數的語句必須在最起始的位置this(petals);//this(ss);會產生錯誤,因為在一個構造函數中只能調用一個構造函數}}**:1)在構造調用另一個構造函數,調用動作必須置于最起始的位置2)不能在構造函數以外的任何函數內調用構造函數3)在一個構造函數內只能調用一個構造函數4.Static的意義無法在static函數中調用non-static函數(反向可行)。為什么不能呢,我們看下面的例子。例4.2.4.1假設能在static函數中調用non-static函數,那么(a)處就將出錯。因為在沒有產生Movie class實例之前,在就不存在Movie class內的name實例,而在getName()中卻要使用name實例,顯然的錯誤的。class Movie{java/lang/String.java.html' target='_blank'>String name = “;Movie(){}public Movie(java/lang/String.java.html' target='_blank'>String name) { this.name = name; }public static java/lang/String.java.html' target='_blank'>String getName() { return name; }}public class Test{public static void main(java/lang/String.java.html' target='_blank'>String[] args){//下面兩名先產生實例后再調用getName()沒有問題//Movie movie1 = new Movie(“movie1);//String name1 = movie1.getName();//下面一名將出錯//String name2 = Movie.getname(); (a)}}三.清理(cleanup):終結(finalization)與垃圾回收(garbage collection)1)你的對象可能不會被回收只有當程序不夠內存時,垃圾回收器才會啟動去回收不再被使用的對象的內存空間。某個對象所占用的空間可能永遠不會被釋放掉,因為你的程序可能永遠不會逼近內存用完的那一刻,而垃圾回收器完全沒有被啟動以釋放你的對象所占據的內存,那些空間便會在程序終止時才一次歸還給操作系統3)只有在采用原生函數(native methods)時,才使用finalize()。四.成員初始化(member initialization)1)函數中的變量不會被自動初始化,如void f(){int i;i++;}將發生編譯錯誤,因為i沒有被初始化。2)class的數據成員會被自動初始化,具體情況如下(見P220例子):基本型別:boolean:false、char:null(u0000)、byte:0、short:0、int:0、long:0 、float:0、double:0第6章重復運用classes一.繼承(inheritance)1.在derived class中overriding某個函數時,只能覆寫base class中的接口,即base class中的public或protected或friendly函數。如果試圖overriding一個private函數,雖然編譯通過,但實際上你只是在derived class中添加了一個函數。如class Cleanser{private void prt(){//(b)java/lang/System.java.html' target='_blank'>System.out.println('Cleanser.prt()');}}public class ExplicitStatic extends Cleanser{public void prt(){java/lang/System.java.html' target='_blank'>System.out.println('ExplicitStatic.prt()');}public static void main(java/lang/String.java.html' target='_blank'>String[] args){Cleanser x = new ExplicitStatic();x.prt();//(a)}}因為Cleanser中的prt()是private,所以不能在其derived class中被覆寫。ExplicitStatic中的prt()只是ExplicitStatic中的一個函數,所以當試圖在(a)處通過多態來調用prt()時,會發生錯誤。如果把(b)處的private去掉,則結果為ExplicitStatic.prt()2.Super的使用1)通過關鍵字super可以調用當前class的superclass(父類)。例6.1.1.1class Base{Base(){java/lang/System.java.html' target='_blank'>System.out.println('Base()');}public void scrub() { java/lang/System.java.html' target='_blank'>System.out.println(' Base.scrub()'); }}class Cleanser extends Base{private java/lang/String.java.html' target='_blank'>String s = new java/lang/String.java.html' target='_blank'>String('Cleanser');public void append(java/lang/String.java.html' target='_blank'>String a) { s+=a; }public void dilute() { append(' dilute()'); }public void apply() { append(' apply()'); }public void scrub() { append(' scrub()'); }public void print() { java/lang/System.java.html' target='_blank'>System.out.println(s); }Cleanser(){java/lang/System.java.html' target='_blank'>System.out.println('Cleanser(): ' + s);}public static void testStatic(){java/lang/System.java.html' target='_blank'>System.out.println('testStatic()');}public static void main(java/lang/String.java.html' target='_blank'>String[] args){Cleanser x = new Cleanser();x.dilute(); x.apply(); x.scrub(); x.print();}}public class ExplicitStatic extends Cleanser{ExplicitStatic(){java/lang/System.java.html' target='_blank'>System.out.println('ExplicitStatic()');}public void scrub(){append(' Detergen.scrub()');super.testStatic();super.scrub();//調用的是Cleanser.scrub()}public void foam() { append(' foam()'); }public static void main(java/lang/String.java.html' target='_blank'>String[] args){ExplicitStatic x = new ExplicitStatic();x.dilute(); x.apply(); x.scrub(); x.foam();x.print(); java/lang/System.java.html' target='_blank'>System.out.println('Test base class:');Cleanser.main(args);testStatic();}}運行結果:Base()Cleanser(): CleanserExplicitStatic()testStatic()Cleanser dilute() apply() Detergen.scrub() scrub() foam()Test base class:Base()Cleanser(): CleanserCleanser dilute() apply() scrub()testStatic()2)通過super來調用superclass中的成員時,調用的是最近成員。例6.1.1.2class Base{protected java/lang/String.java.html' target='_blank'>String baseS = 'Base';//(a)//private String baseS = 'Base';Base(){java/lang/System.java.html' target='_blank'>System.out.println('Base()');}}class Cleanser extends Base{protected java/lang/String.java.html' target='_blank'>String baseS = 'Cleanser';//(b)public java/lang/String.java.html' target='_blank'>String s = new java/lang/String.java.html' target='_blank'>String('Cleanser');Cleanser(){java/lang/System.java.html' target='_blank'>System.out.println('Cleanser(): ' + s);}Cleanser(java/lang/String.java.html' target='_blank'>String a){java/lang/System.java.html' target='_blank'>System.out.println('Cleanser(' + a + '): s = ' + s );}}public class ExplicitStatic extends Cleanser{java/lang/String.java.html' target='_blank'>String s2 = s;java/lang/String.java.html' target='_blank'>String baseS = super.baseS; //(c)ExplicitStatic(){super('ExplicitStatic');java/lang/System.java.html' target='_blank'>System.out.println('ExplicitStatic():s2 = ' + s2 + ', baseS = '+ baseS + 'super.baseS = ' + super.baseS);baseS = 'ExplicitStatic';java/lang/System.java.html' target='_blank'>System.out.println('baseS = ' + baseS + ' , super.baseS = ' + super.baseS);}public static void main(java/lang/String.java.html' target='_blank'>String[] args){ExplicitStatic x = new ExplicitStatic();}}結果1:Base()Cleanser(ExplicitStatic): s = CleanserExplicitStatic():s2 = Cleanser, baseS = Cleanser,super.baseS = CleanserbaseS = ExplicitStatic , super.baseS = Cleanser在上面例子中,在三個class中都存在String bases實例。在ExplicitStatic中如果直接調用baseS,則實際調用的是當前類ExplicitStatic中的baseS(即(c)處的成員);如果通過super.bases來調用baseS,則調用的是離當前類ExplicitStatic最近的baseS成員,即Cleanser class中的baseS實例(即(b)處),產生的結果如結果1所示。如果把(b)處語句注釋掉,則將調用Base class中的baseS,結果如結果2所示。結果2:Base()Cleanser(ExplicitStatic): s = CleanserExplicitStatic():s2 = Cleanser, baseS = Base,super.baseS = BasebaseS = ExplicitStatic , super.baseS = Base3.Base class的初始化2.1當你產生derived class對象時,其中會包含base class子對象(subobject)。這個子對象就和你另外產生的base class對象一模一樣。2.2通過super()可調用base class的構造函數,但必須放在構造函數的第一行,并且只能在構造函數中運用。2.3初始化順序為:1)加載代碼(.class文件)2)初始化class的靜態成員,初始化順序了“從里到外,即從base class開始。3)在derived class的構造函數中調用base class的構造函數。如果在derived class的構造函數中沒有通過super()顯式調用調用base class的構造函數,編譯器會調用bass class的default構造函數并自動生成相應的調用語句,從而產生一個base class實例。如果在derived class的構造函數中通過super()顯示調用了父類的構造函數,則調用所指定的構造函數。調用構造函數的調用順序是“從里到外。4)調用derived class的構造函數。**:當base class沒有default構造函數時,必須在derived class的構造函數中通過super顯示調用base class的構造函數。例:下面代碼的初始化過程為:1)裝載ExplicitStatic的代碼(裝載ExplicitStatic.class文件)。2)發現ExplicitStatic有關鍵字extends,裝載ExplicitStatic的base class的代碼(裝載Cleanser.class文件)。3)發現Cleanser有關鍵字extends,裝載Cleanser的base class的代碼(裝載Base.class文件)。4)初始化Base class中的靜態成員。5)初始化Cleanser class中的靜態成員。6)初始化ExplicitStatic class中的靜態成員。如果把(c)處的代碼注釋掉,那么初始化工作到此就結束了。7)為ExplicitStatic對象分配存儲空間,并把存儲空間初始化為0。8)在ExplicitStatic class的構造中調用super('ExplicitStatic')(在ExplicitStatic class的構造函數中顯式調用父類的構造函數),試圖產生一個Cleanser class實例。9)為Cleanser對象分配存儲空間,并把存儲空間初始化為0。10)由于Cleanser class又是繼承自Base class, Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd
標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩精品a在线观看91| 亚洲电影在线| 久久都是精品| 亚洲在线国产日韩欧美| 中文日韩欧美| 在线精品视频一区| 天堂俺去俺来也www久久婷婷| 免费在线成人网| 综合五月婷婷| 欧美一级二级视频| 欧美aⅴ一区二区三区视频| 免费在线成人| 国产成人久久精品一区二区三区| 国产一区一一区高清不卡| 91视频久久| 国产aⅴ精品一区二区三区久久 | 亚洲美女91| 日韩激情一区二区| 国产日产精品_国产精品毛片 | 亚洲区第一页| 国产日韩欧美三级| 国产精品啊v在线| 国产一区2区| 免费国产自久久久久三四区久久 | 国产欧美日韩亚洲一区二区三区| 久久av导航| 亚洲四虎影院| 中文不卡在线| 久久不卡国产精品一区二区| 成人综合一区| 欧美在线资源| 91成人在线精品视频| 韩国女主播一区二区三区| 色婷婷精品视频| 狠狠色综合网| 91成人小视频| 亚洲精品福利电影| 免播放器亚洲| 久久av偷拍| 宅男在线一区| 欧美一区久久| 久久久久久久久久久9不雅视频| 国产午夜精品一区二区三区欧美 | 红桃视频亚洲| 蜜桃视频第一区免费观看| 国产精品欧美大片| 欧洲av一区二区| 日欧美一区二区| av免费不卡国产观看| 香蕉精品999视频一区二区| 欧美激情综合| 亚洲综合电影一区二区三区| 国产精品一区高清| 久久精品青草| 日本欧美大码aⅴ在线播放| 91亚洲国产| 综合色一区二区| 伊伊综合在线| 日韩精品视频中文字幕| 成人在线观看免费视频| 美女91精品| av资源新版天堂在线| 亚洲精品影院在线观看| 亚洲播播91| 欧美日韩xxxx| 99综合视频| 精品欧美日韩精品| 中文字幕av一区二区三区人| 日韩电影二区| 日本视频一区二区| 亚洲激情黄色| 97在线精品| 国产亚洲精品精品国产亚洲综合| 国产高清久久| 国产精品jk白丝蜜臀av小说| 亚洲中字黄色| 久久久777| 欧美成人精品一级| 日韩精品一区二区三区中文字幕| 久久精品国产亚洲夜色av网站| 国产精品一区二区免费福利视频| 国产美女一区| 91精品婷婷色在线观看| 欧美激情 亚洲a∨综合| 亚洲精品日本| av一区二区高清| 日韩成人综合| 另类小说一区二区三区| 亚洲精选久久| 欧美69视频| 国产精品久久久久久久久久10秀| 91免费精品国偷自产在线在线| 99视频精品| 999国产精品| 国产成人精品一区二区免费看京| 日本视频在线一区| 亚洲天堂av资源在线观看| 免费av一区| 日韩欧美一区二区三区在线观看| 国产高清日韩| 国产精品地址| 91精品国产自产观看在线 | 亚洲综合图色| 99国产精品久久久久久久成人热 | 国产精品日韩精品在线播放| 天堂va在线高清一区| 国产亚洲一区在线| 九色精品91| 欧美日韩一区二区综合| 九九精品调教| 成人片免费看| 四季av一区二区凹凸精品| 国产精品高清一区二区| 欧美久久精品| 蜜桃视频在线观看一区二区| 日韩亚洲国产欧美| 欧美日韩国产一区精品一区| 精品一区在线| 尤物在线精品| 亚洲一区二区三区免费在线观看| 欧美日韩在线观看视频小说| 高清av一区二区三区| 日韩电影免费网站| 波多视频一区| 伊人久久高清| 亚洲性视频h| 99热精品在线观看| 美女被久久久| 日韩精品视频网站| 午夜性色一区二区三区免费视频| 在线国产精品一区| 91亚洲精品视频在线观看| 日韩国产一区二| 国产精品视频一区二区三区四蜜臂| 国产精品中文字幕制服诱惑| 国产欧美日韩精品高清二区综合区 | 国产视频一区欧美| 蜜桃久久久久久| 日韩成人一级| 国产精品v一区二区三区| 精品中国亚洲| 精品高清久久| 日韩中文首页| 国产韩日影视精品| 日韩一区精品字幕| 青青在线精品| 国内一区二区三区| 欧洲在线一区| 国产一区导航| 日韩va亚洲va欧美va久久| 国产精品巨作av| 在线中文字幕播放| 激情五月综合| 深夜福利亚洲| 精品视频97| 激情欧美丁香| 石原莉奈在线亚洲二区| 亚洲欧美专区| 欧美aaaaaa午夜精品| 亚洲黄色免费av| 精品1区2区3区4区| 欧美一区久久| 中文字幕在线高清| 91成人精品| 日韩精品一区二区三区中文字幕| 国产精品久久久久久模特| 成人精品国产亚洲| 国产精品美女久久久| 日韩av影院| 丝袜美腿诱惑一区二区三区 | 日韩中文字幕视频网| 美女在线视频一区| 亚洲精品网址| 国产欧美高清视频在线| 日韩免费一区| 亚洲狼人精品一区二区三区| 国产精品日本一区二区三区在线| 人人草在线视频| 蜜臀久久99精品久久久久久9| 国产精品日本一区二区不卡视频| 日本国产精品| 日韩久久99| 韩国精品主播一区二区在线观看| 在线看片日韩| 乱一区二区av| 欧美中文字幕| 国产一区二区精品福利地址| 欧美在线资源| 国产精品啊v在线| 欧洲激情综合| 91伊人久久| 婷婷激情图片久久| 麻豆国产一区| 国产麻豆综合| 国内揄拍国内精品久久| 蜜桃久久久久久久| 日本欧美不卡| 国产日本亚洲| 亚洲欧美日韩国产综合精品二区| 国产欧美综合一区二区三区|