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

關(guān)于Java變量的聲明、內(nèi)存分配及初始化詳解

 更新時(shí)間:2017年03月08日 10:50:50   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇關(guān)于Java變量的聲明、內(nèi)存分配及初始化詳解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

實(shí)例如下:

class Person
{
  String name;
  int age;
  void talk()
  {
    System.out.println("我是: "+name+", 今年: "+age+"歲");
  }
}
 
public class TestJava2_1
{
  public static void main(String args[])
  {
    Person p;
    if (p == null)
    {
      p = new Person();
    }
     
    p.name = "張三";
    p.age = 25;
    p.talk();
  }
}

為了更好的了解Java中變量的使用方式,我們做一個(gè)實(shí)驗(yàn)。將以上代碼保存為T(mén)estJava2_1.java文件,之后執(zhí)行 “javac TestJava2_1.java” 命令將代碼編譯成二進(jìn)制文件。

編譯時(shí)將報(bào)錯(cuò),報(bào)錯(cuò)內(nèi)容大致如下:

“TestJava2_1.java:59: 錯(cuò)誤: 可能尚未初始化變量p”

編譯器認(rèn)為引用數(shù)據(jù)類(lèi)型變量p未初始化,所以不可以判斷是否等于null,但我認(rèn)為編譯器對(duì)于此錯(cuò)誤的表述不太準(zhǔn)確。就算變量p沒(méi)有給予初始值,默認(rèn)值至少是存在的,那么用默認(rèn)值和null比較有什么不可以呢。我認(rèn)為正確的錯(cuò)誤表述應(yīng)該是 “變量p尚未分配內(nèi)存空間”?!癙erson p” 僅僅是聲明有一個(gè)引用數(shù)據(jù)類(lèi)型變量p,但并未給p分配任何內(nèi)存空間,這點(diǎn)和C/C++是不一樣的。

將變量p的聲明改為 “Person p = null” 后,執(zhí)行 “javac TestJava2_1.java” 就能夠成功編譯。可見(jiàn) “Person p = null” 語(yǔ)句除了賦予變量p初值外,還在賦值前為變量p分配了內(nèi)存空間。

從上面的實(shí)驗(yàn)中可以看出,Java中引用數(shù)據(jù)類(lèi)型變量的內(nèi)存分配在賦初值時(shí)進(jìn)行。用相同的方法測(cè)試Java中的基本數(shù)據(jù)類(lèi)型變量,同樣可以發(fā)現(xiàn)變量在聲明時(shí)并沒(méi)有分配內(nèi)存,真正的內(nèi)存分配是在賦初值時(shí)進(jìn)行的。

注上面的有錯(cuò)誤,如果是int a;

a變量是分配了內(nèi)存單元的。a默認(rèn)值是0;

所以基本類(lèi)型在聲明的時(shí)候就分配了內(nèi)存單元。

以上這篇關(guān)于Java變量的聲明、內(nèi)存分配及初始化詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java使用JSONObject需要的6個(gè)jar包下載地址

    Java使用JSONObject需要的6個(gè)jar包下載地址

    這篇文章主要介紹了Java使用JSONObject需要的6個(gè)jar包下載地址,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Spring集成Druid連接池及監(jiān)控配置的全過(guò)程

    Spring集成Druid連接池及監(jiān)控配置的全過(guò)程

    java程序很大一部分要操作數(shù)據(jù)庫(kù),為了提高性能操作數(shù)據(jù)庫(kù)的時(shí)候,有不得不使用數(shù)據(jù)庫(kù)連接池,下面這篇文章主要給大家介紹了關(guān)于Spring集成Druid連接池及監(jiān)控配置的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • Mybatis的@select和@SelectProvider注解方式動(dòng)態(tài)SQL語(yǔ)句解讀

    Mybatis的@select和@SelectProvider注解方式動(dòng)態(tài)SQL語(yǔ)句解讀

    這篇文章主要介紹了Mybatis的@select和@SelectProvider注解方式動(dòng)態(tài)SQL語(yǔ)句,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 分享Java程序員應(yīng)該知道的10個(gè)調(diào)試技巧

    分享Java程序員應(yīng)該知道的10個(gè)調(diào)試技巧

    在本文中,作者將使用大家常用的的開(kāi)發(fā)工具Eclipse來(lái)調(diào)試Java應(yīng)用程序。但這里介紹的調(diào)試方法基本都是通用的,也適用于NetBeans IDE,我們會(huì)把重點(diǎn)放在運(yùn)行時(shí)上面
    2012-09-09
  • java并發(fā)容器ConcurrentHashMap深入分析

    java并發(fā)容器ConcurrentHashMap深入分析

    這篇文章主要為大家介紹了java并發(fā)容器ConcurrentHashMap使用示例及深入分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • java實(shí)現(xiàn)猜數(shù)字小游戲

    java實(shí)現(xiàn)猜數(shù)字小游戲

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)猜數(shù)字小游戲,隨機(jī)給定一個(gè)數(shù)字,直到猜對(duì)大小,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • JavaWeb項(xiàng)目打開(kāi)網(wǎng)頁(yè)出現(xiàn)Session Error的異常解決方案

    JavaWeb項(xiàng)目打開(kāi)網(wǎng)頁(yè)出現(xiàn)Session Error的異常解決方案

    這篇文章主要介紹了JavaWeb項(xiàng)目打開(kāi)網(wǎng)頁(yè)出現(xiàn)Session Error的異常解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • maven項(xiàng)目打jar包并包含所有依賴詳細(xì)教程

    maven項(xiàng)目打jar包并包含所有依賴詳細(xì)教程

    maven打包生成的普通jar包,只包含該工程下源碼編譯結(jié)果,不包含依賴內(nèi)容,下面這篇文章主要給大家介紹了關(guān)于maven項(xiàng)目打jar包并包含所有依賴的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • Spring配置文件的超詳細(xì)圖文介紹

    Spring配置文件的超詳細(xì)圖文介紹

    Spring配置文件是一個(gè)或多個(gè)標(biāo)準(zhǔn)的XML文檔,下面這篇文章主要給大家介紹了關(guān)于Spring配置文件的超詳細(xì)圖文介紹,文中通過(guò)圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • Java代碼審計(jì)的一些基礎(chǔ)知識(shí)你知道嗎

    Java代碼審計(jì)的一些基礎(chǔ)知識(shí)你知道嗎

    這篇文章主要介紹了基于Java的代碼審計(jì)功能的基礎(chǔ)知識(shí),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2021-09-09

最新評(píng)論