欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java的數(shù)據(jù)類型和參數(shù)傳遞(詳解)

 更新時(shí)間:2017年07月09日 12:34:30   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇Java的數(shù)據(jù)類型和參數(shù)傳遞(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧

Java提供的數(shù)據(jù)類型主要分為兩大類:基本數(shù)據(jù)類型和引用數(shù)據(jù)類型。

Java中的基本數(shù)據(jù)類型

名稱 大小  取值范圍
byte型 (字節(jié)) 8bit -128-127 (-2^7到2^7-1)

short型 (短整型)

16bit -2^15到2^15-1
int型 (整形) 32bit -2^31到2^31-1
long型 (長(zhǎng)整型) 64bit -2^63到2^63-1
float型 (單精度浮點(diǎn)型) 32bit
double型 (雙精度浮點(diǎn)型) 64bit
char型 (字符型) 16bit
boolean型 (布爾型) true和false 只有兩種結(jié)果,要么為“真”要么為“假”

Java中的引用數(shù)據(jù)類型:

Java作為面向?qū)ο蟮恼Z(yǔ)言,Java中所有用class,interface,abstract class定義的都屬于Java的引用數(shù)據(jù)類型。

如何理解Java中的基本數(shù)據(jù)類型和引用數(shù)據(jù)類型:

1.Java的基本數(shù)據(jù)類型是由Java語(yǔ)言本身提供的數(shù)據(jù)類型,不需要用戶自己定義;

2.Java中的引用數(shù)據(jù)類型則是由用戶自己定義的,而引用數(shù)據(jù)類型的定義需要用到基本數(shù)據(jù)類型;

3.從內(nèi)存關(guān)系上來(lái)說:

Java的的內(nèi)存分為兩大塊:棧內(nèi)存和堆內(nèi)存

棧內(nèi)存負(fù)責(zé)存儲(chǔ)方法中的基本數(shù)據(jù)類型變量和對(duì)象的引用變量

堆內(nèi)存負(fù)責(zé)存儲(chǔ)通過new關(guān)鍵字產(chǎn)生的數(shù)據(jù),也就是new關(guān)鍵字后面的類中的屬性和方法。

Java中基本數(shù)據(jù)類型存儲(chǔ)在棧內(nèi)存中,而引用數(shù)據(jù)類型的類型名存儲(chǔ)在棧內(nèi)存中,但是引用數(shù)據(jù)類型的內(nèi)容則存儲(chǔ)在堆內(nèi)存中。兩者之間通過地址來(lái)連接,實(shí)現(xiàn)互相的訪問。

4.數(shù)據(jù)由小范圍往大范圍轉(zhuǎn)換時(shí),JVM會(huì)自動(dòng)幫我們實(shí)現(xiàn)類型的轉(zhuǎn)換。比如:int i=10;long l=i;類似于這樣的數(shù)據(jù)轉(zhuǎn)換,Java的虛擬機(jī)可以自動(dòng)幫我們來(lái)完成這個(gè)工作。但是當(dāng)數(shù)據(jù)由大范圍往小范圍轉(zhuǎn)換時(shí)就需要手動(dòng)的加上強(qiáng)制類型轉(zhuǎn)換。如果在轉(zhuǎn)過程中出現(xiàn)數(shù)據(jù)的溢出則根據(jù)小范圍的數(shù)據(jù)類型的值域進(jìn)行變動(dòng)。比如說把整形的-129賦值給byte這時(shí)候輸出byte的值就是127;如果把整形的128賦值給byte類型,那么輸出的就應(yīng)該是-128。

Java中的參數(shù)傳遞:

基本數(shù)據(jù)類型:

public void test1(){
  int i=10;
  long l;
  l=i;
  System.out.println(i);//輸出值10
  System.out.println(l);//輸出值10
  l=i+1;
  System.out.println(i);//輸出值10
  System.out.println(l);//輸出值11
 }

由于基本數(shù)據(jù)類型是變量名與變量值一同存儲(chǔ)在棧內(nèi)存中,i 和 l 這兩個(gè)變量是互相獨(dú)立的,對(duì) l 的賦值操作并不會(huì)影響 i 值。

引用數(shù)據(jù)類型:

public class Book {
 private String name;

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }
}
public class Test {
 public static void main(String[] args) {
  Book book1=new Book();
  book1.setName("《百年孤獨(dú)》");
  Book book2=new Book();
  book2.setName("《圍城》");
  System.out.println("book1:"+book1.getName());//輸出:book1:《百年孤獨(dú)》
  System.out.println("book2:"+book2.getName());//輸出:book2:《圍城》
  book1=book2;
  book1.setName("《活著》");
  System.out.println("book1:"+book1.getName());//輸出:book1:《活著》
  System.out.println("book2:"+book2.getName());//book2:《活著》

 }
}

