关于Java标识符的定义,需要注意以下几点:
- 所有的标识符都应该以字母(A-Z/a-z),美元符($)或者下划线(_)开始.
- 字符之后可以是字母(A-Z/a-z),美元符($),下划线(_)或数字的任何字符组合.
- 关键字不能用作标识符.
- 标识符是大小写敏感的.
- 关键字:
- const和go关键字虽然已经不在使用,但是他们还是被保留下来了。
- true,false,null 虽然被很多人误认为是关键字,但是实际上他们只是字面而已。
- 变量:
- 局部变量:没有特殊的关键字将变量标记为局部变量,这完全取决于声明变量的位置——它位于方法的两个大括号之间。
- 在方法执行时创建,当它们执行完成后,变量将会被销毁。
- 局部变量只对声明它们的方法可见,对于类的其他部分来说它们是不可见的。
- 局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。
- 类变量(静态域): 类变量是使用static关键字修饰的域。这告诉编译器无论这个类有多少个实例,这个变量只有一个副本。
- 成员变量(非静态域):从技术层面来说,对象将它们各自的状态存在“非静态域”中,也就是没有使用static关键字修饰的域。非静态域也被称为实例变量,因为对于类的每个实例(换句话说,就是每个对象)来说,它们的值都是独立的。
- 变量属于标识符,因此必须符合标识符的命名规范。
- 变量的命名必须是有意义的,做到名如其意。
- 变量名最好用英文名词,禁止使用拼音。
- 变量名需要用小驼峰命名法,首字母小写,后面的单词需首字母大写,来用区分相邻单词。如name, bookTitle等。
- 局部变量:没有特殊的关键字将变量标记为局部变量,这完全取决于声明变量的位置——它位于方法的两个大括号之间。
- 常量:
- 常量在定义的时候,就需要对常量进行初始化。
- 常量一旦初始化之后,就不能再次对其赋值。
- final关键字不仅可以用来修饰基本数据类型的常量,还可以用来修饰对象的引用或者方法。
- final关键字与static关键字同时使用。
- 常量名需要全部大写,相邻单词之间用下划线(_)隔开。如 final int PI = 3.1415927;等
- 函数/方法:
修饰符 返回值类型 方法名(参数类型 参数名) {
方法体
return 返回值;
}
- 修饰符:这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
- 返回值类型: 就是return之后的返回值的类型,有些方法可能没有返回值,用关键字void来表示。
- 方法名:就是方法的名字,必须符合一定的命名规范。
- 参数:由参数类型和参数名称组成。参数名是一个变量,用于接收调用方法时传入的数据。
- 方法体:被封装的独立代码块,是方法的核心部分,处理重要的业务逻辑。
- 方法名需要用小驼峰命名法。
- 建议方法体遵循单一职责原则,即每个方法就仅仅做一件事情,这样可以增加可读性和可维护性。
- 基本数据类型
For type byte, the default value is zero, that is, the value of (byte)0.
For type short, the default value is zero, that is, the value of (short)0.
For type int, the default value is zero, that is, 0.
For type long, the default value is zero, that is, 0L.
For type float, the default value is positive zero, that is, 0.0f.
For type double, the default value is positive zero, that is, 0.0d.
For type char, the default value is the null character, that is, '\u0000'.
For type boolean, the default value is false.[/quote]
以上摘自《Java Language Specification Second Edition》CHAPTER 4
In java, an int is 32 bits. A byte is 8 bits.
- 堆 是所有线程共享的内存区域,栈 是每个线程独享的;所以基本类型的实例变量在堆上创建,局部变量在栈上创建。
- 内置数据类型:
Java提供了八种基本类型,其中六种数字类型(四种整数型,两种浮点型),一个字符类型,一个布尔型。
类型名 | 类型意义 | 位数(bit) | 默认值 | 最大值 | 最小值 |
---|---|---|---|---|---|
byte | 字节型 | 8 | 0 | 127(2^7-1) | -128(-2^7) |
short | 短整型 | 16 | 0 | 32767(2^15-1) | -32768(2^15) |
int | 整型 | 32 | 0 | 2147483647(2^31-1) | -2147483648(2^31) |
long | 长整型 | 64 | 0 | 9223372036854775807(2^63-1) | -9223372036854775807(2^63) |
float | 单精度浮点型 | 32 | 0.0f | 无 | 无 |
double | 双精度浮点型 | 64 | 0.0d | 无 | 无 |
boolean | 布尔型 | 1 | false | true(1) | false(0) |
char | 字符型 | 16 | \u0000 | \uffff(65,53) | \u0000(0) |