最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

帶你用Java全面剖析類和對(duì)象

 更新時(shí)間:2021年09月13日 09:10:06   作者:富春山居_ZYY  
下面小編就為大家?guī)?lái)一篇全面理解Java類和對(duì)象。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

一、面向過(guò)程?面向?qū)ο螅?/h2>

C 語(yǔ)言是一門(mén)過(guò)程語(yǔ)言,在求解問(wèn)題的時(shí)候關(guān)注的是過(guò)程,因此 C 語(yǔ)言是面向過(guò)程的。

JAVA 語(yǔ)言與之不同,JAVA 語(yǔ)言是面向?qū)ο蟮恼Z(yǔ)言,在求解問(wèn)題的時(shí)候,將問(wèn)題拆分成好幾個(gè)對(duì)象,對(duì)象與對(duì)象之間相互交互從而解決問(wèn)題。對(duì)象是 JAVA 語(yǔ)言的核心。

用通俗的例子來(lái)解釋這兩者的區(qū)別就應(yīng)該是這樣的。

想要吃一碗蛋炒飯,如果是面向過(guò)程的話就應(yīng)該是這樣的。

在這里插入圖片描述

如果是面向?qū)ο蟮脑捑蛻?yīng)該是這樣的。

在這里插入圖片描述

過(guò)程:

我付錢(qián)廚子做蛋炒飯服務(wù)員將蛋炒飯端上來(lái)我吃蛋炒飯

整個(gè)過(guò)程是四個(gè)對(duì)象之間交互完成的,對(duì)于我而言,廚子具體炒蛋炒飯的步驟我并不需要知道,這就是面向?qū)ο蟆?/p>

在用 JAVA 進(jìn)行設(shè)計(jì)開(kāi)發(fā)時(shí),我們需要做的就是找到對(duì)象,建立對(duì)象,使用對(duì)象,維護(hù)對(duì)象之間的關(guān)系。

二、類和類的實(shí)例化

類實(shí)際上就是一類對(duì)象的統(tǒng)稱,相當(dāng)于一個(gè)模板;對(duì)象其實(shí)就是對(duì)類實(shí)例化出來(lái)的結(jié)果,相當(dāng)于由模板產(chǎn)生的樣本。

一個(gè)模板可以產(chǎn)生多個(gè)樣本,一個(gè)類可以實(shí)例化出多個(gè)對(duì)象。

在這里插入圖片描述

在 JAVA 當(dāng)中,類是一個(gè)引用類型,需要用到關(guān)鍵字 class 來(lái)申明一個(gè)類,實(shí)際上就相當(dāng)于創(chuàng)建一個(gè)新的數(shù)據(jù)類型

基本語(yǔ)法形式:

//創(chuàng)建一個(gè)類
class <類的名字> {
    field;//成員變量
    method;//成員方法
}
//實(shí)例化一個(gè)對(duì)象
<類的名字> <對(duì)象名> = new <類的名字>();

2.1普通成員變量和普通成員方法

代碼示例:

class Person {
    public int age;
    public String name;//成員變量放在對(duì)象當(dāng)中,即堆上
    public void show() {
        //int a = 10;
        //a變量定義在方法中,它不是成員變量,是局部變量,在棧上開(kāi)辟內(nèi)存
        System.out.println("姓名: " + name + " 年齡: " + age);
    }
}
public class TestDemo {
    public static void main(String[] args) {
        Person person1 = new Person();
        person1.age = 18;
        person1.name = "富春";
        person1.show();
        Person person2 = new Person();
        person2.age = 21;
        person2.name = "山居";
        person2.show();
    }
}

 代碼結(jié)果:

在這里插入圖片描述

