首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

零基礎學 Java:變量入門——聲明、初始化、基本類型與引用類型

     編輯:Java 綜合教學

Java 變量入門:從聲明到記憶體模型的第一課

變量是程序操作數據的「標籤」。本文面向零基礎學習者,通過圖解記憶體、對比基本/引用類型、實戰常見錯誤,建立正確的變量心智模型。

1. 什麼是變量?

變量 = 類型 + 名稱 + 值。本質上是內存地址的別名,方便人類閱讀與操作數據。

int age = 18;        // 基本類型:直接存儲值
String name = "Tom"; // 引用類型:存儲對象在堆中的地址

2. 基本類型(8 種)

類別關鍵字位數默認值取值範圍/說明
整數byte80-128 ~ 127
short160-32,768 ~ 32,767
int320-2^31 ~ 2^31-1(約 ±21 億)
long640L-2^63 ~ 2^63-1,末尾加 L
浮點float320.0f單精度,末尾加 F,約 7 位有效數字
double640.0雙精度,默認浮點類型,約 15 位有效數字
字符char16'\u0000'單個 Unicode 字符,單引號
布爾boolean1~8falsetrue/false,無具體大小規定

口訣:整數默認 int,浮點默認 double,long 加 L,float 加 F,char 單引號,boolean 真假。

3. 引用類型

  • 類、介面、數組、枚舉、註解、Lambda 表達式(函數式介面)。
  • 聲明時未賦值,默認 null(指向「無對象」)。
  • 實際對象在堆上創建,變量在棧存地址。
int[] scores = new int[5]; // 數組對象在堆,scores 在棧存地址
scores[0] = 95;            // 通過地址找到對象修改內容

4. 聲明與初始化語法

// 1. 分步
int a;
a = 10;

// 2. 一步到位
int b = 20;

// 3. 同類型多變量
int x = 1, y = 2, z = 3;

// 4. 引用類型
String s;        // s = null
String t = "Hi"; // 指向字符串常量池對象

5. 記憶體圖解:基本 vs 引用

// 基本類型:值直接在棧
int a = 10;
int b = a; // 複製值
b = 20;    // a 仍為 10

// 引用類型:棧存地址,堆存對象
int[] arr1 = {1,2,3};
int[] arr2 = arr1; // 複製地址,指向同一對象
arr2[0] = 99;      // arr1[0] 也變成 99

核心結論:基本類型傳值,引用類型傳地址(稱「傳引用的值」)。方法參數傳遞同理。

6. 常見新手錯誤與修正

錯誤代碼問題修正
int 1name = 1;數字開頭int name1 = 1;
float f = 3.14;默認 doublefloat f = 3.14f;
char c = "A";雙引號是字符串char c = 'A';
boolean flag = "true";字符串非布爾boolean flag = true;
String s; System.out.println(s.length());未初始化為 nullString s = ""; 或判空
int[] a = new int[3]; a[3] = 1;索引越界合法索引 0~2

7. 命名規範速查

  • 駝峰命名:userName、maxCount、isValid。
  • 見名知意:禁用 a、temp、data 等無語義名(循環計數器 i/j/k 除外)。
  • 常量全大寫:MAX_SIZE、DEFAULT_TIMEOUT_MS。

8. 練習題

  1. 聲明一個長整型變量表示中國人口(約 14 億),正確寫法?
  2. 為什麼 float price = 19.9; 編譯報錯?如何修正?
  3. 執行後 arr1[0] 為何變化?int[] arr1={1}; int[] arr2=arr1; arr2[0]=2;
  4. 交換兩個 int 變量值,不使用第三個變量(位運算或加減法)。

掌握變量聲明、初始化、基本/引用類型區別與記憶體模型,是通往 Java 進階的必經之路。下一篇將講解「運算符與表達式」。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved