JAVA定義變量和基礎的數據類型和關鍵字,詳解!

2020-12-11 小張的代碼經驗

標識符語法

1)java中定義標識符格式以字母,數字,下劃線,$符合組成,不能以數字開頭,且不能為java中的關鍵字。2)標識符意義要明確,不要亂起3)標識符區分大小寫例如 z和Z是不同的兩個標識符

4)java常用關鍵字

Java中的關鍵字

數據類型分類和轉換

1)布爾

基本數據類型中,布爾類型boolean佔有一個字節,由於其本身所代碼的特殊含義,boolean類型與其他基本類型不能進行類型的轉換(既不能進行自動類型的提升,也不能強制類型轉換), 否則,將編譯出錯

2)基本數據類型中數值類型的自動類型提升

圖中依次表示了各數值類型的字節數和相應的取值範圍。在Java中,整數類型(byte/short/int/long)中,對於未聲明數據類型的整形,其默認類型為int型。在浮點類型(float/double)中,對於未聲明數據類型的浮點型,默認為double型。

public class TestCast {

public static void main(String[] args) {

byte a = 1000; // 編譯出錯

float b = 1.5; // 編譯出錯

byte c = 3; // 編譯正確

}

}

jvm在編譯過程中,對於默認為int類型的數值時,當賦給一個比int型數值範圍小的數值類型變量(在此統一稱為數值類型k,k可以是byte/char/short類型),會進行判斷,如果此int型數值超過數值類型k,那麼會直接編譯出錯。因為你將一個超過了範圍的數值賦給類型為k的變量,k裝不下,你又沒有進行強制類型轉換,當然報錯了。但是如果此int型數值尚在數值類型k範圍內,jvm會自定進行一次隱式類型轉換,將此int型數值轉換成類型k。如圖中的虛線箭頭。這一點有點特別,需要稍微注意下。

在其他情況下,當將一個數值範圍小的類型賦給一個數值範圍大的數值型變量,jvm在編譯過程中俊將此數值的類型進行了自動提升

自動類型轉換

表示範圍小的數據類型轉換成範圍大的數據類型,這種方式稱為自動類型轉換

自動類型轉換格式:

範圍大的數據類型 變量 = 範圍小的數據類型值

強制類型轉換格式

範圍小的數據類型 變量 = (範圍小的數據類型) 範圍大的數據類型值;

public class TestCast {

public static void main(String[] args) {

byte p = 3; // 編譯正確:int到byte編譯過程中發生隱式類型轉換

int a = 3;

byte b = a; // 編譯出錯

byte c = (byte) a; // 編譯正確

float d = (float) 4.0;

}

}

區別在於前者3是直接量,編譯期間可以直接進行判定,後者a為一變量,需要到運行期間才能確定,也就是說,編譯期間為以防萬一,當然不可能編譯通過了。此時,需要進行強制類型轉換。

3)其他情況

public class TestCast {

public static void main(String[] args) {

long a = 10000000000; //編譯出錯

long b = 10000000000L; //編譯正確

int c = 1000;long d = c;

float e = 1.5F;

double f = e;}

}

如上:定義long類型的a變量時,將編譯出錯,原因在於10000000000默認是int類型,同時int類型的數值範圍是-2^31 ~ 2^31-1,因此,10000000000已經超過此範圍內的最大值,故而其自身已經編譯出錯,更談不上賦值給long型變量a了。

此時,若想正確賦值,改變10000000000自身默認的類型即可,直接改成10000000000L即可將其自身類型定義為long型。此時再賦值編譯正確。

將值為1000的int型變量c賦值給long型變量d,按照上文所述,此時直接發生了自動類型提升, 編譯正確。同理,將e賦給f編譯正確。

接下來,還有一個地方需要注意的是:char型其本身是unsigned型,同時具有兩個字節,其數值範圍是0 ~ 2^16-1,因為,這直接導致byte型不能自動類型提升到char,char和short直接也不會發生自動類型提升(因為負數的問題),同時,byte當然可以直接提升到short型。