代碼解釋:

  • 這里通過(guò) class 這個(gè)關(guān)鍵字創(chuàng)建了 Person 這個(gè)類(類名通常用大駝峰即每個(gè)單詞的首字母都為大寫(xiě))。
  • 像 age 和 name 這種定義在方法外部類內(nèi)部的變量稱之為 成員變量 或?qū)傩?或 字段 。另外,這兩個(gè)變量皆為普通成員變量。
  • 像 show 這種描述對(duì)象行為的叫做方法或行為,這里通過(guò) show 方法將姓名和年齡進(jìn)行了打印。另外,該方法為普通成員方法。
  • 在 JAVA中通過(guò)類的實(shí)例(對(duì)象)點(diǎn)號(hào)(.)來(lái)訪問(wèn)類的成員變量和成員方法,格式為:對(duì)象名.成員變量; 對(duì)象名.成員方法(實(shí)參列表);(PS:在訪問(wèn)類的成員方法時(shí),如果類的方法有形參,就必須為方法傳遞與參數(shù)類型相同的實(shí)參值)
  • 在 main 函數(shù)中,實(shí)例化了兩個(gè)對(duì)象,為對(duì)象在堆上開(kāi)辟了內(nèi)存,內(nèi)存的地址存放在 person1 和 person2 中,因此這兩個(gè)變量實(shí)際上是引用變量。其中的 new 關(guān)鍵字就是用于創(chuàng)建一個(gè)對(duì)象的實(shí)例。

內(nèi)存分布:

在這里插入圖片描述

注意:

  • 當(dāng)對(duì)象中的成員變量并沒(méi)有賦初值時(shí),引用類型默認(rèn)為 null ,基本類型默認(rèn)為 0 值,boolean 類型默認(rèn)為 false ,char 類型默認(rèn)為 '\u0000'(其實(shí)就是啥也沒(méi)有)。
  • 當(dāng)引用類型的變量為 null 時(shí),即表示不引用任何對(duì)象,此時(shí)對(duì) null 進(jìn)行訪問(wèn),就會(huì)出現(xiàn)空指針異常。
  • 如果不希望成員變量使用默認(rèn)值時(shí),可以在創(chuàng)建類的時(shí)候?yàn)槌蓡T變量賦初始值,但其意義不太大,類終究是個(gè)模板,創(chuàng)造的樣本各種各樣。

代碼示例:

class Person {
    public int age;
    public String name;
    public boolean ans;
    public char ch;
    public void show() {
        System.out.println("姓名: " + name + " 年齡: " + age);
        System.out.println("ans:" + ans + " ch:" + ch);
    }
}
public class TestDemo {
    public static void main(String[] args) {
        Person person = new Person();
        person.show();
    }
}

🏸 代碼結(jié)果:

在這里插入圖片描述

2.2 靜態(tài)成員變量和靜態(tài)成員方法

代碼示例:

class Person {
    public int age;
    public static int count;
    public static final int COUNT = 99;
    //COUNT 是靜態(tài)常量
    public static void staticTest() {
        System.out.println("這是靜態(tài)成員方法");
    }
}
public class TestDemo {
    public static void main(String[] args) {
        Person person1 = new Person();
        person1.age = 18;
        Person.count = 20;
        System.out.println(person1.age + " " + Person.count);
        Person.staticTest();
    }
}

代碼結(jié)果:

在這里插入圖片描述

代碼解釋:

  • 用 static 關(guān)鍵字修飾的成員變量叫做靜態(tài)成員變量,修飾的成員方法叫做靜態(tài)成員方法
  • 普通成員變量或普通成員方法的訪問(wèn)需要實(shí)例化一個(gè)對(duì)象,通過(guò)引用進(jìn)行訪問(wèn)。但是,靜態(tài)成員變量或靜態(tài)成員方法無(wú)需創(chuàng)建實(shí)例對(duì)象,直接通過(guò)類名進(jìn)行訪問(wèn),格式為:類名.成員變量; 類名.成員方法(實(shí)參列表);
  • 靜態(tài)成員變量或方法被同一個(gè)類的不同實(shí)例所共用,且不屬于對(duì)象,它們被存放在方法區(qū),只存在一份。

內(nèi)存分布:

在這里插入圖片描述

