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

淺析JAVA中的內(nèi)存結(jié)構(gòu)、重載、this與繼承

 更新時(shí)間:2021年03月15日 11:05:20   作者:521125LYC  
這篇文章主要介紹了 JAVA中的內(nèi)存結(jié)構(gòu)、重載、this與繼承的相關(guān)資料,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

一.對(duì)象在JVM的內(nèi)存結(jié)構(gòu)

JAVA內(nèi)存管理由JVM來管理。
1)堆,所有new出來的對(duì)象(包括成員變量)
2)棧,所有局部變量(包括方法的參數(shù))
3)方法區(qū),class字節(jié)碼文件(包括方法,靜態(tài)數(shù)據(jù))

1.引用變量指向null時(shí),會(huì)發(fā)生空指針異常

public class student {
	int age;
	String name;
	public student(int age,String name){
		this.age=age;
		this.name=name;
	}
	public static void main(String[] args) {
		//(類)引用類型 引用變量	創(chuàng)建對(duì)象(new出來的類中的構(gòu)造方法)
		student s= new student(18,"劉永超");
		s=null;
		System.out.println(s);
		System.out.println(s.age);//發(fā)生異常,因?yàn)橐米兞恐赶騨ull
	}
}

結(jié)果:java.lang.NullPointerException 2.引用類型劃等號(hào)和基本類型劃等號(hào)的區(qū)別: 一.引用類型劃等號(hào):

1…指向同一個(gè)對(duì)象

2.通過一個(gè)引用的修改對(duì)象中的數(shù)據(jù)會(huì)影響另一個(gè)對(duì)象中的數(shù)據(jù)

二.基本類型劃等號(hào):

1.賦值。

2.對(duì)一個(gè)變量的修改不會(huì)影響到另一個(gè)變量(例如int類型)

引用變量畫“”和基本類型畫”“區(qū)別:

引用類型畫”==“:

1.判斷兩個(gè)引用變量(引用地址)是否指向同一對(duì)象

2.基本類型畫等號(hào):判斷兩邊的值是否相等

代碼演示:

public class student2 {
	int age;
	String name;
	public student2(int a,String s){
		age=a;
		name=s;
	}
	
	public static void main(String[] args) {
		student2 s=new student2(17,"liu");
		student2 ss=s;
		s.age=20;
		ss.age=28;
		System.out.println(s.age);
		//s=ss 判斷兩個(gè)引用對(duì)象(引用變量)是否指指向同一對(duì)象
		System.out.println(s==ss);
	}
}

結(jié)果為 s.age=28 true;

成員變量與局部變量的生命周期:

  • 成員變量:創(chuàng)建對(duì)象開始到被GC垃圾回收器處理掉為止。
  • 局部變量從調(diào)用方法到方法就結(jié)束。

 二.方法的重載

1).發(fā)生在同一類,方法名相同,參數(shù)列表類型和數(shù)量不同
2).方法的重載,和返回值沒有關(guān)系
3).編譯器在在編譯時(shí)根據(jù)方法的簽名自動(dòng)綁定調(diào)用的方法

注:方法的簽名:方法名+參數(shù)列表

代碼的實(shí)現(xiàn):

public class overloadDemo {
	public void test(){
		System.out.println("lala");
	}
	
	public void test(int a){
		System.out.println("heihei");
	}

	public void test(String s){
		System.out.println("xixi");
	}

	public void test(int a,String s){
		System.out.println("caocao");
	}

//	public int test(){不是方法的重載,和返回值沒有關(guān)系
//		return 1;
//	}
	
	//構(gòu)造方法
	public overloadDemo (){
		System.out.println("無參構(gòu)造");
	}
	
	public overloadDemo(int a){
		System.out.println("有參構(gòu)造");
	}
	
	public static void main(String[] args) {
		overloadDemo load=new overloadDemo();
		load.test(5);
		load.test(8, "liu");
		
	}
}

如上代碼,load.test(5)將調(diào)用public void test(int a){};

load.test(8,“l(fā)iu”)將調(diào)用public void test(int a,String s){}。

三.this的使用:

​ 1.this關(guān)鍵字在方法中,用于指向調(diào)用該方法的當(dāng)前對(duì)象,簡單的說,那個(gè)對(duì)象調(diào)用方法,this指的就是那個(gè)對(duì)象,嚴(yán)格來講,在方法中需要通過this關(guān)鍵字指明當(dāng)前對(duì)象。
2.在構(gòu)造方法中,用來初始化成員變量的參數(shù)一般和成員變量取相同的名字,這樣有利于代碼的可讀性,但次數(shù)必須通過this關(guān)鍵字來區(qū)別成員變量和參數(shù)(在這里不能省略this)
3.this就是指當(dāng)前對(duì)象。

