且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《Java和Android开发学习指南(第2版)》——第2章,第2.4节变量

更新时间:2022-04-15 13:43:37

本节书摘来自异步社区《Java和Android开发学习指南(第2版)》一书中的第2章,第2.4节变量,作者 【加】Budi Kurniawan,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.4 变量
变量是数据占位符。Java是一种强类型的语言,因此,每个变量必须有一个声明的类型。Java中有两种数据类型:

引用类型一个引用类型的变量,提供对一个对象的引用。
基本类型一个基本类型的变量,保存一个基本类型。

Java如何存储整数值
你一定听说过计算机使用二进制数字,即只包含0和1的数字。本节对此提供了一个概要,当你学习操作符的时候可能用的上。

一个字节占8个位,这表示要分配8个位来存储一个字节。最左边的位是一个符号位。0表示正值,1表示负值。0000 0000是0的字节表示,0000 0001表示1,0000 00010表示2,0000 0011表示3,并且0111 1111表示127,127是byte所能保存的最大的正值。

那么,如何得到一个负数的二进制表示呢?很简单。先获取其对应的正数的二进制表示,然后将所有的位都取反,并且加上1。例如,要得到−3的二进制表示,首先从3开始,它是0000 0011。将所有的位都取反,得到

1111 1100

加1以后,得到

1111 1101

这就是−3的二进制表示。

对于int类型,规则是相同的。例如,最左边的是符号位。唯一的区别是,一个int类型占32位。要表示一个int类型中的−1的二进制形式,我们从1开始,它是

0000 0000 0000 0000 0000 0000 0000 0001

将所有的位都取反后,得到:

1111 1111 1111 1111 1111 1111 1111 1110

加1以后,得到了想要的数字(−1)。

1111 1111 1111 1111 1111 1111 1111 1111

除了数据类型,Java变量还有名称和标识符。在选择标识符的时候,有如下几条规则:

1.标识符是Java字母和数字的一个长度没有限制的序列。标识符必须以一个Java字母开头。

2.标识符必须不是Java关键字(表2.3中给出),不能是一个布尔字面值,也不能是空字面值。

3.标识符必须在其作用域内是唯一的。第4章将会介绍作用域。


《Java和Android开发学习指南(第2版)》——第2章,第2.4节变量

Java字母和Java数字
Java字母包括大写的和小写的ASCII Latin字母A到Z(u0041-u005a,注意,u表示一个Unicode字符)和a到z(u0061-u007a),由于历史的原因,还包括ASCII下划线(_或u005f)和美元符号($或u0024)。$字符只能在机器生成的源代码中使用,极少数情况下,用来访问遗留系统中已经存在的名称。

Java数字包括ASCII数字0~9(u0030-u0039)。

以下是一些合法的标识符:

salary 
x2 
_x3 
row_count
以下是一些不合法的标识符:

2x 
java+variable

2x不合法,是因为它以数字开头;java+variable不合法,是因为它包含加号。

还要注意,标识符的名称是区分大小写的。x2和X2是两个不同的标识符。

你可以这样声明一个变量:先写类型,后面跟着名称加上一个分号。如下是变量声明的几个例子:

byte x; 
int rowCount; 
char c;

在上面的例子中,我们声明了3个变量:

byte类型的变量x。
int类型的变量rowCount。
char类型的变量c。
x、rowCount和c是变量名或标识符。

还可以在同一行声明具有相同类型的多个变量,两个变量之间用逗号隔开。例如:

int a, b;

这等同于:

int a; 
int b;

然而,在同一行声明多个变量的做法,我们不推荐,因为这降低了程序的可读性。

最后,可以在声明一个变量的同时给变量赋一个值:

byte x = 12; 
int rowCount = 1000; 
char c = 'x';

变量的命名惯例
变量名应该简短而有含义。它们应该是混合大小写的且以小写字母开头。后续的单词都以一个大写的字母开头。变量名不应该使用下划线_或美元符号$开头。例如,如下是与Sun的编码惯例一致的几个变量名的例子:userName、count和firstTimeLogin。