Javase基礎(chǔ)1

一排截、JDK(Java 開發(fā)工具集)1.8 安裝與配置
1娱节、安裝JDK距帅,注意OS系統(tǒng)的位數(shù) 32|64
2、配置環(huán)境變量
用戶變量:只用于當(dāng)前用戶
系統(tǒng)變量:用于所有用戶
path括堤、classpath碌秸,注意:不區(qū)分大小寫
path:C:\Program Files\Java\jdk1.8.0_101\bin 一系列可執(zhí)行文件目錄,比如:java.exe
classpath:.;C:\Program Files\Java\jdk1.8.0_101\lib\tools.jar 一系列核心類庫
3悄窃、安裝好JDK, 安裝目錄下有倆個文件:jdk與jre
jdk:開發(fā)環(huán)境+運行環(huán)境
存在 javac.exe可執(zhí)行文件
存在 java.exe
jdk中存在jre
jre:運行環(huán)境
不存在 javac.exe可執(zhí)行文件
存在 Java.exe
Java是一種編譯性語言:
先編譯:javac .java讥电,屬于開發(fā)過程;編譯后生成.class(字節(jié)碼)文件
后執(zhí)行:java 轧抗,屬于程序執(zhí)行過程
注意:
是類名
4恩敌、常用命令:
javac:編譯Java源文件,生成字節(jié)碼文件
-d 指定Java源文件所在位置
D:\java_demo\temp> javac -d . D:\java_demo\20160726\HelloWorld.java
查找其他目錄下的Java源文件横媚,編譯生成字節(jié)碼文件存放當(dāng)前目錄纠炮。
指定Java源文件編譯后的class字節(jié)碼文件的存放目錄
D:\java_demo\20160726> javac -d D:\java_demo\class HelloWorld.java
當(dāng)前目錄下編譯Java源文件,將生成的字節(jié)碼文件存放指定其他目錄下灯蝴。
-cp 指定查找用戶類文件的位置
D:\java_demo\20160726> java -cp D:\java_demo\temp HelloWord
查找其他目錄下的字節(jié)碼文件恢口,解釋執(zhí)行該文件。
java:執(zhí)行字節(jié)碼(.class)文件穷躁,展示運行效果
javadoc:生成幫助API文檔
javadoc ***.java .java ...
生成目錄下所有的類的幫助文檔
cd 打開指定目錄耕肩,執(zhí)行命令: javadoc *
jar:打包多個類,生成一個類庫
.jar
jar cvf ***.jar 目錄名(文件所在目錄)
二问潭、JRE(Java 運行環(huán)境)
1猿诸、 主要三項功能:
加載代碼
校驗代碼
執(zhí)行代碼
2、類的執(zhí)行過程
前提:類已經(jīng)被編譯
1)加載類:加載器加載類的字節(jié)碼文件
2)校驗類:字節(jié)碼校驗器狡忙,校驗類是否存在非法代碼
3)執(zhí)行類:解釋器解釋執(zhí)行
擴展:編譯性語言與解釋性語言
編譯性語言:先編譯后執(zhí)行
C++梳虽、Java、C#
解釋性語言:不需要編譯直接執(zhí)行
HTML灾茁、JavaScript窜觉、PHP

三是复、創(chuàng)建Java類
注意:命名規(guī)范——類名首字母大寫,若由多個單詞組成竖螃,多個單詞首字母均大寫淑廊。
若要創(chuàng)建的Java類可直接執(zhí)行:
1)類名與Java文件名相同;
2)存在程序入口方法 public static void main(String[] args){......}特咆。
注釋:
// 單行注釋
/* / 多行注釋
/
* */ 文檔注釋季惩、多行,javadoc 生成API(Application Interface 應(yīng)用程序接口)幫助文檔腻格,給注釋會寫到幫助文檔中
擴展:Java程序的分類
Java Application Java應(yīng)用程序
Java Applet Java小應(yīng)用程序画拾,制作網(wǎng)頁中的小插件(比如:動畫),已過時
四菜职、數(shù)據(jù)類型
1青抛、基本數(shù)據(jù)類型
數(shù)值型:
整型:byte short int long64位
浮點型:float32位 double 64位
字符型:char,2字節(jié) 可以存儲一個中文漢字
布爾型:boolean
2酬核、引用數(shù)據(jù)類型
數(shù)組

接口
3蜜另、數(shù)值的表示方式
二進(jìn)制 0b
八進(jìn)制 0
十進(jìn)制
十六進(jìn)制 0x | 0X
4、數(shù)值后標(biāo)識
長整型 l|L
單精度 f|F
雙精度 d|D
5嫡意、基本數(shù)據(jù)類型的初始值
char nul|0|\u0000
boolean false
整型 0
浮點型 0.0
引用數(shù)據(jù)類型的初始值
null
空字符(nul): 0|\0|\00|\u0000
一举瑰、String類型
是引用類型中“類”類型
String表示一串字符,稱為字符串蔬螟;注意多個字符由一個“”括起來此迅。
轉(zhuǎn)義字符
\ + 字符
常用轉(zhuǎn)義字符
\n
\t
\
"
\d
\f
\0

二、數(shù)據(jù)類型轉(zhuǎn)換
前提:數(shù)據(jù)類型之間兼容旧巾;boolean不能與數(shù)值型耸序、char進(jìn)行類型轉(zhuǎn)換
1、自動數(shù)據(jù)類轉(zhuǎn)換(隱式數(shù)據(jù)類型轉(zhuǎn)換)
目的數(shù)的類型范圍>源數(shù)的類型范圍鲁猩,即轉(zhuǎn)換后數(shù)類型的范圍>轉(zhuǎn)換前的(小向大轉(zhuǎn)換)
float f = 10L; //long型 轉(zhuǎn)換成 float型
byte > short > int > long > float > double
char >
變量間轉(zhuǎn)換:byte或short 與 char不能進(jìn)行自動類型轉(zhuǎn)換
常量值轉(zhuǎn)換給變量:byte或short 與 char 可以進(jìn)行自動類型轉(zhuǎn)換坎怪,注意:不能超出目的類型的取值范圍

2、強制數(shù)據(jù)類型轉(zhuǎn)換(顯示數(shù)據(jù)類型轉(zhuǎn)換)
     類型 變量名 = (類型)變量名|值
     int i = 100.25; //double型 轉(zhuǎn)換成 int型

三绳匀、變量
可改變的量芋忿,用于數(shù)值可改變的數(shù)據(jù)炸客;
1疾棵、定義的語法規(guī)則:
類型 變量名; //聲明變量痹仙;內(nèi)存中沒有存儲空間
類型 變量名 = 值是尔; //定義變量;內(nèi)存中有存儲空間
2开仰、類型的分類
按數(shù)據(jù)類型劃分:
基本數(shù)據(jù)類型變量
整型變量
字節(jié)型變量
短整型變量
整型變量
長整型變量
浮點型變量
float型變量
double型變量
字符型變量
布爾型變量
引用數(shù)據(jù)類型變量
類型變量 Person類 Person p; Person變量
接口型變量
數(shù)組型變量
按變量所在位置劃分:
成員變量——類中方法外或語句塊外定義的變量
全局變量——類中方法外或語句塊外定義的變量 + static修飾符
局部變量?——方法或語句塊中定義的變量
作用域:
成員變量——作用于整個類
局部變量——作用于一個方法或一個語句塊
注意:先定義拟枚,后使用

