零学JAVA基础(二)—语法之标识符

JAVA中重要的标识符

1.1 关键字的使用

1.1.1 关键字的定义和特点:

定义:简单来说关键字就是被Java语言赋予了它特定的含义,用来做专门用途的字符串(单词)

特点:关键字中素有字母都是小写

1.1.2 关键字的类型:

Java关键字的基本类型(一)

Java关键字的基本类型(二)

1.2 保留字的使用

定义:保留字是因为现有的Java版本尚没有使用的,但是以后的版本可能会作为关键字使用的,自己命名标识符时需要去避免使用这些保留字,例如说goto、const

1.3 标识符的使用

标识符:Java中对各种变量、方法和类等要素命名时使用的字符序列称为标识符,也可以把它记成只要是你自己可以起名字的地方都叫标识符

涉及到的结构:类名、变量名、方法名、接口名、包名。。。

对于标识符的规则:(ps:必须要遵守,否则编译不通过)

  • 首先是由26个英文字母大小写、0-9,_或 $ 组成
  • 数字不可以开头
  • 不可以使用关键字和保留字,但能包含关键字和保留字
  • Java中严格区分大小写,长度无限制
  • 标识符不能包含空格

规范:(ps:可以不遵守,不影响编译和运行,但是要求大家遵守)

  • 包名:多单词组成时所有字母都小写:xxxyyyzzz
  • 类名、接口名:多单词组成时,所在单词的首字母大写:XxxYyyZzz
  • 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写;xxxYyyZzz
  • 常量名:所在字母都大写,多单词时每个单词用下划线连接:XXX_YYY_ZZZ

注意点: 在起名字时,为了提高阅读性,要尽量意义,“见名知意”。

java采用unicode字符集,因此标识符也可以使用汉字声明,但是不建议使用。

二、 代码命名简洁之道

2.1 简洁代码的规则要求

  1. 名副其实,见名知意( 变量名太随意,haha、list1、ok、theList 这些都没啥意义)
  2. 避免误导( 包含List、import、java等类名、关键字或特殊字;字母o与数字0,字母l与数字1等;提防使用不同之处较小的名称。比如:XYZControllerForEfficientHandlingOfStrings与XYZControllerForEfficientStorageOfStrings)
  3. 做有意义的区分(反面教材,变量名:a1、a2、a3;避免冗余,不要出现Variable、表字段中避免出现table、字符串避免出现nameString,直接name就行,知道是字符串类型;再比如:定义了两个类:Customer类和CustomerObject类,如何区分?定义了三个方法:getActiveAccount()、getActiveAccounts()、getActiveAccountInfo(),如何区分?)
  4. 使用读得出来的名称(不要使用自己拼凑出来的单词,比如:xsxm(学生姓名);genymdhms(生成日期,年、月、日、时、分、秒) 所谓的驼峰命名法,尽量使用完整的单词)
  5. 使用可搜索的名称(一些常量,最好不直接使用数字,而指定一个变量名,这个变量名可以便于搜索到。比如:找MAX_CLASSES_PER_STUDENT很容易,但想找数字7就麻烦了。)
  6. 避免使用编码(匈牙利语标记法,即变量名表明该变量数据类型的小写字母开始。例如,szCmdLine的前缀sz表示“以零结束的字符串”。
    成员前缀,避免使用前缀,但是Android中一个比较好的喜欢用m表示私有等,个人感觉比较好,接口和实现,作者不喜欢把接口使用I来开头,实现也希望只是在后面添加Imp)
  7. 避免思维映射( 比如传统上惯用单字母名称做循环计数器。所以就不要给一些非计数器的变量命名为:i、j、k等)
  8. 类名(类名与对象名应该是名词与名词短语。如Customer、WikiPage、Account和AddressParser。避免使用Data或Info这样的类名。
    不能使动词。比如:Manage、Process)
  9. 方法名( 方法名应当是动词或者动词短语。如postPayment、deletePage或save)
  10. 别扮可爱(有的变量名叫haha、banana,别用eatMyShorts()表示abort())
  11. 每个概念对应一个词( 项目中同时出现controllers与managers,为什么不统一使用其中一种?对于那些会用到你代码的程序员,一以贯之的命名法简直就是天降福音。)
  12. 别用双关语( 有时可能使用add并不合适,比例insert、append。add表示完整的新添加的含义。)
  13. 使用解决方案领域名称( 看代码的都是程序员,所以尽量用那些计算机科学术语、算法名、模式名、数学术语,依据问题所涉领域来命名不算是聪明的做法。)
  14. 使用源自所涉问题领域的名称( 如果不能用程序员熟悉的术语来给手头的工作命名,就采用从所涉问题领域而来的名称吧。至少,负责维护代码的程序员就能去请教领域专家了。)
  15. 添加有意义的语境( 可以把相关的变量放到一个类中,使用这个类来表明语境。)
  16. 不要添加没用的语境(名字中带有项目的缩写,这样完全没有必要。比如有一个名为“加油站豪华版”(Gas Station Deluxe)的项目,在其中给每个类添加GSD前缀就不是什么好策略。)
  17. 最后的话( 取好名字最难的地方在于需要良好的描述技巧和共有文化背景。)

了解:ASCII 码

在计算机内部,所有数据都使用二进制表示。每一个二进制位(bit)有 0 和 1 两种状态,因此 8 个二进制位就可以组合出 256 种状态,这被称为一个字节(byte)。一个字节一共可以用来表示 256 种不同的状态,每一个状态对应一个符号,就是 256 个符号,从 0000000 到 11111111。
ASCII码:上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码。ASCII码一共规定了128个字符的编码,比如空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。
缺点:
不能表示所有字符。
相同的编码表示的字符不一样:比如,130在法语编码中代表了é,在希伯来语编码中却代表了字母Gimel (ג)

三、Java语言的编码方式(了解)

3.1 了解: Unicode 编码

乱码:世界上存在着多种编码方式,同一个二进制数字可以被解释成不同的符号。因此,要想打开一个文本文件,就必须知道它的编码方式,否则用错误的编码方式解读,就会出现乱码。

Unicode:一种编码,将世界上所有的符号都纳入其中。每一个符号都给予一个独一无二的编码,使用 Unicode 没有乱码的问题。

Unicode 的缺点:Unicode 只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储:无法区别 Unicode 和 ASCII:计算机无法区分三个字节表示一个符号还是分别表示三个符号。另外,我们知道,英文字母只用一个字节表示就够了,如果unicode统一规定,每个符号用三个或四个字节表示,那么每个英文字母前都必然有二到三个字节是0,这对于存储空间来说是极大的浪费。

3.2 了解: UTF-8

UTF-8 是在互联网上使用最广的一种 Unicode 的实现方式。
UTF-8 是一种变长的编码方式。它可以使用 1-6 个字节表示一个符号,根据不同的符号而变化字节长度。
UTF-8的编码规则:
对于单字节的UTF-8编码,该字节的最高位为0,其余7位用来对字符进行编码(等同于ASCII码)。
对于多字节的UTF-8编码,如果编码包含 n 个字节,那么第一个字节的前 n 位为1,第一个字节的第 n+1 位为0,该字节的剩余各位用来对字符进行编码。在第一个字节之后的所有的字节,都是最高两位为"10",其余6位用来对字符进行编码。

你可能感兴趣的:(零学JAVA基础(二)—语法之标识符)