第一次new了兩個(gè)對(duì)象分別是book1,book2他們的書名分別是“百年孤獨(dú)”和“圍城”。然后通過賦值,book1也指向了與book2一樣的內(nèi)存區(qū)域,這時(shí)無(wú)論是對(duì)book1 還是book2 進(jìn)行操作影響的都是同一塊內(nèi)存區(qū)域了。這也就是為什么后面的輸出都是一樣的原因了。另外book1原先開辟的內(nèi)存空間由于沒有使用,JVM的垃圾回收機(jī)制會(huì)對(duì)其進(jìn)行處理,將這些不用的內(nèi)存空間進(jìn)行釋放。

以上這篇Java的數(shù)據(jù)類型和參數(shù)傳遞(詳解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java查看和修改線程優(yōu)先級(jí)操作詳解

    Java查看和修改線程優(yōu)先級(jí)操作詳解

    JAVA中每個(gè)線程都有優(yōu)化級(jí)屬性,默認(rèn)情況下,新建的線程和創(chuàng)建該線程的線程優(yōu)先級(jí)是一樣的。本文將為大家詳解Java查看和修改線程優(yōu)先級(jí)操作的方法,需要的可以參考一下
    2022-08-08
  • Java調(diào)度線程池ScheduledThreadPoolExecutor不執(zhí)行問題分析

    Java調(diào)度線程池ScheduledThreadPoolExecutor不執(zhí)行問題分析

    最近項(xiàng)目上反饋某個(gè)重要的定時(shí)任務(wù)突然不執(zhí)行了,很頭疼,開發(fā)環(huán)境和測(cè)試環(huán)境都沒有出現(xiàn)過這個(gè)問題。定時(shí)任務(wù)采用的是ScheduledThreadPoolExecutor,后來(lái)一看代碼發(fā)現(xiàn)踩了一個(gè)大坑。本文就來(lái)和大家聊聊這次的踩坑記錄與解決方法,需要的可以參考一下
    2023-03-03
  • 使用Java程序模擬實(shí)現(xiàn)新冠病毒傳染效果

    使用Java程序模擬實(shí)現(xiàn)新冠病毒傳染效果

    這篇文章主要介紹了用Java程序模擬實(shí)現(xiàn)新冠病毒傳染效果,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Spring @Conditional注解從源碼層講解

    Spring @Conditional注解從源碼層講解

    @Conditional是Spring4新提供的注解,它的作用是按照一定的條件進(jìn)行判斷,滿足條件給容器注冊(cè)bean,這篇文章主要介紹了Spring @Conditional注解示例詳細(xì)講解,需要的朋友可以參考下
    2023-01-01
  • 舉例講解Java的JSON類庫(kù)GSON的基本用法

    舉例講解Java的JSON類庫(kù)GSON的基本用法

    GSON是谷歌在GitHub上開源的Java的JSON格式轉(zhuǎn)換類庫(kù),能夠?qū)崿F(xiàn)Java對(duì)象向JSON的序列和反序列,這里我們就來(lái)舉例講解Java的JSON類庫(kù)GSON的基本用法:
    2016-06-06
  • java new一個(gè)對(duì)象的過程實(shí)例解析

    java new一個(gè)對(duì)象的過程實(shí)例解析

    這篇文章主要介紹了java new一個(gè)對(duì)象的過程實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • IDEA2020.1啟動(dòng)SpringBoot項(xiàng)目出現(xiàn)java程序包:xxx不存在

    IDEA2020.1啟動(dòng)SpringBoot項(xiàng)目出現(xiàn)java程序包:xxx不存在

    這篇文章主要介紹了IDEA2020.1啟動(dòng)SpringBoot項(xiàng)目出現(xiàn)java程序包:xxx不存在,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • java設(shè)計(jì)模式之簡(jiǎn)單工廠模式

    java設(shè)計(jì)模式之簡(jiǎn)單工廠模式

    這篇文章主要為大家詳細(xì)介紹了java設(shè)計(jì)模式之簡(jiǎn)單工廠模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Java線程中的ThreadLocal詳細(xì)分析

    Java線程中的ThreadLocal詳細(xì)分析

    這篇文章主要介紹了Java線程中的ThreadLocal詳細(xì)分析,ThreadLocal?提供線程的局部變量,每個(gè)線程都可以通過?get()和?set()對(duì)局部變量進(jìn)行操作而不會(huì)對(duì)其他線程的局部變量產(chǎn)生影響,實(shí)現(xiàn)了線程之間的數(shù)據(jù)隔離,需要的朋友可以參考下
    2023-09-09
  • Java實(shí)現(xiàn)FTP批量大文件上傳下載篇1

    Java實(shí)現(xiàn)FTP批量大文件上傳下載篇1

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)FTP批量大文件上傳下載的基礎(chǔ)篇,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-08-08

最新評(píng)論