注意:

  • 靜態(tài)方法是不能直接使用非靜態(tài)成員變量或非靜態(tài)方法。因?yàn)楹髢烧叨己蛯?shí)例相關(guān),如果需要使用的話,需要實(shí)例化對(duì)象,而靜態(tài)方法和實(shí)例無(wú)關(guān)和類相關(guān),因此不能直接調(diào)用。這也就是為什么在 main 函數(shù)中調(diào)用其他方法,被調(diào)用的方法最好是靜態(tài)方法的原因。
  • 那么 main 函數(shù)為何非得是靜態(tài)的呢?不是靜態(tài)的又會(huì)如何?
  • 假設(shè) main 函數(shù)不是靜態(tài)的函數(shù),那么想要調(diào)用 main 函數(shù),必須要進(jìn)入 main 函數(shù)中,實(shí)例化對(duì)象,通過(guò)引用去調(diào)用 main 函數(shù),但問(wèn)題就在于 main 函數(shù)壓根就沒(méi)有被調(diào)用,又如何進(jìn)入到 main 函數(shù)當(dāng)中呢?這就形成了一個(gè)邏輯死循環(huán),唯一的解法就在于將 main 函數(shù)設(shè)置為靜態(tài)的,通過(guò) Java 虛擬機(jī)去調(diào)用它。

三、封裝

在面向?qū)ο缶幊讨?,封裝是將對(duì)象運(yùn)行所需的資源封裝在程序?qū)ο笾小旧?,是方法和?shù)據(jù)。對(duì)象是“公布其接口”。其他附加到這些接口上的對(duì)象不需要關(guān)心對(duì)象實(shí)現(xiàn)的方法即可使用這個(gè)對(duì)象。這個(gè)概念就是“不要告訴我你是怎么做的,只要做就可以了?!?/p>

3.1 private

屬性和方法都有自身的訪問(wèn)權(quán)限,private/ public 這兩個(gè)關(guān)鍵字表示 “訪問(wèn)權(quán)限控制”

public: public 表明該數(shù)據(jù)成員、成員函數(shù)是對(duì)所有用戶開(kāi)放的,所有用戶都可以直接進(jìn)行調(diào)用
private: private 表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用。

在本章第一段代碼示例中,成員變量 age 和 name 分別被 public 所修飾,就可能出現(xiàn)以下的問(wèn)題:

類的使用者必須要了解 Person 類內(nèi)部的實(shí)現(xiàn), 才能夠使用這個(gè)類. 學(xué)習(xí)成本較高。如果 Person 這個(gè)類的實(shí)現(xiàn)者修改了成員變量的名字,類的使用者就需要將自己的代碼隨之更改,如果項(xiàng)目的規(guī)模較大,就會(huì)導(dǎo)致維護(hù)的成本過(guò)高,

每個(gè)成員變量或方法的訪問(wèn)權(quán)限是需要依據(jù)具體的情況仔細(xì)斟酌,而不應(yīng)當(dāng)隨意的設(shè)置為 public。

在這樣的思考下,private 關(guān)鍵字顯得尤為重要,被其修飾的屬性,類的使用者是不能夠直接使用的(根本沒(méi)有訪問(wèn)到),需要借助接下介紹的 getter 和 setter 方法,這樣就可以不用對(duì)類里面的實(shí)現(xiàn)細(xì)節(jié)進(jìn)行知曉。

3.2 getter 和 setter

當(dāng)用 private 來(lái)修飾字段的時(shí)候,如果需要獲取或者修改這個(gè) private 屬性,就需要使用 getter 和 setter 方法

代碼示例:

class Person {
    private int age;
    private String name;
    public int getAge() {
        return age;
    }
    public void setAge(int myAge) {
        age = myAge;
    }
    public void setName(String myMame) {
        name = myMame;
    }
    public String getName() {
        return name;
    }
    public void show() {
        System.out.println("姓名: " + name + " 年齡: " + age);
    }
}
public class TestDemo {
    public static void main(String[] args) {
        Person person1 = new Person();
        person1.setAge(18);
        person1.setName("富春");
        int age = person1.getAge();
        String name = person1.getName();
        System.out.println(name + " " + age);
        person1.show();
    }
}

代碼結(jié)果:

在這里插入圖片描述

代碼解釋:

getName 和 getAge 即為 getter 方法, 表示獲取這個(gè)成員的值

setName 和 setAge 即為 setter 方法, 表示設(shè)置這個(gè)成員的值

四、構(gòu)造方法

實(shí)例化對(duì)象時(shí)分兩步:

1。為對(duì)象分配內(nèi)存空間

2.調(diào)用對(duì)象的構(gòu)造方法(構(gòu)造方法不止一種)

