<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Java基礎(chǔ)知識(shí)點(diǎn)總結(jié)筆記

      面向?qū)ο蟮娜筇匦?/span>

      繼承:一般只能單繼承,內(nèi)部類(lèi)實(shí)現(xiàn)多繼承,接口可以多繼承

       

       1 class Meal{
       2         Meal(){
       3             System.out.println("Meal()");
       4         }
       5     }
       6     class Bread{
       7         public Bread() {
       8             System.out.println("Bread()");
       9         }
      10     }
      11     class Cheese{
      12         public Cheese() {
      13             System.out.println("Cheese()");
      14         }
      15     }
      16     
      17     class Lettuce{
      18         public Lettuce() {
      19             System.out.println("Lettuce()");
      20 
      21         }
      22     }
      23     class Lunch extends Meal{
      24         public Lunch() {
      25             System.out.println("Lunch()");
      26 
      27         }
      28     }
      29     
      30     class PortableLunch extends Lunch{
      31         public PortableLunch() {
      32             System.out.println("PortableLunch()");
      33 
      34         }
      35     }
      36     class Sandwich extends PortableLunch{
      37         
      38         Bread b = new Bread();
      39         Cheese c = new Cheese();
      40         Lettuce l = new Lettuce();
      41         Sandwich(){
      42             System.out.println("Sandwich()");
      43 
      44         }
      45          public static void main(String[] args) {
      46              new Sandwich();
      47 
      48          }
      49     }

       

      解析:子類(lèi)對(duì)象的創(chuàng)建與實(shí)例化過(guò)程:首選,分配對(duì)象所需的全部?jī)?nèi)存空間,并初始化為0;然后,按繼承的關(guān)系,自頂向下顯示初始化;最后,按繼承關(guān)系,從頂向下調(diào)用構(gòu)造方法。所以:

        Meal()

        Lunch()

        PortableLunch()

        Bread()

        Cheese()

        Lettuce()

        Sandwith()

       

      封裝:訪問(wèn)權(quán)限控制public>protected>包>private內(nèi)部類(lèi)也是一種封裝

      多態(tài):編譯時(shí)多態(tài),體現(xiàn)在向上轉(zhuǎn)型和向下轉(zhuǎn)型,通過(guò)引用類(lèi)型判斷調(diào)用哪個(gè)方法(靜態(tài)分配)。運(yùn)行時(shí)多態(tài),體現(xiàn)在同名函數(shù)通過(guò)不同的參數(shù)實(shí)現(xiàn)多種方法(動(dòng)態(tài)分配)。

      重載:

        一個(gè)類(lèi)中,有若干個(gè)方法名相同,但方法的參數(shù)形式不同,稱(chēng)為方法的重載。原則:①方法名相同;②方法的參數(shù)類(lèi)型不同,或參數(shù)個(gè)數(shù)不同,或當(dāng)方法有兩個(gè)以上參數(shù)時(shí),只要參數(shù)類(lèi)型的順序不同;③與方法的參數(shù)名,返回類(lèi)型和修飾符無(wú)關(guān)。

      基本數(shù)據(jù)類(lèi)型

      1.基本類(lèi)型位數(shù),自動(dòng)裝箱,常量池。

      2.例如byte類(lèi)型是1byte也就是8位,可以表示的數(shù)字是-128到127,因?yàn)檫€有個(gè)0,加起來(lái)一共是256,也就是2的八次方。32位和64位機(jī)器的int是4個(gè)字節(jié)也就是32位,char是一個(gè)字節(jié)就是8位,float是4個(gè)字節(jié),double是8個(gè)字節(jié),long是8個(gè)字節(jié)。

      3.基本數(shù)據(jù)類(lèi)型的包裝類(lèi)只在數(shù)字范圍-128到127中用到常量的池,會(huì)自動(dòng)拆箱裝箱,其余數(shù)字范圍的包裝類(lèi)則會(huì)新建實(shí)例。

      4.java中直接輸入整數(shù)則默認(rèn)為int類(lèi)型,來(lái)帶有小數(shù)點(diǎn)的實(shí)數(shù)默認(rèn)為double類(lèi)型。如果你直接聲明 long a = 123;這是沒(méi)有錯(cuò)的,因?yàn)?23是int類(lèi)型,可以自賦值給范圍更大的long類(lèi)型,但是如果你的數(shù)字超過(guò)int范圍那得告訴編譯器,你百的數(shù)字已經(jīng)大于int范圍,要換成更大范圍的long類(lèi)型度表示,所以數(shù)字后面加上L(或小寫(xiě)l)。比如 long a = 2147483648;(這樣寫(xiě)會(huì)報(bào)錯(cuò),因?yàn)閕nt類(lèi)型最大表示范圍是2147483647) 得這樣 long a = 2147483648L;
      浮點(diǎn)數(shù)一樣,后面加的是F/f (代表float類(lèi)型)

      String及包裝類(lèi)

      1.String類(lèi)型是final類(lèi)型,在堆中分配空間后內(nèi)存地址不可變。

      2.底層是final修飾的char[]數(shù)組,數(shù)組的內(nèi)存地址同樣不可變。但實(shí)際上可以通過(guò)修改char[n] = 'a'來(lái)進(jìn)行修改,不會(huì)改變String實(shí)例的內(nèi)存值,不過(guò)在jdk中,用戶無(wú)法直接獲取char[],也沒(méi)有方法能操作數(shù)組。所以String類(lèi)型的不可變實(shí)際上也是理論上的不可變。所以我們?cè)诜峙銼tring對(duì)象以后,如果將其 = "abc",那也只是改變了引用的指向,實(shí)際上沒(méi)有改變?cè)瓉?lái)的對(duì)象。

      3.StringBuffer和StringBuilder底層是可變的char[]數(shù)組,繼承父類(lèi)AbstracStringBuilder的各種成員和方法,實(shí)際上的操作都是由父類(lèi)方法來(lái)完成的。

      final關(guān)鍵字

      1.final修飾基本數(shù)據(jù)類(lèi)型保證不可變

      2.final修飾引用保證引用不能指向別的對(duì)象,否則會(huì)報(bào)錯(cuò)。

      3.final修飾類(lèi),類(lèi)的實(shí)例分配空間后地址不可變,子類(lèi)不能重寫(xiě)所有父類(lèi)方法。因此在cglib動(dòng)態(tài)代理中,不能為一個(gè)類(lèi)的final修飾的函數(shù)做代理,因?yàn)閏glib要將被代理的類(lèi)設(shè)置為父類(lèi),然后再生成字節(jié)碼。final修飾方法,子類(lèi)不能重寫(xiě)改方法。

      抽象類(lèi)和接口

      1.抽象類(lèi)可以有方法實(shí)現(xiàn)。抽象類(lèi)可以有非final成員變量。抽象方法要用abstract修飾。抽象類(lèi)可以有構(gòu)造方法,但是只能有子類(lèi)進(jìn)行實(shí)例化。

      2.接口可以用extends加多個(gè)接口實(shí)現(xiàn)多繼承。接口只能有public final類(lèi)型的成員變量。接口只能有抽象方法,不能有方法體,接口不能實(shí)例化,但是可以作為引用類(lèi)型。

      相同點(diǎn):

      (1)不能直接實(shí)例化。如果要實(shí)例化,抽象類(lèi)變量必須實(shí)現(xiàn)所有抽象方法,接口變量必須實(shí)現(xiàn)所有接口未實(shí)現(xiàn)的方法。

      (2)都可以有實(shí)現(xiàn)方法(Java8 以前的接口不能有實(shí)現(xiàn)方法)。

      (3)都可以不需要實(shí)現(xiàn)類(lèi)或者繼承者去實(shí)現(xiàn)所有方法(Java8 以前的接口,Java8 及以后的接口中可以包括默認(rèn)方法,不需要實(shí)現(xiàn)者實(shí)現(xiàn))。

      不同點(diǎn):

      (1)抽象類(lèi)和接口所反映出的設(shè)計(jì)理念不同。抽象類(lèi)表示的是對(duì)象 / 類(lèi)的抽象,接口表示的是對(duì)行為的抽象。

      (2)抽象類(lèi)不可以多重繼承,接口可以多重繼承。即一個(gè)類(lèi)只能繼續(xù)一個(gè)抽象類(lèi),卻可以繼承多個(gè)接口。

      (3)訪問(wèn)修飾符 ——

      • 抽象類(lèi)中的方法可以用 public protected 和 default abstract 修飾符,不能用 private、static、synchronize、native 修飾;變量可以在子類(lèi)中重新定義,也可以重新賦值;
      • 接口的方法默認(rèn)修飾符是 public abstract, Java8 開(kāi)始出現(xiàn)靜態(tài)方法,多加 static 關(guān)鍵字;變量默認(rèn)是 public static final 型,且必須給其初值,在實(shí)現(xiàn)類(lèi)中也不能重新定義,也不能改變其值。

      (4)抽象類(lèi)可以有構(gòu)造器,接口沒(méi)有構(gòu)造器。

      代碼塊和加載順序

      假設(shè)該類(lèi)是第一次進(jìn)行實(shí)例化。那么有如下加載順序

      靜態(tài)總是比非靜態(tài)優(yōu)先,從早到晚的順序是:

      1.靜態(tài)代碼塊和靜態(tài)成員變量的順序根據(jù)代碼位置前后來(lái)決定。

      2.代碼塊和成員變量的順序也是根據(jù)代碼位置來(lái)決定

      3.最后才調(diào)用構(gòu)造方法。

      包,內(nèi)部類(lèi),外部類(lèi)

      1.Java項(xiàng)目一般從src目錄開(kāi)始有com...A.java這樣的目錄結(jié)構(gòu)。這就是包結(jié)構(gòu)。所以一般編譯后的結(jié)構(gòu)是根包結(jié)構(gòu)一模一樣的,這樣的結(jié)構(gòu)保證了import時(shí)能找到正確的class引用包訪問(wèn)權(quán)限就是指同包下的類(lèi)可見(jiàn)。

      import一般加上全路徑,并且使用.*時(shí)只包含當(dāng)前目錄的所有類(lèi)文件,不包括子目錄。

      2.外部類(lèi)只有public和default兩種修飾,要么全局可訪問(wèn),要么包內(nèi)可訪問(wèn)。

      3.內(nèi)部類(lèi)可以有全部訪問(wèn)權(quán)限,因?yàn)樗母拍罹褪且粋€(gè)成員變量,所以訪問(wèn)權(quán)限設(shè)置與一般的成員變量相同。

      非靜態(tài)內(nèi)部類(lèi)是外部類(lèi)的一個(gè)成員變量,只跟外部類(lèi)的實(shí)例有關(guān)。

      靜態(tài)內(nèi)部類(lèi)是獨(dú)立于外部類(lèi)存在的一個(gè)類(lèi),與外部類(lèi)實(shí)例無(wú)關(guān),可以通過(guò)外部類(lèi).內(nèi)部類(lèi)直接獲取Class類(lèi)型。

      異常

      1.異常體系的最上層是Throwable類(lèi)。子類(lèi)有Error和Exception。Exception的子類(lèi)又有RuntimeException和其他具體的可檢查異常。

      2.Error是jvm完全無(wú)法處理的系統(tǒng)錯(cuò)誤,只能終止運(yùn)行。運(yùn)行時(shí)異常指的是編譯正確但運(yùn)行錯(cuò)誤的異常,如數(shù)組越界異常,一般是人為失誤導(dǎo)致的,這種異常不用try catch,而是需要程序員自己檢查。可檢查異常一般是jvm處理不了的一些異常,但又經(jīng)常會(huì)發(fā)生,比如Ioexception,Sqlexception等,是外部實(shí)現(xiàn)帶來(lái)的異常。

      3.多線程的異常流程是獨(dú)立的,互不影響。大型模塊的子模塊異常一般需要重新封裝成外部異常再次拋出,否則只能看到最外層異常信息,難進(jìn)行調(diào)試。日志框架是異常報(bào)告的最好幫手,log4j,slf4j中,在工作中必不可少。

      泛型

      1. Java中的泛型是偽泛型,只在編譯期生效,運(yùn)行期自動(dòng)進(jìn)行泛型擦除,將泛型替換為實(shí)際上傳入的類(lèi)型。

      泛型類(lèi)用classA {

      }

      2. 這樣的形式表示,里面的方法和成員變量都可以用T來(lái)表示類(lèi)型。泛型接口也是類(lèi)似的,不過(guò)泛型類(lèi)實(shí)現(xiàn)泛型接口時(shí)可以選擇注入實(shí)際類(lèi)型或者是繼續(xù)使用泛型。

      3. 泛型方法可以自帶泛型比如void <E> go();

      泛型可以使用?通配符進(jìn)行泛化 Object可以接受任何類(lèi)型

      也可以使用 這種方式進(jìn)行上下邊界的限制。

      Class類(lèi)和Object類(lèi)

      1. Java反射的基礎(chǔ)是Class類(lèi),該類(lèi)封裝所有其他類(lèi)的類(lèi)型信息,并且在每個(gè)類(lèi)加載后在堆區(qū)生成每個(gè)類(lèi)的一個(gè)Class<類(lèi)名>實(shí)例,用于該類(lèi)的實(shí)例化。

      2. Java中可以通過(guò)多種方式獲取Class類(lèi)型,比如A.class,new A().getClass()方法以及Class.forName("com.?.?.A")方法,使用 clone 方法,使用反序列化。

      3. Object是所有類(lèi)的父類(lèi),有著自己的一些私有方法,以及被所有類(lèi)繼承的9大方法。

       

       未完待續(xù)。。。

      posted @ 2018-11-20 12:18  歐小文大叔  閱讀(509)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 免费人成视频网站在线18| 国产精品任我爽爆在线播放6080| 免费a级黄毛片| 少妇被粗大的猛烈xx动态图 | 亚洲国产一区二区三区亚瑟| 国内不卡一区二区三区| 亚洲国产精品久久无人区| 欧美不卡无线在线一二三区观| 国产av不卡一区二区| 国产成人精品97| 国产乱妇无码大片在线观看| 高清中文字幕一区二区| 欧美乱码伦视频免费| 国产中文字幕精品免费| 狠狠色噜噜狠狠狠狠色综合网| 中文字幕人妻中出制服诱惑| 国产午夜精品视频在线播放| 亚洲精品人妻中文字幕| 免费区欧美一级猛片| 天天爽天天摸天天碰| 精品国产综合一区二区三区 | 国产伦码精品一区二区| 99热久久这里只有精品| 成人影片麻豆国产影片免费观看 | 精品久久欧美熟妇www| 日本一本无道码日韩精品| 看全色黄大黄大色免费久久| 亚洲最大成人免费av| 二区中文字幕在线观看| 国产精品自在自线视频| 麻豆一区二区三区精品视频| 小嫩批日出水无码视频免费| 推油少妇久久99久久99久久| 成人国产精品中文字幕| 太康县| 在线精品视频一区二区| 国产精品一区二区三区激情| 国产大学生粉嫩无套流白浆| 亚洲无人区一区二区三区| 狠狠躁夜夜躁人人爽天天5| 国产欧美日韩精品丝袜高跟鞋|