三薪铜、運算符
算術(shù)運算符
+ - * /
% 求余數(shù) 3%2 = 1
++ 自增 變量的值+1
前自增 ++i i是一個變量 先自增,再參與運算
后自增 i++ 先參與運算恩溅,再自增
-- 自減 變量的值-1
前自減 --i 先自減隔箍,再參與運算
后自減 i-- 先參與運算,再自減
關(guān)系運算符
> < >= <= == !=
邏輯運算符
true 真 成立
false 假 不成立
! 非 !true false 取反
&& 條件與(邏輯與) true&&false false 兩邊均為真時脚乡,才為真
|| 條件或(邏輯或) true||false true 兩邊均為假時蜒滩,才為假
& 與(按位與) true&&false false 兩邊均為真時,才為真
| 或(按位或) true||false true 兩邊均為假時奶稠,才為假
^(cart)異或 true^true false 兩邊不同時,結(jié)果為真
&&俯艰、|| 與 &、|的區(qū)別锌订?
&&竹握、||是簡潔運算(短路運算),若運算符左邊可以確定結(jié)果辆飘,右邊的表達(dá)式不參與運算
3!=3&&3>2 false 只計算左邊的結(jié)果
3>1&&3<4 true 兩邊均計算
&啦辐、|是非簡潔運算,不管運算符左邊是否可以確定結(jié)果蜈项,右邊均會參與運算
~ &昧甘、|、^是位運算符
<< 左移位
>> 右移位
>>> 無符號右移位
賦值運算符
= += -= *= /= %=
+= 變量 += 表達(dá)式 --》 變量 = 變量 + (表達(dá)式)
字符串連接符
+ 用于連接兩個字符串
條件運算符
? : 變量 = 布爾表達(dá)式 战得? 表達(dá)式1 : 表達(dá)式2

             布爾表達(dá)式結(jié)果為true充边,表達(dá)1計算;false常侦,表達(dá)式2計算浇冰。


運算符優(yōu)先級:

   !(邏輯非)聋亡、~(按位取反) > 算術(shù)運算符 > 關(guān)系運算符 > 邏輯運算符 > 賦值運算符


按運算符操作數(shù)的數(shù)量進(jìn)行分類:

   單目運算符:!  ++ -- ~  +(正) -(負(fù))

   雙目運算符:

   三目運算符:? :

四肘习、表達(dá)式

由操作數(shù)與運算符組成的算術(shù)

3+2*5%4    操作數(shù):3 2 5 4

最簡單表達(dá)式    3  true  'a'   i j

     一個常量或變量

五、流程控制

1坡倔、順序語句

    至上而下漂佩,從第一行到最后一行代碼一次執(zhí)行。

2罪塔、分支語句

    根據(jù)一定的條件有選擇地執(zhí)行或跳過特定的語句


       if分支語句

           if(布爾表達(dá)式) {

           }

           if(布爾表達(dá)式) {

           } else {

           }

           if(布爾表達(dá)式) {

           } else if(布爾表達(dá)式) {

           } else if(布爾表達(dá)式) {

           } ......

             else {

           }

       switch分支語句

           switch(表達(dá)式) {

           case 常量:
                ......
                break;

           ......
           default: 
               ......
           }

           注意表達(dá)式的類型:int(char投蝉、byte、short)征堪、枚舉型(enum)

                             String(jdk1.7+ 才支持)

           case的語句塊中加上break; 否則匹配到語句塊瘩缆,其后case均會執(zhí)行以及default,直到遇到break或整個switch

           語句塊執(zhí)行結(jié)束佃蚜。

           default:不一定在最后庸娱,可以在任何位置着绊。

3、循環(huán)語句

4熟尉、跳轉(zhuǎn)語句

一归露、循環(huán)語句

 在條件滿足的情況下,反復(fù)執(zhí)行一段特定的代碼斤儿。


 循環(huán)語句的分類

     while

         while(布爾表達(dá)式) {

              循環(huán)體
         }

     do..while

         do {

              循環(huán)體

         } while(布爾表達(dá)式);

         while與do..while的區(qū)別靶擦?

            while —— 先判斷,后執(zhí)行循環(huán)體雇毫;

            do..while —— 先執(zhí)行循環(huán)體玄捕,再判斷;do..while確保至少循環(huán)一次棚放,不管條件是否滿足枚粘。

     for

         for(初值; 布爾表達(dá)式; 迭代值) {

              循環(huán)體

         }

         for循環(huán)的執(zhí)行順序:

             1) 初值,初始化語句飘蚯;

             2)布爾表達(dá)式馍迄,循環(huán)條件判斷;

             3)循環(huán)體局骤,執(zhí)行循環(huán)體

             4)迭代值攀圈,修改“循環(huán)條件”中用于條件判斷變量的值,一般是++ --峦甩。

             5)回到 2)位置繼續(xù)執(zhí)行
 
     for each 用戶遍歷數(shù)組或集合

         for(類型 變量: 數(shù)組|集合變量) {

              循環(huán)體

         }

二赘来、跳轉(zhuǎn)語句

  break語句:結(jié)束當(dāng)前整個循環(huán)

  continue語句:結(jié)束當(dāng)前本次循環(huán)

  結(jié)合“語句塊標(biāo)記”、跳轉(zhuǎn)語句結(jié)束外層循環(huán)

      標(biāo)記一個循環(huán):

          標(biāo)識符:for( ; ; ) {

          }

三凯傲、數(shù)組

數(shù)組是多個相同類型數(shù)據(jù)的有序組合犬辰。

    數(shù)組元素類型是相同的

        元素:指定的是數(shù)組這個組合中的一個數(shù)據(jù),這個數(shù)據(jù)稱為數(shù)組元素

    數(shù)組是有序的

        不是元素值(數(shù)據(jù)的值)有序冰单,元素的位置有序幌缝,這個位置稱為下標(biāo)


    可以定義任何類型的數(shù)組,可以定義基本數(shù)據(jù)類型數(shù)組诫欠,可以定義引用類型數(shù)組涵卵。


