java基礎(變量、常量、數據類型)


尚學堂學習筆記

變量本質上就是代表一個”可操作的存儲空間”

不提倡這種"一行聲明多個變量"風格,逐一聲明每一個變量可以提高程序可讀性。

局部變量

方法或語句塊內部

方法/語句塊

從聲明位置開始,直到方法或語句塊執行完畢,局部變量消失

成員變量

(實例變量)

類內部,方法外部

對象

對象創建,成員變量也跟着創建。對象消失,成員變量也跟着消失;

靜態變量

(類變量)

類內部,static修飾

類被加載,靜態變量就有效;類被卸載,靜態變量消失。

 

· 成員變量(也叫實例變量  member variable)

    方法外部、類的內部定義的變量。從屬於對象,生命周期伴隨對象始終。如果不自行初始化,它會自動初始化成該類型的默認初始值。

2-3實例變量的默認初始值

數據類型

實始值

int

0

double

0.0

char

‘\u0000’

boolean

false

·  靜態變量(類變量 static variable)

      使用static定義。 從屬於類,生命周期伴隨類始終,從類加載到卸載。 如果不自行初始化,與成員變量相同會自動初始化成該類型的默認初始值

final修飾叫符號常量,關鍵字final來定義一個常量。 常量一旦被初始化后不能再更改其值。

變量和常量命名規范(規范是程序員的基本准則,不規范會直接損害你的個人形象):

數據類型 

  1. 所有變量、方法、類名:見名知意

  2. 類成員變量:首字母小寫和駝峰原則:  monthSalary

  3. 局部變量:首字母小寫和駝峰原則

  4. 常量:大寫字母和下划線:MAX_VALUE

  5. 類名:首字母大寫和駝峰原則:  Man, GoodMan

  6. 方法名:首字母小寫和駝峰原則: run(), runRun()       

7.png

   自動類型轉換指的是容量小的數據類型可以自動轉換為容量大的數據類型。如圖2-6所示,黑色的實線表示無數據丟失的自動類型轉換,而虛線表示在轉換時可能會有精度的損失。

1.png

2-4整型數據類型

類型

占用存儲空間

表數范圍

byte

1字節

-2~   27-1(-128~127)

short

2字節

-215 ~   215-1(-32768~32767)

int

4字節

-231 ~   231-1 (-2147483648~2147483647)約21億

long

8字節

-263 ~   263-1

 

2-4整型數據類型

類型

占用存儲空間

表數范圍

byte

1字節

-2~   27-1(-128~127)

short

2字節

-215 ~   215-1(-32768~32767)

int

4字節

-231 ~   231-1 (-2147483648~2147483647)約21億

long

8字節

-263 ~   263-1

 

 

 

布爾類型不能進行數據轉換

byte/short/char運算時會先提升為int類型eg:byte+byte結果會等於int

byte/short/char初始化時沒有超過范圍時,編譯器會補上強轉

 

 float類型的數值有一個后綴F或者f ,沒有后綴F/f的浮點數值默認為double類型。也可以在浮點數值后添加后綴D或者d, 以明確其為double類型。 

Java浮點類型常量有兩種表示形式

由於字長有限,浮點數能夠精確表示的數是有限的,因而也是離散的。 浮點數一般都存在舍入誤差,很多數字無法精確表示(例如0.1),其結果只能是接近, 但不等於。二進制浮點數不能精確的表示0.1、0.01、0.001這樣10的負次冪。並不是所有的小數都能可以精確的用二進制浮點數表示。 如果需要進行不產生舍入誤差的精確數字計算,需要使用BigDecimal類。

  • 十進制數形式,例如:3.14       314.0      0.314 

  • 科學記數法形式,如314e2      314E2      314E-2 

  • 浮點類型float,double的數據不適合在不容許舍入誤差的金融計算領域。如果需要進行不產生舍入誤差的精確數字計算,需要使用BigDecimal類。

import java.math.BigDecimal;
public class Main {
    public static void main(String[] args) {
        BigDecimal bd = BigDecimal.valueOf(1.0);
        bd = bd.subtract(BigDecimal.valueOf(0.1));
        bd = bd.subtract(BigDecimal.valueOf(0.1));
        bd = bd.subtract(BigDecimal.valueOf(0.1));
        bd = bd.subtract(BigDecimal.valueOf(0.1));
        bd = bd.subtract(BigDecimal.valueOf(0.1));
        System.out.println(bd);//0.5
        System.out.println(1.0 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1);//0.5000000000000001
    }
}

  

 

final關鍵字的作用:

      1. 修飾變量: 被他修飾的變量不可改變。一旦賦了初值,就不能被重新賦值。

final  int   MAX_SPEED = 120;

      2. 修飾方法:該方法不可被子類重寫。但是可以被重載!

final  void  study(){}

      3. 修飾類: 修飾的類不能被繼承。比如:Math、String等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM