1. 程式人生 > 實用技巧 >1、JAVA資料型別

1、JAVA資料型別

JAVA的資料型別

A:基本資料型別

整型:byte、short、int、long

浮點型:float、double

布林型:boolean

字元型:char

B:引用資料型別

類:class

介面:interface

陣列:Array

C:八種基本資料型別的包裝類(引用資料型別)

Byte: 類將基本型別 byte 的值包裝在一個物件中

Short: 類在物件中包裝基本型別 short 的值

Integer:Integer 類在物件中包裝了一個基本型別 int 的值

Long: 類在物件中包裝了基本型別 long 的值

Float: 類在物件中包裝一個基本型別 float 的值

Double: 類在物件中包裝一個基本型別 double 的值

Character: 類在物件中包裝一個基本型別 char 的值

Boolean: 類將基本型別為 boolean 的值包裝在一個物件中

問題

面試官的問題一:JAVA為什麼需要這麼多資料型別呢?

答:我們電腦上的記憶體大小是有極限的,我們在使用記憶體的時候要本著一些原則:

1:使用完畢之後立即釋放記憶體

2:儘量不要浪費記憶體

3:java的不同的資料型別就是要讓使用者按需分配記憶體大小。

合理開銷

面試官的問題二:JAVA基本資料型別的包裝類到底能幹嘛?

1:儲存著這個基本資料型別的最大、最小值

2:表示基本型別 short 的 Class 例項。

3:java的不同的資料型別就是要讓使用者按需分配記憶體大小。

合理開銷

面試官的問題三:小周,你工作三年了,有什麼難忘的事情?

小周答:

我們公司有一個小鄭,下班時間不走,很糾結,因為程式出

錯,找不到地方,於是,我挺身而出,幫他解決了。java中的基本資料

型別都有極限值,如果超越這個極限值,將發生無法預知的後果 。

**面試官的問題四:程式中遇到帶小數點的資料運算如何處理?

Java中遇到帶小數點的數都認為是double型,所以開發中儘量不要使用float,如果使用混合資料型別運算會強制轉換。遇到浮點資料型別的運算推薦使用BigDecimal,可以保留精度。

**面試官的問題五:包裝的常量池陣列:-128到127

超過了這個範圍返回的是一個物件,沒有超出,返回的則是一個基本資料型別的值

1:基本概念

比如:請您談談對JAVA的資料型別的理解

java只所以對資料進行型別的區分,是為了合理的分配和使用

記憶體的開銷,主要分為兩大型別:基本資料型別和引用資料型別

基本資料型別的分類:

整形、浮點型、布林型、字元型

引用資料型別的分類:

類、介面、陣列

那我來詳細闡述下基本資料型別:

byte、short、int、long、float、double、boolean、char

這八種類型分別對應八種包裝類:

包裝類儲存著此種基本資料型別的最大值、最小值

2:深度拓展

每一種基本資料型別因為有儲存的極限值,如果超過這個值將導致 不可預知的結果

比如:因為超過極限導致的死迴圈

byte b1=127;

b1++;

System.out.println(b1);//結果不是128

for(byte b=1;i<=Byte.MAX_VALUE;b++){}

混合資料型別進行算時有一些規則:

混合資料型別進行算將先進行型別的統一

將小型別向大型別進行轉換,再進行運算。

float f1=3.14f;

System.out.println(3.14==f1);

結果是false

實際專案開發中,不使用float double來進行浮點數的運算

使用BigDecimal來準確的控制精度

Integer包裝類在進行宣告賦值時有兩種方式:

如果是用簡便的方法進行則要注意值如果大於127或小於等於127,結果不同

一個表示new物件,一個表示類似於基本資料型別

Integer i1=128;
Integer i2=128;
System.out.println(i1==i2);
System.out.println(i1.equals(i));

JAVA表達中如果資料型別不統一,則要注意運算的規則:

如果遇到不帶小數點值預設為int,帶小數點的預設為double

型別如果不統一,就進行統一之後再運算

3:專案運用

防止資料型別不統一的情況下產生的強制轉換

使用推薦做法:s++

如果是浮點資料型別進行運算推薦使用BigDecimal,它可以保證精度

小心資料型別儲存的極限範圍,防止溢位

4:常見異常

java.util.InputMismatchException: Value out of range. Value:"129"