數(shù)組定義的語法格式:

    類型[]  數(shù)組名 = new 類型[數(shù)組長度]   數(shù)組長度——元素個數(shù)

    數(shù)組聲明正確的語法格式:

        int[] arr;

        int [] arr;

        int []arr;

        int[]arr;

        int arr[];

   使用new創(chuàng)建數(shù)據(jù)

        new 類型[長度];


        int[] arr = new int[];  //錯誤,為指定長度

        int[] arr = new int[5]; //正確


 數(shù)組的初始化

     靜態(tài)初始化

         類型[] 數(shù)組名 = {值1荒叼,值2, ...., 值n}

     動態(tài)初始化

         類型[]  數(shù)組名 = new 類型[數(shù)組長度];

         注意:每個元素均有相同默認(rèn)值轿偎。

             數(shù)組名[下標(biāo)] = 值;   //下標(biāo)從0開始 到 長度-1

  提取數(shù)組中元素

       數(shù)組名[下標(biāo)]甩挫;//獲取數(shù)組中指定下標(biāo)的元素

OOP:面向?qū)ο缶幊?/p>

POP:面向過程編程

一贴硫、類與對象

類:

    抽象的、概念上的伊者;是對一類事物的描述英遭。

    描述的是多個同類型的對象。


對象:

    實際存在的亦渗,存在于計算機的內(nèi)存中(堆中)挖诸;是實際存在的一類事物的單個個體。


類是對象抽象化法精,對象是類的實例化多律。

   抽象化:類將一類對象的特征與行為以文字描述。

   實例化:根據(jù)類創(chuàng)建一個對象搂蜓。


類包含屬性和方法狼荞、對象包含特征和行為。

二帮碰、類的成員

屬性:

    成員變量:

        類變量(全局變量):使用static修飾的成員變量相味,就是類變量;類的所有對象共享殉挽。

        實例變量:沒有使用static修飾的成員變量丰涉,就是實例變量;對象間是獨立的斯碌。

        語法格式:

            [權(quán)限修飾符] [修飾符] 類型 變量名 [= 值]; 


方法:

    構(gòu)造方法:

    成員方法:

        類方法:使用static修飾的成員方法一死;可以使用類名.方法名(參數(shù));

        實例方法:沒有使用static修飾的成員方法傻唾;

        語法格式:

            [權(quán)限修飾符] [修飾符] 返回值類型 方法名([參數(shù)列表]) {

                 方法體
            }


        方法中的變量(局部變量)特性:

            只有final修飾符投慈;final修飾變量為最終變量,只能為其賦一次值冠骄,第二次賦值時報錯逛裤。

            使用前必須初始化。

     抽象方法:抽象類才有猴抹;

     
語句塊


靜態(tài)塊:靜態(tài)語句塊

三带族、對象的創(chuàng)建

類名 對象名 = new 構(gòu)造方法([實參列表]); 

訪問對象屬性:

    對象名.屬性;

訪問對象方法:

    對象名.方法名([實參列表])


形式參數(shù)(形參):方法聲明中的參數(shù)蟀给;

實際參數(shù)(實參):方法調(diào)用時蝙砌,有實際值得參數(shù),參數(shù)的實際值傳遞給形參跋理。

四择克、方法遞歸

方法自身調(diào)用

確定結(jié)束遞歸的條件,否則將發(fā)生“堆棧溢出”異常前普。

OOP:面向?qū)ο缶幊?/p>

POP:面向過程編程

一肚邢、類與對象

類:

    抽象的、概念上的;是對一類事物的描述骡湖。

    描述的是多個同類型的對象贱纠。


對象:

    實際存在的,存在于計算機的內(nèi)存中(堆中)响蕴;是實際存在的一類事物的單個個體谆焊。


類是對象抽象化,對象是類的實例化浦夷。

   抽象化:類將一類對象的特征與行為以文字描述辖试。

   實例化:根據(jù)類創(chuàng)建一個對象。


類包含屬性和方法劈狐、對象包含特征和行為罐孝。

二、類的成員

屬性:

    成員變量:

        類變量(全局變量):使用static修飾的成員變量肥缔,就是類變量莲兢;類的所有對象共享。

        實例變量:沒有使用static修飾的成員變量辫继,就是實例變量怒见;對象間是獨立的。

        語法格式:

            [權(quán)限修飾符] [修飾符] 類型 變量名 [= 值]; 


方法:

    構(gòu)造方法:

    成員方法:

        類方法:使用static修飾的成員方法姑宽;可以使用類名.方法名(參數(shù))遣耍;

        實例方法:沒有使用static修飾的成員方法;

        語法格式:

            [權(quán)限修飾符] [修飾符] 返回值類型 方法名([參數(shù)列表]) {

                 方法體
            }


        方法中的變量(局部變量)特性:

            只有final修飾符炮车;final修飾變量為最終變量舵变,只能為其賦一次值,第二次賦值時報錯瘦穆。

            使用前必須初始化纪隙。

     抽象方法:抽象類才有;

     
語句塊


靜態(tài)塊:靜態(tài)語句塊

三扛或、對象的創(chuàng)建

類名 對象名 = new 構(gòu)造方法([實參列表]); 

訪問對象屬性:

    對象名.屬性绵咱;

訪問對象方法:

    對象名.方法名([實參列表])


形式參數(shù)(形參):方法聲明中的參數(shù);

實際參數(shù)(實參):方法調(diào)用時熙兔,有實際值得參數(shù)悲伶,參數(shù)的實際值傳遞給形參。

四住涉、方法遞歸

方法自身調(diào)用

確定結(jié)束遞歸的條件麸锉,否則將發(fā)生“堆棧溢出”異常。

類與類之間的關(guān)系:

is a 繼承關(guān)系

has a 關(guān)聯(lián)關(guān)系

use a 依賴關(guān)系

A類 B類

A is a B A類是一個B類舆声,即A類繼承B類

    class A extends b {}      B b = new A();

A has a B A類擁有B類花沉,即A類關(guān)聯(lián)B類

    class A {

        private B b;  //關(guān)聯(lián)關(guān)系

    }

A use a B A類使用B類,即A類依賴B類

   class A {

       public void method() {
           B b = new B();
           b.method(); //依賴關(guān)系
       }

   }

一、面向?qū)ο蟮娜筇匦?/p>

1碱屁、封裝性

     1)信息隱藏

            為什么使用信息隱藏?

                用者對類內(nèi)部定義的數(shù)據(jù)(對象的成員變量)的直接操作會導(dǎo)致數(shù)據(jù)的錯誤磷脯、混亂或安全性問題。

            什么是信息隱藏忽媒?

                類的使用者訪問類争拐,不能訪問類中某個部分腋粥,就可以說晦雨,該部分對使用者信息隱藏;

                類的定義者隘冲,定義類時規(guī)定類中某些部分不能被使用者訪問闹瞧,這些部分被信息隱藏。

     3) 封裝

          使用封裝對信息進(jìn)行隱藏

          Java中通過將數(shù)據(jù)(屬性)聲明為私有的(private)展辞,再提供一個或多個公開的(public)方法實現(xiàn)對該屬性的操作

              private int age;

              public void setAge(int age) {

              }

              public int getAge() {

              }

          封裝的作用:

              隱藏一個類的實現(xiàn)細(xì)節(jié)奥邮;