this的用法:

1.this.成員變量—訪問當(dāng)前對(duì)象成員變量
2.this.方法名—訪問當(dāng)前對(duì)象的方法(一般不用)
3.this()---------調(diào)用構(gòu)造方法(必須寫在此構(gòu)造方法中的第一行)

代碼演示:

public class thisDemo {
	int age;
	public void test(){
		System.out.println(this.age);//此處可以省略this關(guān)鍵字
	}
	
	public void test(int age){
		System.out.println("這是帶有int類的test方法重載");
		this.test();//此處也可以省略this,編譯器會(huì)自己默認(rèn)
	}
	
	public thisDemo(){
		//this(20);
		this(19,"liuyongcaho");//調(diào)用當(dāng)前對(duì)象時(shí)int ,string類型的構(gòu)造方法
		this.age=18;
		System.out.println("這是一個(gè)無參構(gòu)造方法");
	}
	
	public thisDemo(int age){
		this();
		System.out.println(age);
	}
	
	public thisDemo(int age,String name){
		System.out.println(age+"   "+name);
	}
	
	
	public static void main(String[] args) {
		thisDemo pdd=new thisDemo();
		pdd.test(9);
	}
}

運(yùn)行結(jié)果:

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-QA8e4G5v-1615567706657)(C:\Users\Thinkpad\AppData\Roaming\Typora\typora-user-images\image-20210312160858936.png)]

可以看出,在new對(duì)象時(shí),會(huì)自行執(zhí)行它的無參構(gòu)造方法,執(zhí)行完后再執(zhí)行test(int a){}這個(gè)方法。

四:類的繼承

​ 1.作用:代碼復(fù)用,減少代碼重復(fù)
​ 2.通過extends來繼承
​ 3.超類(父類),派生類(子類)共有的屬性和行為
​ 4.派生類繼承超類后,派生類具有派生類+超類的共有屬性。
​ 5.一個(gè)超累可以擁有多個(gè)派生類,一個(gè)派生類只能有一個(gè)超類。
​ 6.繼承具有傳遞性
​ 7.java中規(guī)定,在派生類的構(gòu)造方法中必須先構(gòu)造超類的構(gòu)造方法(必須在派生類的第一行),在派生類中若沒有調(diào)用超類的方法,則編譯器默認(rèn)提供super()來調(diào)用超類的無參構(gòu)造方法,若超類自己寫了構(gòu)造方法,在派生類中不在默認(rèn)提供super();

super的含義及使用:

​ 1.super指代當(dāng)前對(duì)象的超類對(duì)象
​ 2.super必須放在構(gòu)造方法中的第一行
​ 3.super.成員變量-----訪問超類成員變量
​ 4.super()—調(diào)用的時(shí)超類構(gòu)造方法。

代碼演示如下: 父類:

/*
 * 父類(超類)
 */
public class Person {
	int age;
	String name;
	String gender;
	
	public Person(int age,String name){
		this.age=age;
		this.name=name;
		System.out.println(this.age+"  "+this.name);
	}
	public void testperson(){
		System.out.println("我是父類");
	}
}

子類:

/*
 * 子類(派生類)
 * extends
 */
public class Teacher extends Person{
	String subject;
	public Teacher(){
		//super();這是父類的無參構(gòu)造方法
		super(19,"劉德華");
		System.out.println(this.age+" "+this.name);
	}
	
	//方法的重寫
	public void testperson(){
		System.out.println("這是子類teacher的testperson方法");
	}
	
	public static void main(String[] args) {
		 Person y=new Teacher();//向上造型
		 y.testperson();
	}
}

運(yùn)行結(jié)果:

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-zydw2DJx-1615567706663)(C:\Users\Thinkpad\AppData\Roaming\Typora\typora-user-images\image-20210312165717602.png)]

結(jié)果分析:

子類在創(chuàng)建對(duì)象時(shí)會(huì)執(zhí)行子類的無參構(gòu)造方法,而子類的構(gòu)造方法中有父類的有參構(gòu)造方法再執(zhí)行子類中的testperson方法。

on方法");
}

public static void main(String[] args) {
	 Person y=new Teacher();//向上造型
	 y.testperson();
}

}

##### 運(yùn)行結(jié)果:

[外鏈圖片轉(zhuǎn)存中...(img-zydw2DJx-1615567706663)]

##### 結(jié)果分析:

子類在創(chuàng)建對(duì)象時(shí)會(huì)執(zhí)行子類的無參構(gòu)造方法,而子類的構(gòu)造方法中有父類的有參構(gòu)造方法再執(zhí)行子類中的testperson方法。