相關焦點

  • java基礎案例之java語言組成和數據類型與強制類型轉換語法
    java語言組成包含:1:關鍵字,2:標識符。3:注釋。4:常量和變量。5:運算符 。 6:語句 7:函數 8:數組。java數據類型定義變量格式:數據類型 變量名 =初始化值;例如:int x =4;
  • Java面向對象之final、abstract抽象、和變量生命周期
    出於安全考慮,類的實現細節不允許被拓展和修改。比如:基本數據類型的包裝類就是一個典型的例子。該類不會再被拓展。java裡final修飾的類有很多,比如八大基本數據類型的包裝類(Byte,Character、Short、Integer、Long、Float、Double、Boolean)和String等。
  • Java 變量、表達式和數據類型詳解
    變量的特點:① 佔據內存中的一塊存儲區域;② 該存儲區域有自己的名稱(變量名)和類型(數據類型);③ 可以被重複使用,可以在多處使用;④ 該區域的數據可以在同一類型範圍內不斷變化局部變量:變量除了成員變量之外,其他的就是局部變量;局部變量根據定義位置的不同有3種表現形式:方法形參,方法內變量,代碼塊變量。變量作用域: 變量的作用範圍或者可訪問範圍,只有作用域內,變量才能被其他程序代碼訪問。
  • 深入分析Java中的關鍵字static
    先給出這篇文章的大致脈絡:首先,描述了static關鍵字去修飾java類、方法、變量、代碼塊的方法然後,從底層分析static關鍵字,接下來,給出static的一些使用場景和案例最後,對static進行一個總結,包括和普通變量的區分。
  • Java基礎知識——第一天
    方法/變量,class是用於創建類的關鍵字,class後面的MyJavaApp,是類的名字,也叫標識符,由程式設計師自己定義。3、Java中的標識符——標識符是用來給類、對象、方法、變量、接口和自定義數據類型命名的。
  • Java基本數據類型與引用數據類型概述
    在Java中使用final關鍵字來修飾常量。什麼是變量?在程序執行的過程中,在某個範圍內其值可以發生改變的量。當創建變量的時候,需要在內存中申請空間。內存管理系統根據變量的類型為變量分配存儲空間,分配的空間只能用來儲存該類型數據。
  • Java新特性:數據類型可以扔掉了?
    所以使用 enum 關鍵字定義常量,儘管從 Java 語法上看起來與使用 class 關鍵字定義類、使用 interface 關鍵字定義接口是同一層次的,但實際上這是由 Javac 編譯器做出來的假象,從字節碼的角度來看,枚舉僅僅是一個繼承於 java.lang.Enum、自動生成了 values() 和 valueOf() 方法的普通 Java 類而已,因此枚舉也歸為引用類型了。
  • JAVA脫水學習——3.java數據類型
    JAVA 數據類型分兩大類,基本數據類型和引用數據類型。其中基本數據類型包括:整形、浮點型、字符型、布爾型;引用數據類型包括:數組、類、接口。Java 把內存分為棧和堆,棧用來保存局部變量,如基本數據類型,類的實例;堆用來保存動態產生的數據,如 new 創建的引用類型。
  • java之小小的基礎知識點
    Java關鍵字是對Java編譯器有特殊含義的字符串,是編譯器和程式設計師的一個約定,程式設計師利用關鍵字來告訴編譯器其聲明的變量類型、類、方法特性等信息。Java語言共定義了如下所示的關鍵字。指的為某一種數據類型定義的名字 ,在Java中用來存放的數據而借用的空間就是變量或常量。
  • Java裡面volatile關鍵字修飾引用變量的陷阱
    Java裡面volatile關鍵字修飾引用變量的陷阱如果我現在問你volatile的關鍵字的作用,你可能會回答對於一個線程修改的變量對其他的線程立即可見。嚴謹的回答應該是volatile關鍵字對於基本類型的修改可以在隨後對多個線程的讀保持一致,但是對於引用類型如數組,實體bean,僅僅保證引用的可見性,但並不保證引用內容的可見性。
  • 程序基礎:Java基礎知識一
    在上一篇文章中我們一起配置了Java的基本開發環境,今天我們就一起來創建一個小工程,並且老梁也和大家一起來回顧一部分Java的基礎知識,這些基礎知識有很多是通用的,就是這些知識基本上是不會因為程式語言的區別而有太大的變化,算是程序的基礎。
  • python基礎知識變量、運算和數據類型
    = id(y)時 → False 知識點4:Python 基礎數據結構數據結構:包含多個數據的數據集,不同類型數據集對應不同的數據排列方式。數據集中的數據既可以是單個基礎數據(數字和字符串),也可以是不同類型的數據集。對於一門程式語言來說,數據結構就是其根基,了解掌握數據結構對於學好這門語言至關重要。
  • 每日一課 | Java Static關鍵字示例
    它有助於管理對象,變量和方法定義所佔用的內存。static關鍵字可確保在內存中僅創建一個相關方法,對象或變量的實例。當需要一個類級別的變量來管理某些屬性值時,以及需要一個類級別的方法來執行某些操作時,都可以使用它。下面每個內容中都會詳細討論static關鍵字的使用。1.
  • ABAP學習筆記-基礎語法-02-數據對象的定義-變量與常量(01)
    本篇我們簡單介紹一下數據對象中,變量和常量的定義方式。注意:本篇只是簡單分享了常用語法結構,具體其他技術細節,請大家自行測試。正文 變量的定義 常見定義變量的方式有兩種:DATA和 LIKE.DATA是通過數據類型去定義變量;LIKE是通過數據對象去定義變量。 1.DATA+TYPE用數據類型去定義變量;1.1.
  • 深入理解Java關鍵字null
    因此可以將null賦給引用類型變量,但不可以將null賦給基本類型變量。比如:int a = null是錯誤的,而Ojbect o = null是正確的。Java中變量的使用都遵循一個原則:先定義並且初始化後才可以使用。我們不能在定義int a後,不給a指定值,就去列印a的值,這對於引用類型變量也是適用的。
  • Java重要的基礎概念,一定要牢牢記住
    學好java最重要的就是基礎概念,就像建房子,基礎打好了,才能建起萬丈高樓,所以,我們先從基礎開始,從基礎概念開始。java中把它稱為關鍵字。在java語言中已經被賦予特定意義的一些單詞。關鍵字不能被用作標識符。例如:古代貧民的名字不能和皇帝的名諱相同,相同就要殺頭的哦。下面的關鍵字很多,對於初學者這麼多怎麼記啊,根本不用記,後面這些內容,我們要寫數百遍,數千遍,甚至有些我都寫了數萬遍了。你還用死記嗎?
  • Java基礎學習:java中的基本數據類型
    一、基本類型 1、基本類型 不使用New創建,聲明一個非引用傳遞的變量,且變量的值直接置於堆棧中,大小不隨運行環境變化,效率更高。使用new創建的引用對象存儲在堆中。
  • Java基礎知識總結(絕對經典)
    因為有些數據不確定。所以確定該數據的名詞和存儲空間。 特點:變量空間可以重複使用。 什麼時候定義變量?只要是數據不確定的時候,就定義變量。 變量空間的開闢需要什麼要素呢? 1,這個空間要存儲什麼數據?數據類型。
  • 一起學JAVA——數據類型
    上一篇我們提到過,java是強數據類型語言,所有在定義變量和常量時必須指定數據類型。java到底支持哪些數據類型呢?比如阿里巴巴的總資產已經超出了證書類型的最大值了那怎麼存儲呢?java的設計者已經考慮到這個問題了!java提供了兩個特殊的類:BigInteger和BigDecimal。從名字上就可以看出來他們可以存儲很大的數。他支持多大的數呢?要多大就有多大,只要你能寫出來的他都可以存儲!
  • 變量和基本類型
    變量類型又分為整型和浮點型,其一般的類型字節大小如下表(sizeof()運算符)類型字節大小類型