使用者只能通過事先定制好的方法來訪問數(shù)據(jù),可以方便地加入控制邏輯罗珍,限制對屬性的不合理操作洽腺;

便于修改,增強代碼的可維護(hù)性覆旱。

2蘸朋、繼承性

       子類可以繼承父類中的全部或部分屬性與方法,但不能繼承構(gòu)造方法扣唱。

       子類繼承父類藕坯,子類不需要再定義與父類相同的屬性與方法,而是直接使用該屬性和方法噪沙。

       
       父類稱為超類或基類炼彪,子類也稱為派生類


       語法格式

       [權(quán)限] [修飾符] class 類名 extends 父類名 {

       }

       類只支持單一繼承,即extends后只能有一個父類名正歼;不支持多重繼承

            子類只有一個父類

            父類可以派生出多個子類


       繼承的實現(xiàn)手段:

          派生 —— 創(chuàng)建子類

          擴展 —— 子類中添加新屬性與新的方法

       繼承作用:

           1辐马、代碼的重用;

           2、定義共同的協(xié)議(方法)局义。

                 協(xié)議訪問一個類的接口(訪問類的入口)喜爷,這個接口就是類的方法。

                 父類引用訪問子類對象的方法旭咽,該方法重寫父類的方法


3贞奋、多態(tài)性

      在程序中同一符號或名字在不同情況下具有不同的語義解釋。

      一個事物在不同的時候穷绵,具有不同的狀態(tài)轿塔。

           編譯時多態(tài)性: 在程序編譯時可確定的多態(tài)性,由重載機制實現(xiàn);
          
           運行時多態(tài)性: 指程序動態(tài)運行時才可確定的多態(tài)性,由繼承結(jié)合動態(tài)綁定實現(xiàn),即由重寫機制來實現(xiàn)勾缭。

               繼承 + 動態(tài)綁定

                  A類揍障,B類 extends A類,C類 extends A類

                  某個方法中

                      A a = new B();

                      a = new C();

                      上面兩句代碼即動態(tài)綁定俩由。A a = new B(); B類的對象綁定給A類引用毒嫡,注意:B與A存在繼承關(guān)系。

                      這種給一個引用變量動態(tài)綁定多個不同類型對象幻梯,即為運行時多態(tài)兜畸。

                 為什么說重寫是運行時多態(tài)?
                     
                     運行時多態(tài)(不同性)由重寫來實現(xiàn)碘梢;
                    
                     子類對象賦值給父類的引用變量咬摇,父類引用不能方法到子類擴展屬性和方法、以及被重寫屬性煞躬;只能
                     訪問自己的屬性和方法肛鹏,這樣就沒有所謂的多態(tài)。但是父類引用可以通過“共同協(xié)議”訪問到子類對
                     象的重寫方法(重寫父類中方法)恩沛。

                         共同協(xié)議:父類提供方法讓多個子類重寫在扰,該方法即為共同協(xié)議。

      1)重寫

           變量重寫:子類中存在與父類相同名稱的變量雷客;

           方法重寫:子類中存在與父類相同聲明的方法芒珠。

                 1)返回值相同、方法名相同佛纫、參數(shù)列表相同妓局;

                 2)訪問權(quán)限范圍>=父類;

                 3)子類拋出的異常是父類拋出的異常的子類或本類呈宇。

           作用:子類重寫父類變量或方法好爬,子類訪問時所訪問的是子類的變量與方法,父類中相應(yīng)變量與方法被隱藏甥啄。

      2)重載

           一個類中定義多個方法名相同存炮、參數(shù)列表不相同的方法,就是方法的重載蜈漓。

           目的:同類中共享方法名穆桂。

           區(qū)分方法是否發(fā)生重載:

               唯一判斷方式——參數(shù)列表不相同

                   參數(shù)個數(shù)不同;

                   參數(shù)類型不相同融虽。

               注意:是否發(fā)生重載與返回值類型無關(guān)享完。

           為什么重載是一種多態(tài)性?

                同一個方法名有额,訪問到多個不同的方法般又;

                編譯時就已經(jīng)確定了要訪問的方法彼绷。

                    比如:編譯未匹配到方法,將編譯失敗茴迁。

                    因此重載的多態(tài)性寄悯,體現(xiàn)在編譯時。

           重載的多個方法的參數(shù)堕义,存在繼承(is a)關(guān)系:

                訪問方法參數(shù)為實際類型(對象的類型)猜旬,匹配參數(shù)為實際類型(對象類型)的方法;

                訪問方法參數(shù)是子類類型,重載方法參數(shù)只有父類,匹配參數(shù)為父類的方法倦卖,就近原則洒擦。

                訪問方法參數(shù)為形式類型(父類類型指向一個子類類型的對象),匹配參數(shù)為形式類型的方法糖耸。

                    在父子關(guān)系的重載中秘遏,按照引用類型去找丘薛。
                        如:

public fun(One one){}

                            public fun(Two two){}

                            One one =new Two();

                            fun(one);//執(zhí)行第一個fun(One one)方法


                 


      3)運行時多態(tài)

         一個引用類型變量可以指向多種實際類型對象嘉竟,這種現(xiàn)象稱為多態(tài);即形式類型與實際類型就是多態(tài)洋侨。

              對象在運行時才會創(chuàng)建

         這種情況在運行時才能確定舍扰,所以是運行時多態(tài)。

              Animal animal;
              animal = new Dog();
              animal = new Cat();

              通過聲明為父類型的對象引用來引用他的子類型對象

希坚。

         在繼承的關(guān)系中體現(xiàn)多態(tài):一個對象變量的引用可以指向多種實際類型的對象边苹。(實際類型和形式類型不同);
                                 
                                 父類引用可以指向多個子類裁僧。
                
             當(dāng)一個父類的引用指向一個子類的實例時个束,子類自有的屬性或者方法不可見(自有屬性:包括和父類同名的變量);


             而同名方法聊疲,因為有重寫茬底,所以對于重寫的方法來說,可以調(diào)用获洲;


             但同名而不是重寫(如:重載)阱表,則不能調(diào)用

二贡珊、實例變量與局部變量

實例變量:類中方法外定義的變量最爬,且沒有使用static修飾。

局部變量:方法中定義的變量门岔。

    局部變量使用前菱皆,需要先賦初值。

變量之間的比較

   == —— 基本數(shù)據(jù)類型與引用數(shù)據(jù)類型用“==”比較

   equals —— 常用于比較字符串

三咖摹、對象轉(zhuǎn)型

對象轉(zhuǎn)型分為上轉(zhuǎn)型與下轉(zhuǎn)型蜓洪,屬于運行時多態(tài)胯努。

上轉(zhuǎn)型(上溯轉(zhuǎn)型)—— 子類引用類型上溯轉(zhuǎn)型成父類引用類型

     自動類型轉(zhuǎn)換

     父類類型 變量名 = new 子類構(gòu)造方法(參數(shù)列表);

     或

     子類類型 子類變量名 = new 子類構(gòu)造方法(參數(shù)列表);

     父類類型 變量名 = 子類變量名;