#### 

到此這篇關(guān)于淺析JAVA中的內(nèi)存結(jié)構(gòu)、重載、this與繼承的文章就介紹到這了,更多相關(guān)java內(nèi)存結(jié)構(gòu)重載內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java 打造阻塞式線程池的實(shí)例詳解

    java 打造阻塞式線程池的實(shí)例詳解

    這篇文章主要介紹了java 打造阻塞式線程池的實(shí)例詳解的相關(guān)資料,這里提供實(shí)例幫助大家,理解這部分知識(shí),需要的朋友可以參考下
    2017-07-07
  • SpringBoot啟動(dòng)遇到的異常問題及解決方案

    SpringBoot啟動(dòng)遇到的異常問題及解決方案

    這篇文章主要介紹了SpringBoot啟動(dòng)遇到的異常問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 詳解Java中l(wèi)og4j.properties配置與加載應(yīng)用

    詳解Java中l(wèi)og4j.properties配置與加載應(yīng)用

    這篇文章主要介紹了 log4j.properties配置與加載應(yīng)用的相關(guān)資料,需要的朋友可以參考下
    2018-02-02
  • Java使用flyway實(shí)現(xiàn)腳本自動(dòng)化的方法詳解

    Java使用flyway實(shí)現(xiàn)腳本自動(dòng)化的方法詳解

    Flyway是一個(gè)開源的數(shù)據(jù)庫版本控制工具,主要用于管理數(shù)據(jù)庫的版本和變更,它可以自動(dòng)化地將數(shù)據(jù)庫遷移到不同的版本,同時(shí)支持多種數(shù)據(jù)庫類型,本文給大家介紹了如何使用flyway實(shí)現(xiàn)腳本自動(dòng)化,需要的朋友可以參考下
    2023-10-10
  • JSP頁面pageEncoding和contentType屬性

    JSP頁面pageEncoding和contentType屬性

    有關(guān)于JSP頁面中pageEncoding和contentType屬性。
    2013-04-04
  • Springboot項(xiàng)目打包如何將依賴的jar包輸出到指定目錄

    Springboot項(xiàng)目打包如何將依賴的jar包輸出到指定目錄

    公司要對(duì)springboot項(xiàng)目依賴的jar包進(jìn)行升級(jí),但是遇到一個(gè)問題,項(xiàng)目打包之后,沒辦法看到他里面依賴的jar包,版本到底是不是升上去了,沒辦法看到,下面通過本文給大家分享Springboot項(xiàng)目打包如何將依賴的jar包輸出到指定目錄,感興趣的朋友一起看看吧
    2024-05-05
  • 如何使用Maven管理項(xiàng)目?Maven管理項(xiàng)目實(shí)例

    如何使用Maven管理項(xiàng)目?Maven管理項(xiàng)目實(shí)例

    下面小編就為大家?guī)硪黄绾问褂肕aven管理項(xiàng)目?Maven管理項(xiàng)目實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • 利用Jackson解決Json序列化和反序列化問題

    利用Jackson解決Json序列化和反序列化問題

    Jackson是一個(gè)用于處理Json數(shù)據(jù)的Java庫,它提供了一系列功能,包括Json序列化和反序列化,所以本文就來講講如何利用利用Jackson解決Json序列化和反序列化的問題吧
    2023-05-05
  • Spring Dao層@Repository與@Mapper的使用

    Spring Dao層@Repository與@Mapper的使用

    這篇文章主要介紹了Spring Dao層@Repository與@Mapper的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 解決版本不兼容Jar包沖突問題

    解決版本不兼容Jar包沖突問題

    在和三方對(duì)接的過程中,我們可能會(huì)不斷引入一些三方j(luò)ar包,但這個(gè)時(shí)候就有可能出現(xiàn)一個(gè)項(xiàng)目需要依賴兩個(gè)版本不同且功能不兼容的jar包,本文主要介紹了解決版本不兼容Jar包沖突問題,感興趣的可以了解一下
    2023-10-10

最新評(píng)論

大丰市| 韶山市| 平罗县| 延长县| 牡丹江市| 府谷县| 井陉县| 新巴尔虎左旗| 泰安市| 绵竹市| 台前县| 乐安县| 民县| 来宾市| 定西市| 丹巴县| 岳普湖县| 延川县| 黄石市| 锡林郭勒盟| 崇仁县| 秭归县| 丰台区| 麦盖提县| 道真| 南漳县| 浦江县| 太谷县| 阿拉尔市| 固始县| 渑池县| 农安县| 威远县| 砀山县| 惠东县| 海兴县| 曲阜市| 隆林| 东至县| 潼关县| 乳山市|