Java 基础教程系列 - 变量与数据类型

Java Tutorial for Language Basics - Variable and Data Types

Posted by zihengCat on 2019-01-22

什么是 Java 变量(Variable)

Java 变量具有三种属性:

  • 变量具有数据类型

  • 一块内存空间存储变量值

  • 通过标示符可以引用到内存空间

Java 支持两种数据类型:

  • 基本(Primitive)数据类型

  • 引用(Reference)数据类型

Java 标识符(Identifier)

简而言之,Java 标识符(Identifier)是指程序员给予 Java 程序各元素(如:变量、类、方法…)起的独特名称。

一枚 Java 标识符由一系列字符序列构成,长度没有限制。

构成 Java 标识符的字符序列可以包括字母与数字,首字符不能为数字,不能与 Java 保留关键字(Reserved Keywords)冲突。

  • Java 标识符字符序列长度没有限制

  • Java 标识符字符集为 Unicode 字符集,不仅仅是 ASCII 字符集

  • Java 标识符大小写敏感(Case Sensitive)

  • Java 标识符中不允许出现空白符(如:空格)

  • A-Za-z0-9_(下划线)、$(美元符号)都是常用的 Java 标识符字符

标识符 解释
num1 可以使用a-z0-9的任意字符组合
letter 仅包含小写字母
aLetter 混合使用大小写字母
a1Letter 混合使用大小写字母与数字
_aaa 以下划线开头
_ 单下划线
sum_of_two_numbers 下划线与字母的组合
Outer$Inner$Level 字母与美元符号的组合
$var 以美元符号开头

表:合法 Java 标识符示例

标识符 解释
2num 不允许以数字开头
my name 不允许空白符分隔
num1+num2 不允许带有操作符
null 不允许与关键字冲突

表:非法 Java 标识符示例

Java 保留关键字(Reserved Keywords)

Java 语言定义了一系列保留关键字(Reserved Keywords)实现 Java 语义,这些关键字无法被用作标识符。

- - - - -
abstract do if package synchronized
boolean double implements private this
break else import protected throw
byte extends instanceof public throws
case false int return transient
catch final interface short true
char finally long static try
class float native strictfp void
const for new super volatile
continue goto null switch while
default

表:Java 语言保留关键字(Reserved Keywords)

其中,constgoto并没有实现 Java 语义,仅作保留。

Java 基本(Primitive)数据类型

Java 有 8 个基本(Primitive)数据类型。

类别 类型
布尔型 boolean
整数型 charbyteshortintlong
浮点型 floatdouble

表:Java 基本(Primitive)数据类型分类表

类型 Bits 取值范围 默认值
boolean 1 true / false false
char 16 \u0000 ~ \uFFFF \u0000
byte 8 -128 ~ 127 0
short 16 -32768 ~ 32767 0
int 32 -2147483648 ~ 2147483647 0
long 64 -9233372036854477808 ~ 9233372036854477807 0
float 32 -3.40292347E+38 ~ 3.40292347E+38 0.0f
double 64 -1.79769313486231570E+308 ~ 1.79769313486231570E+308 0.0d

表:Java 基本(Primitive)数据类型详情表

public class Main {
    public static void main(String args[]) {
        boolean aBoolean = true;
        char aChar = 'A';
        byte aByte = 99;
        short aShort = -902;
        int anInt = 100;
        long aLong = 200L;
        float aFloat = 99.98F;
        double aDouble = 999.89;
        /* print values of the variables */
        System.out.println("aBoolean = " + aBoolean);
        System.out.println("aChar = " + aChar);
        System.out.println("aByte = " + aByte);
        System.out.println("aShort = " + aShort);
        System.out.println("anInt = " + anInt);
        System.out.println("aLong = " + aLong);
        System.out.println("aFloat = " + aFloat);
        System.out.println("aDouble = " + aDouble);
    }
}

代码清单:Java 基本(Primitive)数据类型