下轉(zhuǎn)型(下溯轉(zhuǎn)型逢防、造型)—— 父類引用類型下溯轉(zhuǎn)型成子類引用類型

     強制類型轉(zhuǎn)換

     子類類型 變量名 = (子類類型) 父類變量;

引用類型間轉(zhuǎn)換叶沛,遵守規(guī)則:

     1)類型間兼容:存在繼承關(guān)系;

     2)下轉(zhuǎn)型時忘朝,不能直接將父類對象轉(zhuǎn)型成子類引用類型灰署;需要:

            先將子類轉(zhuǎn)型成父類,才可以將父類轉(zhuǎn)型回子類局嘁,即溉箕,先上后下(下轉(zhuǎn)型前,必須先經(jīng)過上轉(zhuǎn)型)悦昵。

關(guān)鍵字:instanceOf

    語言格式:

        引用變量名 instanceof 類名肴茄;//返回值true|false

    用于檢查一個對象是否是某個類的實例。

    注意:父類但指、間接父類檢查的結(jié)果也為true寡痰。

四、Object類

Object類是所有Java類的根父類棋凳,任何一個Java類直接或間接繼承Object類拦坠。

如果在類的聲明中未使用extends關(guān)鍵字指明其父類,則默認(rèn)父類為Object類剩岳。

五贞滨、構(gòu)造器

類中的構(gòu)造方法(構(gòu)造函數(shù))。

構(gòu)造方法用于創(chuàng)建拍棕、初始化對象

    對象的創(chuàng)建:new 構(gòu)造方法名();

語法格式:

    [訪問權(quán)限] 類名(參數(shù)列表) {

         語句塊; //一般做初始化操作
    }

特點:

    1)沒有返回值類型晓铆;

    2)方法名與類名相同;

    3)構(gòu)造方法可以重載绰播;

    4)任何類都有構(gòu)造方法骄噪,若沒有顯示定義構(gòu)造方法,類默認(rèn)存在一個公共的無參的構(gòu)造方法幅垮;

       若顯示定義構(gòu)造方法腰池,默認(rèn)構(gòu)造方法不再存在,被替代忙芒。

思考:

    繼承關(guān)系(is a)示弓,創(chuàng)建子類對象時,子類與父類的構(gòu)造方法的執(zhí)行情況如何呵萨?

        A奏属、只有子類構(gòu)造方法執(zhí)行

        B、先父類構(gòu)造方法執(zhí)行潮峦,再子類構(gòu)造方法執(zhí)行

        C囱皿、先子類構(gòu)造方法執(zhí)行勇婴,再父類構(gòu)造方法執(zhí)行

    答案:B

        默認(rèn)情況下:先執(zhí)行父類無參構(gòu)造方法,再執(zhí)行子類構(gòu)造方法嘱腥。

六耕渴、關(guān)鍵字:this、super

this:

    指向當(dāng)前對象齿兔,相當(dāng)于當(dāng)前對象的引用橱脸。所有引用就是對象變量,指向一個對象分苇。

    this關(guān)鍵字用于構(gòu)造方法添诉、實例方法;類方法不能使用医寿。


    this.成員變量 —— 訪問當(dāng)前對象的實例變量栏赴、類變量

    this.成員方法 —— 訪問當(dāng)前對象的實例方法、類方法

    this(參數(shù)列表) —— 訪問其他構(gòu)造方法靖秩,只能是構(gòu)造方法中的第一行代碼

super:

    指向?qū)ο蟮母割?

    super關(guān)鍵字用于構(gòu)造方法须眷、實例方法;類方法不能使用盆偿。

    super.成員變量 —— 訪問父類的實例變量柒爸、類變量

    super.成員方法 —— 訪問父類的實例方法、類方法

    super(參數(shù)列表) —— 訪問父類構(gòu)造方法事扭,只能是構(gòu)造方法中的第一行代碼

七、實例變量乐横、類變量求橄,實例方法、類方法

  1葡公、實例變量與類變量的:

     1)定義:

          類變量使用static修飾符修飾罐农;

          實例變量沒有使用static修飾符修飾。

     2)不同類訪問:

          訪問類變量催什,類名.類變量名涵亏、對象名.類變量名;

          訪問實例變量蒲凶,對象名.實例變量名气筋。

     3)數(shù)據(jù)共享:

          類變量,又稱靜態(tài)變量旋圆,數(shù)據(jù)是多個對象共享的宠默;

          實例變量,對象之間相對獨立的灵巧,即非共享的搀矫。


   2抹沪、實例方法與類放方法的區(qū)別:

      1)定義:

           類方法使用static修飾符修飾;

           實例方法沒有使用static修飾符修飾瓤球。

      2)不同類訪問:

           訪問類方法融欧,類名.類方法(參數(shù)列表)、對象名.類方法(參數(shù)列表)卦羡;

           訪問實例方法蹬癌,對象名.實例方法(參數(shù)列表)。

      3) 同類中訪問:

           類方法中虹茶,只能直接訪問類變量逝薪、類方法;

               若一定要訪問實例變量蝴罪、實例方法董济,可以使用對象名.實例變量、對象名.實例方法(參數(shù)列表)形式方法要门。

           實例方法中虏肾,可以直接訪問類變量、類方法欢搜、實例變量封豪、實例方法。

一炒瘟、類之間的關(guān)聯(lián)關(guān)系

關(guān)聯(lián)關(guān)系分類:

    A has a B    A類關(guān)聯(lián)B類

    A: 關(guān)聯(lián)類

    B: 被關(guān)聯(lián)類


    組合:

       關(guān)聯(lián)類的對象與被關(guān)聯(lián)類的對象生命周期相同吹埠;

           同時創(chuàng)建且同時銷毀。

    聚合:

       關(guān)聯(lián)類的對象與被關(guān)聯(lián)類的對象生命周期相同疮装;

           A對象先于B對象創(chuàng)建

           B對象先于A對象創(chuàng)建

           A對象先于B對象銷毀

           B對象先于A對象銷毀
            

    
    組合的關(guān)聯(lián)性強度 > 聚合

二缘琅、抽象類

用abstract修飾符修飾的類就是抽象類,抽象類不能被實例化廓推。

1刷袍、抽象方法:使用abstract修飾符修飾的方法就是抽象方法

    1)抽象方法只有方法的聲明,沒有方法體樊展;

    2)抽象類的子類呻纹,需要重寫父類抽象方法,否則子類仍是抽象類专缠。