構(gòu)造方法是一種特殊方法, 使用關(guān)鍵字new實(shí)例化新對(duì)象時(shí)會(huì)被自動(dòng)調(diào)用,不僅可以構(gòu)造對(duì)象,也可以幫助我們對(duì)成員變量進(jìn)行初始化。

4.1 基本語(yǔ)法

規(guī)則:

方法名和類名是相同的,并且沒(méi)有返回值

在類中沒(méi)有提供任何的構(gòu)造函數(shù)的情況下,編譯器會(huì)默認(rèn)生成一個(gè)不帶有參數(shù)的構(gòu)造函數(shù)

如果類中定義了構(gòu)造方法,就不會(huì)默認(rèn)生成無(wú)參的構(gòu)造方法

構(gòu)造方法支持重載,規(guī)則和普通方法的重載一致

代碼示例:

class Person {
    private int age;
    private String name;
    public Person() {
        System.out.println("不帶參數(shù)的構(gòu)造方法");
    }
    public Person(String name) {
        this.name = name;
        System.out.println("帶一個(gè)參數(shù)的構(gòu)造方法");
    }
    public Person(String name,int age) {
        this.name = name;
        this.age = age;
        System.out.println("帶兩個(gè)參數(shù)的構(gòu)造方法");
    }
    public void show() {
        System.out.println("姓名: " + this.name + " 年齡: " + this.age);
    }
}
public class TestDemo {
    public static void main(String[] args) {
        Person person1 = new Person();
        person1.show();
        Person person2 = new Person("富春");
        person2.show();
        Person person3 = new Person("山居",18);
        person3.show();
    }
}

代碼結(jié)果:

在這里插入圖片描述

4.2 this 關(guān)鍵字

在此之前的代碼中出現(xiàn)了很多的 this 關(guān)鍵字,那么該關(guān)鍵字代表什么呢?

該關(guān)鍵字在對(duì)象被構(gòu)造的過(guò)程中被使用,對(duì)象還未構(gòu)造完,因此它并不代表當(dāng)前對(duì)象,this 關(guān)鍵字代表著當(dāng)前對(duì)象的引用,

可以借助 this 關(guān)鍵字來(lái)訪問(wèn)對(duì)象的成員變量和成員方法,也可以通過(guò)它來(lái)調(diào)用其他的構(gòu)造方法

方法:

  • this . 成員變量
  • this . 成員方法
  • this ( )

注意:

用 this 關(guān)鍵字調(diào)用其他的構(gòu)造方法時(shí)一定要放在第一行靜態(tài)方法里不允許出現(xiàn) this 關(guān)鍵字,因?yàn)樵撽P(guān)鍵字代表著當(dāng)前對(duì)象的引用,而靜態(tài)的方法是不依賴于對(duì)象的

代碼示例:

class Person {
    private int age;
    private String name;
    public Person() {
        this("富春",18);//調(diào)用其他的構(gòu)造方法
        System.out.println("不帶參數(shù)的構(gòu)造方法");
    }
    public Person(String name,int age) {
        this.name = name;
        this.age = age;
        System.out.println("帶兩個(gè)參數(shù)的構(gòu)造方法");
    }
    public void show() {
        System.out.println("姓名: " + this.name + " 年齡: " + this.age);
    }
}
public class TestDemo {
    public static void main(String[] args) {
        Person person1 = new Person();
        person1.show();
    }
}

代碼結(jié)果:

在這里插入圖片描述

加 this 關(guān)鍵字是一個(gè)良好的代碼習(xí)慣。

五、代碼塊

Java 中用大括號(hào) { } 將多行代碼括起來(lái),并形成一個(gè)獨(dú)立的代碼區(qū)間的代碼形式稱為代碼塊,它是 Java 中常見(jiàn)的代碼形式。

根據(jù)代碼塊定義的位置以及關(guān)鍵字,又可分為以下四種:普通代碼塊、構(gòu)造代碼塊、靜態(tài)代碼塊、同步代碼塊。

接下來(lái)主要向大家介紹前三種,最后一種講解多線程部分時(shí)在涉及一下。

5.1 普通代碼塊

它是最常見(jiàn)的代碼塊,是類中方法的方法體或在方法名后面。

代碼示例:

