Java 的标识符可以包含数字、英文字幕、下划线及美元符号,传说标识符还可以是中文之类的宽字符。但是标识符不能以数字开始。Java 的标识符没有长度限制,并且区分大小写。

通常情况下,Java 标识符的命名是匈牙利命名法,与微软通常的风格不同的是,Java 程序员似乎不会把与数据类型有关的东西写在标识符上,比如 Java 中不会出现类似 lpszCmdLine 之类的标识符,当然这只是一个习惯问题。在 Java 中,对于函数,通常采用典型的匈牙利命名法;但是对于变量等,通常是将第一个单词小写,若有第二个单词,才会从第二个单词开始采用驼峰法。不过有时也有例外情况,Java 的常量也有可能被写成像 C 的宏的样子。

Java 程序通常采用 4 格缩进,是否将 Tab 替换为空格倒无所谓。Java 的开大括号一般不会独自占用一行,而闭大括号会独自占一行,并且与对应的开大括号所在行的行首对齐。

比如以下就是一个例子:

1
2
3
4
5
6
7
public class DataTypeApp {
    protected int theValue;
    protected final int DEFAULT_VALUE = 1;
    public function GetValue() {
        return theValue;
    }
}

最后,Java 的标识符不能取用保留字。网上对 Java 保留字的描述比较混乱,在这里我本着宁可信其有不可信其无的态度,就取一个并集吧:

  • 数据类型:boolean, int, long, short, byte, float, double, char, class, interface
  • 流程控制:if, else, do, while, for, switch, case, default, break, continue, return, try, catch, finally
  • 修饰符:public, protected, private, final, void, static, strictfp, abstract, transient, synchronized, volatile, native
  • 动作:package, import, throw, throws, extends, implements, this, super, instanceof, new
  • 保留字:true, false, null, goto, const

不过我们需要注意到,const 和 goto 在目前的 Java 里没有被使用,但一样不能作为标识符的名称。


Java 的数据类型分两类,一类是基本数据类型,一类是引用数据类型。我们可以列一个这样的表:

  • 数据类型
    • 基本数据类型
      • 数值型
        • 整数类型:byte(1), short(2), int(4), long(8)
        • 浮点类型:float(4), double(8)
      • 字符型:char
      • 布尔型:boolean
    • 引用数据类型
      • 类:class
      • 接口:interface
      • 数组:[]

括号内数字是数据类型所占字节数,目前没有发现 Java 允许无符号整数,就是说以上例举的都是有符号的整数。目前我还不知道整数数据所占字节数与 Java 虚拟机是 32 位还是 64 位是否有关联。默认的字面常量类型,整数为 int, 浮点为 double, 与 C 是类似的;如果需要其它类型的字面常量,方法与 C 一样:

1
2
3
4
int i = 600;
long j = 18446744073709551615l;
double a = 3.1415926535897932;
float b = 3.14159265f;

Java 的 char 都是 Unicode 的,所以可以是中文字符,不像 C++ 需要 wchar_t . 并且 Java 的 char 支持转义符:

1
2
3
4
char c1 = 'a';
char c2 = '中';
char c3 = '\u007f'; // 16 进制转义
char c4 = '\n';

原创文章,转载请注明来源:http://euyuil.com/2116/note-about-java-identifier-data-type/