2雷酪、抽象類的成員

    成員變量:

        類變量

        實例變量

    靜態(tài)塊

    語句塊

    構(gòu)造方法

    成員方法:

        類方法

        實例方法

    抽象方法

 
  3、抽象類中不一定存在抽象方法藤肢,存在抽象方法的類一定是抽象類太闺。

  4、abstract修飾符不能與private嘁圈、final省骂、static修飾符共用蟀淮。

       修飾方法

         private:子類沒有訪問方法的權(quán)限,沒有訪問權(quán)限就不能重寫钞澳;

         final:最終方法怠惶,不能被子類重寫;

         private轧粟、final與abstract沖突策治。

         static:static修飾得方法(類方法),子類重寫父類類方法兰吟,形式上重寫通惫,實際上沒有重寫;

                 子類對象賦值父類引用混蔼,父類引用訪問類方法時履腋,訪問的是父類的類方法。

                  @Override驗證是否重寫惭嚣,不通過遵湖。

三、接口

接口是抽象方法和常量值的定義的集合晚吞。


1延旧、接口中的成員

     常量

     抽象方法


     //jdk 1.8+
      
     靜態(tài)方法               static修飾

        接口名.方法名(參數(shù)列表); //訪問接口的靜態(tài)方法


     默認(rèn)方法               default修飾

        實現(xiàn)類繼承接口的默認(rèn)方法
     

2、接口的特性

     1槽地、接口支持多重繼承迁沫;

     2、接口是一種特殊的抽象類闷盔,定義接口時不用abstract修飾符弯洗,也可以用abstract修飾;

     3逢勾、接口默認(rèn)是(只能是) public abstract,對所有包可見藐吮,不能被實例化溺拱;

     4、接口的變量默認(rèn)是(只能是)public static final谣辞,對所有包中的類可見迫摔,共享的,最終的泥从,將其視為“常量”句占。

     5、接口的方法默認(rèn)是(只能是) public abstract躯嫉,沒有方法體纱烘,不能使用private杨拐、protected、final擂啥、static

         native哄陶、synchronized修飾符

 3、實現(xiàn)接口 implements

     語法格式:

         [修飾符] class 類名 [extends 父類] implements 接口名1[,接口名2][,接口名...][,接口名N] {

               類體
         }


     一個類可以同時實現(xiàn)多個接口哺壶。

 4屋吨、接口可以繼承接口,甚至可以同時繼承多個接口

      語法格式:

         [修飾符] interface 接口名 extends 父接口名1[,父接口名2][,父接口名...][,父接口名N] {

                接口體
          }


      接口支持多重繼承山宾。

四至扰、序列化 Serializable

1、Serializable是一個接口资锰,并非關(guān)鍵字敢课;

2、Serializable接口比較特殊又被稱做marker,因為它沒有任何方法要被實現(xiàn)台妆;

3翎猛、

它的作用:在于實現(xiàn)它的類可以被序列化。

序列化的作用:

    1)使對象可以在網(wǎng)絡(luò)上傳輸接剩;

    2)

可以使對象寫到文件中切厘。

    注意:對象若要在網(wǎng)絡(luò)上傳輸或持久化到文件中,該必須是可序列化Serializable接口懊缺。

          一般要序列化的對象都是VO(Value Object)值對象疫稿,成員:實例變量、構(gòu)造方法鹃两、Setter+Getter方法遗座。

五、內(nèi)部類

一個類內(nèi)部定義的類俊扳,稱為內(nèi)部類途蒋。

1、內(nèi)部類與外層封裝它的類之間存在邏輯的所屬關(guān)系馋记。

     編譯后內(nèi)部類會單獨生產(chǎn)一個字節(jié)碼文件(外層類名$內(nèi)部類名.class)号坡;

     物理上,外層類與內(nèi)部類不在一個字節(jié)碼文件中梯醒。


2宽堆、內(nèi)部類一般用在定義它的類或語句塊之內(nèi)。

3茸习、內(nèi)部類的類名不能包含它的外層類名相同畜隶。

4、內(nèi)部類可以使用包含它的類的靜態(tài)和實例成員變量,也可以使用它所在方法的局部變量籽慢;

   內(nèi)部類能夠訪問創(chuàng)建它 的對象的實現(xiàn),包括私有成員浸遗;


   內(nèi)部類能夠隱藏起來(private),不為其他類所見。

5嗡综、內(nèi)部類的分類:

    1)普通內(nèi)部類

    2)方法本地內(nèi)部類

    3)靜態(tài)內(nèi)部類

    4)匿名類

       沒有名字的類乙帮,當(dāng)類只會創(chuàng)建一個對象,以后不再用到這個類极景,就考慮使用匿名類察净。

思考:

1、抽象類與接口的區(qū)別:

    抽象類                                         接口

    繼承:

       只支持單一繼承                              支持多重繼承

    定義:

        abstract class 類名 { }                    interface 接口名{ }  默認(rèn)是public abstract

    使用:

        子類名 extends 抽象類名 { }                實現(xiàn)類名 implements 接口名1[,接口名2...][,接口N]

    內(nèi)部成員:

        普通類的成員:成員變量盼樟、成員方法...,       常量氢卡、抽象方法

        抽象方法                                   jdk1.8+ 版本中,靜態(tài)方法晨缴、默認(rèn)方法


    特性:

        抽象類中方法可以是public译秦、protected、       只有public訪問權(quán)限

        default訪問權(quán)限 


        定義抽象類使用abstract修飾符                接口省略了abstract修飾符

一击碗、字符串String類

字符串指的是字符序列

Java中并沒有內(nèi)置的字符串類型(沒有基本類型)筑悴,而是在標(biāo)準(zhǔn)Java庫中包含一個String類。

字符串是一種簡單而且常用的數(shù)據(jù)結(jié)構(gòu)稍途。

1阁吝、String類

   String表示一個字符串,字符串是常量械拍,一旦創(chuàng)建就不能修改;  

   String是被final修飾的突勇,最終類,所以String不能被繼承坷虑;

   String調(diào)用方法修改內(nèi)容的時候甲馋,如果內(nèi)容不會改變,就直接返回原來的String對象,

如果有改變會產(chǎn)生新對象迄损;

       String如果用+運算定躏,標(biāo)示字符串的連接運算,字符串的連接運算會產(chǎn)生大量新對象芹敌,消耗內(nèi)存共屈;

       如果有頻繁的做字符串連接,建議用StringBuffer或者StringBuilder

党窜。

2、創(chuàng)建字符串借宵,即定義字符串變量

    1)字符串常量賦值給字符串變量

        String str = "abc";

        "abc"常量幌衣,是一個字符串對象,在內(nèi)存的常量池中

    2) 字符串對象賦值給字符串變量

        String str = new String("abc");

        new String("abc")創(chuàng)建一個字符串對象,在內(nèi)存的堆中

            a)檢查常量池中是否存在"abc"字符串對象豁护,若不存在創(chuàng)建一個字符串對象(常量池中)哼凯,若存在就不創(chuàng)建,
               使用已存在的字符串對象楚里;

            b)堆中新建一個字符串對象断部,并將字符常量的值(字符數(shù)組)賦值給該對象。


 3)字符串方法班缎,詳細(xì)查看API