public class TestDemo {
    public static void main(String[] args) {
        int a = 10;
        {
            int b = 20;
            System.out.println(b);
        }
        System.out.println(a);
    }
}

代碼解釋:

在這里,main 方法后面跟著的 { } 所包裹的內(nèi)容是一個(gè)普通代碼塊,將定義變量 b 并且打印它的代碼包裹起來(lái)的 { } 中的內(nèi)容也是一個(gè)普通代碼塊

5.2 構(gòu)造代碼塊

定義在類中的不加修飾符的代碼塊叫構(gòu)造代碼塊也叫實(shí)例代碼塊。構(gòu)造代碼塊一般用于初始化實(shí)例成員變量

代碼示例:

class Person {
    private int age;
    private String name;
    {
        this.name = "山居";
        this.age = 18;
    }
    public void show() {
        System.out.println("姓名: " + this.name + " 年齡: " + this.age);
    }
}

5.3 靜態(tài)代碼塊

使用 static定義的代碼塊,一般用于初始化靜態(tài)成員屬性和需要提前準(zhǔn)備的一些數(shù)據(jù)

代碼示例:

class Person {
    private int age;
    private String name;
    public static int count;
    static {
        count = 20;
    }
    public void show() {
        System.out.println("姓名: " + this.name + " 年齡: " + this.age);
    }
}

5.4 注意事項(xiàng)

構(gòu)造代碼塊優(yōu)先于構(gòu)造函數(shù)執(zhí)行靜態(tài)代碼塊優(yōu)先于構(gòu)造代碼塊執(zhí)行,且對(duì)于同一個(gè)類來(lái)說(shuō)只執(zhí)行一次當(dāng)代碼塊和成員變量同為靜態(tài)的或同為實(shí)例的時(shí)候,其值和定義的順序是有關(guān)系的

六、快捷方法

6.1 toString方法

在本章第一段代碼示例中,類里面通過(guò) show 方法將對(duì)象的屬性進(jìn)行打印,但當(dāng)屬性很多時(shí),就顯得不那么方便。因此,可以用快捷鍵。

步驟一:alt + insert 或者 鼠標(biāo)右鍵點(diǎn)一下選擇 Generate (要在類的代碼區(qū)域執(zhí)行)

步驟二:選擇 toString()

步驟三:選擇需要打印的屬性

步驟四:選擇 OK

在這里插入圖片描述

代碼示例:

class Person {
    public int age;
    public String name;
    @Override
    public String toString() {
        return "Person{" +
                "age=" + age +
                ", name='" + name + '\'' +
                '}';
    }
}
public class TestDemo {
    public static void main(String[] args) {
        Person person1 = new Person();
        person1.age = 18;
        person1.name = "富春";
        System.out.println(person1);
    }
}

代碼結(jié)果:

在這里插入圖片描述

代碼解釋:

@Override 是注解,用于解釋該方法是重寫(xiě)的方法未重寫(xiě) toString 方法時(shí),打印 person1,將會(huì)是一個(gè)地址
當(dāng)重寫(xiě) toString 方法時(shí),打印 person1,將會(huì)直接調(diào)用 toString 方法

6.2 setter / getter 方法

setter / getter 方法也可以使用快捷鍵自動(dòng)生成

步驟一:alt + insert 或者 鼠標(biāo)右鍵點(diǎn)一下選擇 Generate (要在類的代碼區(qū)域執(zhí)行)

步驟二:選擇 Getter and Setter

步驟三:選擇需要該方法的屬性

步驟四:選擇 OK

在這里插入圖片描述

代碼示例:

class Person {
    private int age;
    private String name;
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
        //age = age;錯(cuò)誤
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public void show() {
        System.out.println("姓名: " + name + " 年齡: " + age);
    }
}

代碼解釋:

自動(dòng)生成的 setter 方法形參名字和類中的成員屬性的名字一樣的時(shí)候,如果不使用 this , 相當(dāng)于自賦值。this 表示當(dāng)前對(duì)象的引用

6.3 構(gòu)造方法(快捷)

當(dāng)想要快速生成參數(shù)個(gè)數(shù)不同的構(gòu)造方法時(shí),也有快捷鍵。

步驟一:alt + insert 或者 鼠標(biāo)右鍵點(diǎn)一下選擇 Generate (要在類的代碼區(qū)域執(zhí)行)

