java变量为什么不能以数字开头

程序语言的分析分词法和语法两部分。词法分析主要用的是正规文法,也就是三型文法。这类文法主要采用正则表达式分析。正则文法分析器的特点是它是不回溯的,所以实现很简单。如果一个变量以数字开头,那么分析器就必须在遇到第一个或第二个英文字符的时候回溯来确定是否是数字、变量名还是词法错误,这时候就变成了二型文法。二型文法分析器的好处是支持回溯和递归语法(所以语法分析是靠它的),但是缺点是状态机相比正则文法状态大大增加,而且代码写起来更困难。考虑到词法分析部分只是用来断字,我们实在是没有为了支持变量名以数字开头这么一个小功能而让整个词法分析部分用二型文法写。
故,最后大家都认了变量要避免用数字开头。

java变量命名规则

环境变量通常是指在操作系统中,用来指定操作系统运行时需要的一些参数

变量名以字母、下划线或者美元符(4上面的¥)开头,不能以数字开头,后面跟字母、下划线、美元符、数字,变量名对大小写敏感,无长度限制

驼峰命名法:

1.变量名应该用有意义的英文单词

2.变量名如果只有一个单词,则所有的字母小写

3.变量名如果由多个英文单词组成,则从第二个单词开始首字母大写  

4.在java中bool值用boolean表示,只有true和false两种,不能用0和非0,或空和非空表示,如下图,这里的意思是第三行出错,不能把int型变量赋值给boolean型变量

5.java使用unicode字符码,意味着可以在java里面使用世界上的任意一种语言的字符集,用一个char类型变量可以存储一个汉字,即一个中文字符和英文字符所用的存储空间是一样的

6.乱码的出现:用a字符集将汉字转换为编码,但系统用b字符集将编码转换为汉字时,将出现找不到编码,出现乱码

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...