作業(yè):

1蝴光、解析字符串?dāng)?shù)據(jù),封裝成一個對象

   創(chuàng)建方法splitData(String data)达址,解析字符串蔑祟,字符串方法調(diào)用時傳遞;

   創(chuàng)建VO類Student沉唠,封裝的對象

   比如:傳過來的參數(shù)是"name=zhangsan;number=3;score=123"

把里面所有的東西分離出來疆虚,

         然后封裝成一個student的實例


 2、設(shè)計程序?qū)Α懊艽a”字符進(jìn)行加密

        算法:大寫字母或小寫字母或數(shù)組首尾交換满葛。

               'A' + 25                 -->      'Z'

               'A'+('A'-'B'+25)         -->      'Y'


  3径簿、設(shè)計程序過濾“不文明”詞匯

        要求:詞匯有n個字符就有n個*。

一嘀韧、StringBuffer類 可變字符串篇亭、緩沖字符串

  用final修飾的,不能繼承


  線程安全的可變字符序列乳蛾。

  一個類似于 String 的字符串緩沖區(qū)(char數(shù)組暗赶,默認(rèn)16個字符)。

  用stringBuffer來做字符串的處理肃叶,不會產(chǎn)生大量的新對象蹂随,對內(nèi)存消耗小,提高了效率因惭。


  每個字符串緩沖區(qū)都有一定的容量岳锁。只要字符串緩沖區(qū)所包含的字符序列的長度沒有超出此容量,就無需分配新的內(nèi)部緩
  沖區(qū)數(shù)組蹦魔。如果內(nèi)部緩沖區(qū)溢出激率,則此容量自動增大(一倍)。 


  重要的方法: append方法勿决,insert方法乒躺,delete方法,length方法低缩,toString方法嘉冒。


  String與StringBuffer的區(qū)別:

      String 不可變得字符串

          修改字符串的值會產(chǎn)出一個新的字符串對象曹货;

          頻繁修改字符串,產(chǎn)生大量的字符串對象讳推,占用大量的內(nèi)存空間顶籽。

          用一個最終的字符數(shù)組(char[])來存放字符,字符數(shù)組變量不能再次賦值银觅;

               字符串相加礼饱,字符串長度增加,字符數(shù)組長度也增加究驴;

               但是數(shù)組長度定義時就確定镊绪,不能改變,只能創(chuàng)建新的數(shù)組(長度=字符串長度)纳胧,再重新賦給字符數(shù)組變量镰吆;

               字符數(shù)組變量不能再次賦值,所以只能創(chuàng)建一個新的String對象跑慕。

      StringBuffer 可變的字符串

          修改字符串的值不會產(chǎn)生新的字符串對象万皿;

          頻繁修改字符串,不會產(chǎn)生新的字符串對象核行,節(jié)省了內(nèi)存空間牢硅。


          用一個可變字符緩沖數(shù)組存放字符,不是最終的芝雪,字符數(shù)組變量可以再次賦值减余;

               字符數(shù)組有默認(rèn)容量(默認(rèn)長度:16);

               字符串相加惩系,長度未超過容量(<=容量)位岔,容量不改變,即不會新的字符串?dāng)?shù)組堡牡;

               字符串相加抒抬,長度超出容量,容量自動增加一倍( (容量+1)*2 )晤柄;創(chuàng)建長度是原來一倍的新數(shù)組擦剑,再賦值給
               字符數(shù)組變量。

  StringBuilder類

       一個可變的字符序列芥颈。此類提供一個與 StringBuffer 兼容的 API惠勒,但不保證同步(不保證線程安全)

       StringBuffer與StringBuilder的區(qū)別:

           StringBuffer是線程安全的,運行效率較慢爬坑。

           StringBuilder是線程非安全的纠屋,運行效率較快。

二盾计、==操作符與equals()方法

1巾遭、==用于比較引用數(shù)據(jù)類與基本數(shù)據(jù)類型肉康,equals比較引用數(shù)據(jù)類型;

2灼舍、兩者均可比較引用數(shù)據(jù)類

      == 比較的是對象在棧中的引用;

      equals()方法默認(rèn)情況下涨薪,比較的是對象在棧中的引用骑素;

          equals()方法是類從Object類繼承的,即可以重新equals()方法刚夺,使其按對象的值比較献丑;

          比如:String類重新equals()方法,使字符串對象按值比較侠姑。

三创橄、Object類中的方法

equals()方法


hashcode()方法


getClass()方法


toString()方法

四、Wrapper類(封裝類)

用于封裝基本數(shù)據(jù)類型的類莽红,即基本數(shù)據(jù)類型以類的形式體現(xiàn)妥畏。

1.4-  手動裝箱與拆箱

   裝箱

        Integer inte = new Interger(10);

    拆箱

        int i = inte.intValue;


1.5+  自動裝箱與拆箱

    裝箱

        Integer inte = 10;

    拆箱

        int i = inte;

八大基本數(shù)據(jù)類,擁有八個封裝類

    Byte

    Short

    Integer

    Long

    Float

    Double

    Boolean

    Character

常用封裝類進(jìn)行:基本數(shù)據(jù)類型與字符串進(jìn)轉(zhuǎn)換安吁。

五醉蚁、Math類

Math類包含用于執(zhí)行基本數(shù)學(xué)運算的方法,如初等指數(shù)鬼店、對數(shù)网棍、平方根和三角函數(shù)。
    


ceil(double a)    //返回大于等于并最接近參數(shù)的整數(shù)

floor(double a)   //返回小于等于并最接近參數(shù)的整數(shù)

round(double a)   //返回最接近參數(shù)的整數(shù)妇智,四舍五入

max(double a, double b)   //返回兩個參數(shù)中最大值

min(double a, double b)   //返回兩個參數(shù)中最小值

abs(double a)   //返回絕對值

pow(double a, double b)   //返回第一個參數(shù)的第二個參數(shù)次冪的值滥玷,即a的b次方

random()  //返回隨機數(shù),該值大于等于 0.0 且小于 1.0

六巍棱、Class類

Class類的實例表示正在運行的 Java 應(yīng)用程序中的類和接口惑畴。

一個類(A類)第一個對象創(chuàng)建時,JVM自動加載這個類拉盾,生成該類一個Class類型的對象桨菜,這個對象封裝該類(A類)的基本
信息,比如:類名捉偏、屬性名倒得、屬性的類型、訪問權(quán)限夭禽、方法名霞掺、返回值類型、方法訪問權(quán)限等讹躯。

即Class類的對象用于封裝一個類的基本信息菩彬。


常用于反射機制缠劝。

七、單例模式

一個類只有一個實例骗灶,而且自行實例化并向整個系統(tǒng)提供這個實例惨恭。

一個類在一個系統(tǒng)執(zhí)行過程中只有一個對象。

