原文: https://www.programiz.com/java-programming/variables-primitive-data-types
在本教程中,您将了解变量,如何创建变量以及 Java 编程语言支持的用于创建变量的不同数据类型。
Java 变量
变量是内存中用于存储数据的位置(存储区域)。
为了指示存储区域,应该为每个变量赋予唯一的名称(标识符)。 了解有关 Java 标识符的更多信息。
如何在 Java 中声明变量?
这是在 Java 中声明变量的示例。
int speedLimit = 80;
在此,speedLimit是int数据类型的变量,并分配了值 80。这意味着speedLimit变量可以存储整数值。 您将在本文稍后详细了解 Java 数据类型。
在示例中,我们在声明期间为变量分配了值。 但是,这不是强制性的。 您可以在不分配值的情况下声明变量,以后可以根据需要存储值。 例如,
int speedLimit;speedLimit = 80;
变量的值可以在程序中更改,因此名称为“变量”。 例如,
int speedLimit = 80;... .. ...speedLimit = 90;
Java 是一种静态类型的语言。 这意味着必须先声明所有变量,然后才能使用它们。
同样,您不能在同一范围内更改 Java 中变量的数据类型。 变量范围是什么? 暂时不要担心。 现在,请记住您不能做这样的事情。
int speedLimit = 80;... .. ...float speedLimit;
要了解更多信息,请访问:我可以更改 Java 中变量的声明类型吗?
Java 中的变量命名规则
Java 编程语言具有一套自己的变量命名规则和约定。 这是您需要了解的内容:
Java 中的变量区分大小写。
变量的名称是 Unicode 字母和数字的序列。 它可以以字母
$或_开头。 但是,习惯上以字母开头的变量名。 同样,变量名称不能在 Java 中使用空格。
变量命名约定创建变量时,请选择一个有意义的名称。 例如,
score,number,level比诸如s,n等变量名更有意义。 和1。如果选择一字变量名称,请使用所有小写字母。 例如,最好使用
speed而不是SPEED或sPEED。如果选择具有多个单词的变量名,请为第一个单词使用所有小写字母,并大写每个后续单词的第一个字母。 例如,
speedLimit。
Java 编程语言中有 4 种类型的变量:
- 实例变量(非静态字段)
- 类变量(静态字段)
- 局部变量
- 参数
您将在后面的章节中学习。 如果您有兴趣现在了解更多信息,请访问 Java Variable Types 。
Java 原始数据类型
如上所述,Java 是一种静态类型的语言。 这意味着必须先声明所有变量,然后才能使用它们。
int speed;
在此,speed是变量,并且变量的数据类型是int。int数据类型确定speed变量只能包含整数。
简单来说,变量的数据类型决定了变量可以存储的值。 Java 编程语言中预定义了 8 种数据类型,称为原始数据类型。
除了原始数据类型外,Java 中还引用了数据类型(您将在后面的章节中了解到)。
8 种原始数据类型
boolean
boolean数据类型具有两个可能的值,即true或false。- 默认值:
false。 - 它们通常用于对/错条件。 例如,
class BooleanExample {public static void main(String[] args) {boolean flag = true;System.out.println(flag);}}
输出:
true
byte
byte数据类型的值可以从 -128 到 127(8 位带符号二进制补码整数)。- 如果可以确定变量的值在
[-128, 127]之内,则可以用它代替int或其他整数数据类型来节省内存。 - 默认值:0
- 示例:
class ByteExample {public static void main(String[] args) {byte range;range = 124;System.out.println(range);}}
输出:
124
short
short数据类型的值可以从 -32768 到 32767(16 位带符号二进制补码整数)。- 如果可以确定变量的值在
[-32768, 32767]之内,那么它将用于代替其他整数数据类型以节省内存。 - 默认值:0
- 示例:
class ShortExample {public static void main(String[] args) {short temperature;temperature = -200;System.out.println(temperature);}}
运行该程序时,输出为:
-200
int
int数据类型的值可以从-2 ^ 31到2 ^ 3 -1(32 位带符号二进制补码整数)。- 如果您使用的是 Java 8 或更高版本,则可以使用无符号 32 位整数,最小值为 0,最大值为
2 ^ 32 -1。 如果您想了解更多有关它的信息,请访问:如何在 Java 8 中使用无符号整数? - 默认值:0
- 示例:
class IntExample {public static void main(String[] args) {int range = -4250000;System.out.println(range);}}
输出:
-4250000
long
long数据类型的值可以从-2 ^ 63到2 ^ 63 -1(64 位带符号二进制补码整数)。- 如果您使用的是 Java 8 或更高版本,则可以使用无符号的 64 位整数,其最小值为 0,最大值为
2 ^ 64 -1。 - 默认值:0
- 示例:
class LongExample {public static void main(String[] args) {long range = -42332200000L;System.out.println(range);}}
输出:
-42332200000
注意,在-42332200000末尾使用L。 这表示它是long类型的整数。 您将在本文稍后了解整数。
double
double数据类型是双精度 64 位浮点。- 切勿将其用于诸如货币之类的精确值。
- 默认值:0.0(
0.0d) - 示例:
class DoubleExample {public static void main(String[] args) {double number = -42.3;System.out.println(number);}}
输出:
-42.3
float
float数据类型是单精度 32 位浮点。 如果您有兴趣,请详细了解单精度和双精度浮点。- 切勿将其用于诸如货币之类的精确值。
- 默认值:0.0(
0.0f) - 示例:
class FloatExample {public static void main(String[] args) {float number = -42.3f;System.out.println(number);}}
输出:
-42.3
请注意,在上述程序中,我们使用-42.3f代替-42.3。 这是因为-42.3是double字面值。 要告诉编译器将-42.3视为float而不是double,您需要使用f或F。
char
- 这是一个 16 位 Unicode 字符。
char数据类型的最小值为'\u0000'(0)。char数据类型的最大值为'\uffff'。- 默认值:
'\u0000' - 示例:
class CharExample {public static void main(String[] args) {char letter = '\u0051';System.out.println(letter);}}
输出:
Q
因为Q的 Unicode 值为'\u0051',所以您得到输出Q。
这是另一个示例:
class CharExample {public static void main(String[] args) {char letter1 = '9';System.out.println(letter1);char letter2 = 65;System.out.println(letter2);}}
输出:
9A
当您打印letter1时,会得到9,因为letter1被分配了字符'9'.
当您打印letter2时,会得到A,因为'A'的 ASCII 值为 65。这是因为 Java 编译器将字符视为整数类型。 要了解有关 ASCII 的更多信息,请访问什么是 ASCII 代码? 。
String
Java 还通过java.lang.String类提供了对字符串的支持。 您可以在 Java 中创建String对象的方法如下:
myString = "Programming is awesome";
Java String是一个重要的主题,您将在后面的章节中详细学习。 但是,如果您不是编程的新手,现在想学习它,请访问 Java String 。
Java 字面值
为了理解字面值,让我们举个例子来给变量赋值。
boolean flag = false;
这里,
boolean- 是一种数据类型。flag- 是变量。false- 是字面值。
字面值是固定值的源代码表示。
直接在程序中出现而无需计算的值1.5,4,true和'\u0050'是字面值。
在上面的示例中,flag是变量。 由于它是boolean类型的变量,因此可以存储false或true。 为了使编译器理解它,需要进行计算。 但是,诸如-5,'a'和true之类的字面值表示固定值。
整数字面量
整数字面值用于初始化整数数据类型
byte,short,int和long的变量。如果整数字面值以
l或L结尾,则其类型为long。 提示:最好使用L代替l。// Error! literal 42332200000 of type int is out of rangeint myVariable1 = 42332200000;// 42332200000L is of type long, and it's not out of rangelong myVariable2 = 42332200000L;
整数字面值可以用十进制,十六进制和二进制数字系统表示。
以前缀
0x开头的数字表示十六进制。 同样,以前缀0b开头的数字表示二进制。// decimalint decNumber = 34;// 0x represents hexadecimalint hexNumber = 0x2F;// 0b represents binaryint binNumber = 0b10010;
浮点字面值
- 浮点字面值用于初始化数据类型
float和double的变量。 - 如果浮点字面值以
f或F结尾,则其类型为float。 否则,它的类型为double。 双重类型可以选择以D或d结尾。 但是,这不是必需的。 - 它们也可以使用
E或e以科学计数法表示。
class DoubleExample {public static void main(String[] args) {double myDouble = 3.4;float myFloat = 3.4F;// 3.445*10^2double myDoubleScientific = 3.445e2;System.out.println(myDouble);System.out.println(myFloat);System.out.println(myDoubleScientific);}}
输出:
3.43.4344.5
字符和字符串字面值
- 它们包含 Unicode(UTF-16)字符。
- 对于
char字面值,使用单引号。 例如'a','\u0111'等。 - 对于
String字面值,使用双引号。 例如"programming","Java 8" - Java 还支持一些特殊的转义序列。 例如,
\b(空格),\t(标签),\n(换行),\f(换页),\r(回车),\"(双引号),[\'(单引号)和\\(反斜杠)。
class DoubleExample {public static void main(String[] args) {char myChar = 'g';char newLine = '\n';String myString = "Java 8";System.out.println(myChar);System.out.println(newLine);System.out.println(myString);}}
输出:
gJava 8