步驟二:選擇 Constructor

步驟三:選擇需要該方法的屬性

步驟四:選擇 OK(無(wú)參的話,跳過(guò)步驟三,直接選擇 Select None)

在這里插入圖片描述

代碼示例:

class Person {
    private int age;
    private String name;
    public Person() {
    }
    public Person(String name) {
        this.name = name;
    }
    public Person(int age, String name) {
        this.age = age;
        this.name = name;
    }
}

總結(jié)

本篇文章就到里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • Java掩碼的幾種使用例舉

    Java掩碼的幾種使用例舉

    今天小編就為大家分享一篇關(guān)于Java掩碼的使用,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • Maven dependencyManagement元素標(biāo)簽的具體使用

    Maven dependencyManagement元素標(biāo)簽的具體使用

    在Maven中dependencyManagement的作用其實(shí)相當(dāng)于一個(gè)對(duì)所依賴jar包進(jìn)行版本管理的管理器,本文主要介紹了Maven dependencyManagement元素標(biāo)簽的具體使用,感興趣的可以了解一下
    2024-03-03
  • spring boot使用properties定義短信模板的方法教程

    spring boot使用properties定義短信模板的方法教程

    這篇文章主要給大家介紹了關(guān)于spring boot使用properties定義短信模板的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • java ArrayList.remove()的三種錯(cuò)誤用法以及六種正確用法詳解

    java ArrayList.remove()的三種錯(cuò)誤用法以及六種正確用法詳解

    這篇文章主要介紹了java ArrayList.remove()的三種錯(cuò)誤用法以及六種正確用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Java AQS中ReentrantReadWriteLock讀寫(xiě)鎖的使用

    Java AQS中ReentrantReadWriteLock讀寫(xiě)鎖的使用

    ReentrantReadWriteLock稱為讀寫(xiě)鎖,它提供一個(gè)讀鎖,支持多個(gè)線程共享同一把鎖。這篇文章主要講解一下ReentrantReadWriteLock的使用和應(yīng)用場(chǎng)景,感興趣的可以了解一下
    2023-02-02
  • java常用數(shù)據(jù)流應(yīng)用實(shí)例解析

    java常用數(shù)據(jù)流應(yīng)用實(shí)例解析

    這篇文章主要介紹了java常用數(shù)據(jù)流應(yīng)用實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • SpringBoot服務(wù)器端解決跨域問(wèn)題

    SpringBoot服務(wù)器端解決跨域問(wèn)題

    這篇文章主要介紹了SpringBoot服務(wù)器端解決跨域問(wèn)題,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下
    2020-11-11
  • java實(shí)現(xiàn)的冒泡排序算法示例

    java實(shí)現(xiàn)的冒泡排序算法示例

    這篇文章主要介紹了java實(shí)現(xiàn)的冒泡排序算法,結(jié)合實(shí)例形式分析了冒泡排序算法的具體操作步驟與實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-01-01
  • Mybatis SQL運(yùn)行流程源碼詳解

    Mybatis SQL運(yùn)行流程源碼詳解

    這篇文章主要介紹了Mybatis SQL運(yùn)行流程源碼詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 使用SpringBoot+OkHttp+fastjson實(shí)現(xiàn)Github的OAuth第三方登錄

    使用SpringBoot+OkHttp+fastjson實(shí)現(xiàn)Github的OAuth第三方登錄

    這篇文章主要介紹了使用SpringBoot+OkHttp+fastjson實(shí)現(xiàn)Github的OAuth第三方登錄,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02

最新評(píng)論

太康县| 嵊州市| 宝清县| 西华县| 白银市| 上饶县| 肇东市| 临西县| 辽阳县| 衡水市| 滦平县| 江华| 湟源县| 乌审旗| 策勒县| 岗巴县| 华安县| 溧水县| 宁河县| 汾西县| 宁德市| 浦县| 安龙县| 赣榆县| 平乐县| 瑞丽市| 灵石县| 慈利县| 高青县| 方山县| 平阴县| 诸城市| 沙田区| 丰原市| 潜山县| 富阳市| 麻阳| 龙岩市| 清苑县| 同心县| 泰来县|