實現(xiàn)單例模式遵守三大原則:

    1)定義一個私有的耙旦、靜態(tài)的脱羡、本類類型的變量;

    2)定義一個私有的構(gòu)造方法免都;

    3)定義一個公共的锉罐、靜態(tài)的、返回本類類型的方法绕娘。


     class Singleton{

     
 private static final Singleton st=new Singleton();


          private Singleton(){}

          public static Singleton getInstance(){


              return st;

          }

}

 單例模式分類:

     餓漢模式

     飽漢模式脓规、懶漢模式

八、Random類

 隨機數(shù)生成器

 nextInt()

 nextInt(int n) //n是數(shù)的范圍 0...n(不包括)

九险领、UUID類

 UUID 表示一個 128 位的值侨舆,隨機的、16進(jìn)制

 常用UUID生成32位16進(jìn)制數(shù)值得隨機字符串(+ 4個短直線分隔)舷暮;此類字符串一般用于做ID态罪。

     UUID.randomUUID().toString();

十、Date類

時間類——類 Date 表示特定的瞬間下面,精確到毫秒(ms)

構(gòu)造方法

   Date();   //獲得當(dāng)前時間對象

   Date(long date);  //獲得指定時間的時間對象复颈,根據(jù)date(距1970-1-1 00:00:00:000毫秒數(shù))進(jìn)行計算

擴展:DateFormat、SimpleDateFormat類格式化時間

常用方法

    getTime() //當(dāng)前時間 距 距1970-1-1 00:00:00的毫秒數(shù)

十一沥割、Calendar類

  日歷類

  常用方法

      getInstance(); //獲得日歷對象

      set(int year, int month, int day, ...); //設(shè)置日期

      getTime(); //獲得日歷上當(dāng)前日期

      get(int field); //獲取日歷上當(dāng)前日期的指定字段值(年耗啦、月、日机杜、時...)

      set(int field, int value); //給日歷上日期的某個字段設(shè)值

      roll(int field, int amount); //向指定日歷字段添加指定(有符號的)時間量

十二帜讲、對象的銷毀

 1、局部變量如何銷毀

       局部變量是方法中變量椒拗,生命周期就是方法的執(zhí)行的一個過程似将;

       方法執(zhí)行結(jié)束,局部變量會被立即從棧中銷毀蚀苛。


 2在验、實例變量如何銷毀

        實例變量存在對象中,依附于對象存在堵未,對象在腋舌,實例變量就存在;

        對象銷毀時渗蟹,實例變量就會被銷毀块饺。


 3赞辩、對象如何銷毀

         若一個對象成為無用對象(在棧中沒有對該對象的引用、沒有其他對象對該對象的引用)授艰,就會被銷毀辨嗽;

         不是馬上銷毀,而是下一次資源回收時銷毀想诅。

  4召庞、資源回收機制

        1、系統(tǒng)(JVM)自動調(diào)用来破,周期性;

        2忘古、程序員無法干預(yù)徘禁,比如:干預(yù)如何回收、回收那些東西髓堪。

        3送朱、System.gc(); //運行垃圾回收器,進(jìn)行一次資源回收

        4干旁、finalize();  //一個對象被銷毀時驶沼,自動調(diào)用該方法,一般用于進(jìn)行資源清理操作
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末争群,一起剝皮案震驚了整個濱河市回怜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌换薄,老刑警劉巖玉雾,帶你破解...
    沈念sama閱讀 221,406評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異轻要,居然都是意外死亡复旬,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評論 3 398
  • 文/潘曉璐 我一進(jìn)店門冲泥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來驹碍,“玉大人,你說我怎么就攤上這事凡恍≈就海” “怎么了?”我有些...
    開封第一講書人閱讀 167,815評論 0 360
  • 文/不壞的土叔 我叫張陵咳焚,是天一觀的道長洽损。 經(jīng)常有香客問我,道長革半,這世上最難降的妖魔是什么碑定? 我笑而不...
    開封第一講書人閱讀 59,537評論 1 296
  • 正文 為了忘掉前任流码,我火速辦了婚禮,結(jié)果婚禮上延刘,老公的妹妹穿的比我還像新娘漫试。我一直安慰自己,他們只是感情好碘赖,可當(dāng)我...
    茶點故事閱讀 68,536評論 6 397
  • 文/花漫 我一把揭開白布驾荣。 她就那樣靜靜地躺著,像睡著了一般普泡。 火紅的嫁衣襯著肌膚如雪播掷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,184評論 1 308
  • 那天撼班,我揣著相機與錄音歧匈,去河邊找鬼。 笑死砰嘁,一個胖子當(dāng)著我的面吹牛件炉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播矮湘,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼斟冕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了缅阳?” 一聲冷哼從身側(cè)響起磕蛇,我...
    開封第一講書人閱讀 39,668評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎券时,沒想到半個月后孤里,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,212評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡橘洞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,299評論 3 340
  • 正文 我和宋清朗相戀三年捌袜,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片炸枣。...
    茶點故事閱讀 40,438評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡虏等,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出适肠,到底是詐尸還是另有隱情霍衫,我是刑警寧澤,帶...
    沈念sama閱讀 36,128評論 5 349
  • 正文 年R本政府宣布侯养,位于F島的核電站敦跌,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜柠傍,卻給世界環(huán)境...
    茶點故事閱讀 41,807評論 3 333
  • 文/蒙蒙 一麸俘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧惧笛,春花似錦从媚、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至各谚,卻和暖如春紧憾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背昌渤。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評論 1 272
  • 我被黑心中介騙來泰國打工稻励, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人愈涩。 一個月前我還...
    沈念sama閱讀 48,827評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像加矛,于是被迫代替她去往敵國和親履婉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,446評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 斟览、6一毁腿、基本知識 1.JDK和JRE的區(qū)別 答:JDK是java語言開發(fā)工具包,包含JRE和開發(fā)工具(javac....
    夢游的沙師弟閱讀 1,211評論 0 4
  • 第一階段java基礎(chǔ)復(fù)習(xí) 1.軟件開發(fā)基礎(chǔ) 1.1開發(fā)軟件的目的 提高人個計算機之間的交互方式 1.2軟件 軟件=...
    allencaicai閱讀 487評論 0 0
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法苛茂,類相關(guān)的語法已烤,內(nèi)部類的語法,繼承相關(guān)的語法妓羊,異常的語法胯究,線程的語...
    子非魚_t_閱讀 31,660評論 18 399
  • 《失明癥漫記》是一本令我倍感絕望的小說,那種窒息感無法言說躁绸,淋漓盡致展示出來的人性之惡仿佛在掐著我的脖子裕循,簡直就想...
    小婦阿達(dá)閱讀 566評論 0 2
  • 某年某月某日在宇宙的某個角落,張根生近一個月第一次走出房間净刮。他的頭發(fā)蓬松散亂剥哑,眼圈浮腫歼争,由于長時間躲在黑暗的房間里...
    蔣遠(yuǎn)方閱讀 367評論 0 3