java中如何定义基元数据类型的变量


我们将看到哪些是原始数据类型,如何定义变量,哪些是变量默认值,以及我们可以给这些变量起什么名字。

在Java中有两种类型的变量:

  1. 基元数据类型(原始的)

  2. 对象或引用

在本教程中,我们主要关注基元数据类型的变量。 对象(引用类型变量)将在关于类的教程中进行描述。

基元类型是不能分解为其他子类型的基本数据类型。

Java基元数据类型(primitive data types)

在Java6中有8种基元数据类型:

数据类型 大小 符号值范围 类别
byte 1 字节 -128 –> 127 整数
short 2 字节 -32768 –> 32767 整数
int 4 字节 -2147483648 –> 2147483647 整数
long 8 字节 -9,223,372,036,854,775,808 –> 9,223,372,036,854,775,807 整数
float 4 字节 7位有效数字 浮点数
double 8 字节 15位有效数字 双精度数
char 2 字节 ’\u0000’ –> ’\uffff’
0 –> 65535
16位 Unicode 字符
boolean 1 位 true or false 逻辑值

定义变量

在Java中,变量是使用以下语法定义的:

1
variable_type variable_name;

其中 :
variable_type–八个基元数据类型或类class定义的类型之一;
variable_name–程序员定义的变量名;

如何在Java中定义变量:

  1. 变量名必须以字母、下划线符号(_)或美元符号($)开头;

  2. 变量名不能以数字开头;

  3. 在第一个字符之后,可以在变量名中使用数字;

  4. 变量名不能是Java语言保留的关键字;

  5. 可以同时定义多个变量;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class Variables {
public static void main()
{
// 正确定义的变量
int vb1,vb2;
float fvb2;
double _temp;
boolean $flag;
//错误定义的变量 将会报编译错误
byte 3vb; // 以数字开头
long for; // 使用了java关键字
}
}

变量名由程序员选择,但为了提高效率,在Java中有一个关于变量名的建议;

  1. 这个约定是从变量名派生出来的,就是说变量名要有意义,
  2. 如果它们由几个单词组成,第一个单词用小写字母拼写;从第二个单词开始,每个单词的第一个字母都大写;
  3. 另外,作为建议,布尔变量应该以is开头(例如boolean isNumber;)

如何在Java中初始化变量

在初始化变量时,应该考虑变量的类型,因为在Java中,不可能分配与变量类型不同的值。
从这个观点来看,Java是强类型语言(而Visual Basic不是)。

例如,以下语句将报编译错误,因为可能会导致精度损失:

1
2
3
4
5
float vb2 = 23.5; //编译错误 - 可能导致精度丢失
int vb3 = 45.6; //编译错误 - 可能导致精度丢失
boolean test = 23; //编译错误 - 不兼容的类型

在定义float类型变量 vb2时,由于默认情况下 浮点数常量值被视为 double,所以会生成编译器错误。
正确的方法是在值的末尾加上一个 f,即 float vb2 = 23.5f;

  • 值的类型必须与变量类型相同;

  • 可以同时初始化多个变量;

  • 在Java中,布尔变量的唯一可能值是true或false(在C或C++中,除0以外的任何数值都被视为true);

  • 浮点常量值最后用符号 f定义,因为,隐式地,浮点数常量被认为是双精度的;

  • 字符符号定义在“'”之间(单引号),而不是“"”之间(引号);

  • 实数值可以用科学的格式定义,例如1.234e2等于123.4;

  • 基数8中的整数值以0为前缀,例如021等于十进制的17;

  • 以16为基数(十六进制表示)的整数值以x为前缀,例如0×11等于十进制的17;

  • char变量可以有一系列特殊字符作为值,转义序列:

转义序列
\b 退格符
\t 制表符
\n 换行
\f 换页符
\r 回车
\" 双引号
\' 单引号
\\ 反斜杠

使用基元数据类型正确初始化的变量示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
int value1;
int value2;
value1 = value2 = 17;
int valueB8 = 021;
int valueB16 = 0x11;
float value3 = 123.4f;
double value4 = 123.4;
char c = 'a';
char enter = '\r';
boolean isNumber = true;
long value5 = 17L;
``` 
#### Java中变量的默认值是什么
如果变量没有初始化,那么编译器可以用默认值初始化它们( **但是,并非在所有情况下都是这样!)!** )
基元数据类型 | 默认值
--------|-------
byte | 0
short | 0
int | 0
long | 0L
float | 0.0f
double | 0.0d
char | '\u0000'
boolean | false
**重要!**局部变量(在方法中定义)不是由编译器用默认值初始化的。
上表中的默认值用于对象(类中定义的变量)的属性、字段。
使用未初始化的局部变量将生成编译器错误:
``` plain
public static void main(){
int sum; // 在main方法中声明的局部变量
sum = sum + 10; //编译错误
}


原文链接:https://codingdict.com/