大一java考試題庫「java基礎考試題及答案」

前言

Java語言的數據類型是Java語言中最基礎也是最重要的知識,參加Java筆試的時候應該是必考的,參加面試的時候也有可能會問到,以此考察面試者對Java基礎知識的掌握程度。

Java語言的數據類型可以分為:基本數據類型和引用數據類型。在Java中,引用數據類型的變量非常類似於C/C++的指針,對象、數組都是引用數據類型。本文重點介紹Java的基本數據類型。

Java基本數據類型

Java語言內置的基本數據類型共有8種,可以分為四類:

  • 整數類型:long、int、short、byte
  • 浮點類型:float、double
  • 字符類型:char
  • 布爾類型:boolean

整數類型

四種整數類型分別有不同的位數:

  • byte 數據類型是8位、有符號的以二進制補碼錶示的整數;
  • short 數據類型是 16 位、有符號的以二進制補碼錶示的整數;
  • int 數據類型是32位、有符號的以二進制補碼錶示的整數;
  • long 數據類型是 64 位、有符號的以二進制補碼錶示的整數。

有符號數是指數值有正負號的區別。計算機中的有符號數有三種表示方法,即原碼、反碼和補碼。三種表示方法均有符號位和數值位兩部分,符號位都是用0表示「正」,用1表示「負」,而數值位,三種表示方法各不相同。

二進制補碼:正整數的補碼是其二進制表示;0的補碼就是全0;負整數的補碼是除符號位外的所有位取反後加1。

比如byte類型-5的補碼:-5帶符號位是10000101,除符號位全部取反是11111010,再加1就是11111011,就得到了-5的補碼。

浮點類型

float 數據類型是單精度32位、符合IEEE 754標準的浮點數;double 數據類型是雙精度64 位、符合IEEE 754標準的浮點數。IEEE 754標準是一種浮點數的表示形式,篇幅有限,本文暫不做詳細描述。

float 比 double 更節省空間,double可以存儲精度更高的浮點數。兩者均不建議用來表示貨幣,貨幣應該用整數類型表示。

字符類型

char類型是一個16 位 Unicode 字符,最小值是 u0000(即為 0);最大值是 uffff(即為65535)。

布爾類型

boolean數據類型只有兩種取值,true(真)或false(假)。

默認值和取值範圍

每一種基本數據類型都有系統默認值,在JVM為其分配內存的時候就會以系統默認值初始化。現將每一種數據類型的默認值和取值範圍總結如下。Java面試必考問題:Java基本數據類型

基本數據類型的默認值和取值範圍

對於每一種數據類型的取值範圍,我們不需要刻意記憶,這些取值範圍都已經以常量的形式定義在基本數據類型對應的包裝類中。Java面試必考問題:Java基本數據類型

基本類型與對應包裝類

每一種基本類型,在java.lang中都有對應的包裝類,比如boolean類型對應的包裝類是 java.lang.Boolean。將基本數據類型封裝成對象的好處在於可以在對象中定義更多的功能方法來操作該數據。比如包裝類的 toString() 方法用於基本數據類型與字符串之間的轉換。

類型轉換

基本數據類型的類型轉換分為自動類型轉換 強制類型轉換。

自動類型轉換,也稱隱式類型轉換,是指不需要書寫代碼,由系統自動完成的類型轉換。轉換規則:從存儲範圍小的類型到存儲範圍大的類型。

byte b = 10;
short sh = b;

因為 b 是byte型,存儲範圍比short型小,所以JVM可以自動把 b 轉換為short型,並賦值給 sh.

強制類型轉換,也稱顯式類型轉換,是指必須書寫代碼才能完成的類型轉換。轉換規則:從存儲範圍大的類型到存儲範圍小的類型。可能會造成精度損失。

double pi = 3.14;
int p = (int) pi; //這裡就是強制轉換

因為 double型的存儲範圍比 int型大,所以必須使用強制類型轉換 把 pi 轉換為 int型。

基本數據類型的存儲

那麼在程序中定義的基本數據類型,JVM會如何存儲呢?這個要看情況。

Java方法中定義的基本數據類型,屬於局部變量,存放在虛擬機棧VM Stack)中。

Java類中定義的基本數據類型,如果是非靜態成員變量,其所在類被實例化後,是放在堆內存Heap)中的。如果是靜態成員變量,那麼在類加載以後,就會在方法區內為其分配內存。Java面試必考問題:Java基本數據類型

基本數據類型的內存分配

關於JVM內存如何劃分,可以參考前文《Java面試必考問題:JVM內存區域如何劃分? 》。

基本數據類型的傳遞

基本數據類型可以作為傳遞方法的參數,這裡要注意和引用數據類型作為方法參數之間的區別。

當方法參數類型是基本數據類型時,方法是不能修改基本數據類型的數值;當傳遞方法參數類型是引用類型時,比如對象或數組,方法是可以修改引用所指向的對象的狀態的。

關於Java基本數據類型的話題基本聊得差不多了,掌握這些基礎知識,對於我們參加面試還是非常有幫助的。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/268266.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-16 13:08
下一篇 2024-12-16 13:08

相關推薦

發表回復

登錄後才能評論