这个系列主要是介绍Java的基础知识,以及一些值得注意的点。
- Java 是大小写敏感的。
- 对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass。
- 所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
- 单行注释为//,多行注释为/**/。
- 在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
- 成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
- 类变量也声明在类中,方法体之外,但必须声明为 static 类型。
- 构造方法的名称必须与类同名,一个类可以有多个构造方法。
- 一个源文件中只能有一个 public 类。
- 一个源文件可以有多个非 public 类。
- 源文件的名称应该和 public 类的类名保持一致。例如:源文件中 public 类的类名是 Employee,那么源文件应该命名为Employee.java。
- 如果源文件包含 import 语句,那么应该放在 package 语句和类定义之间。如果没有 package 语句,那么 import 语句应该在源文件中最前面。
- byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一。
- 内置数据类型Long,"L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。
-
数据类型 位数 大小值 默认值 byte 8 (-2^7)(2^7-1) 0 short 16 (-2^15)(2^15-1) 0 int 32 (-2^31)(2^31-1) 0 long 64 (-2^63)(2^63-1) 0 float 32 单精度 0.0 double 64 双精度 0.0 boolean true or false false char 16 -
常量在程序运行时是不能被修改的。使用final关键字修饰常量。通常使用大写字母表示常量。
-
byte/short/int/long都可以使用十进制、16进制和8进制的方式表示,前缀0表示8进制、0x表示16进制。
-
整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。转换从低级到高级,byte/short/char->int->long->float->double。在把容量大的类型转换为容量小的类型时,必须使用强制类型转换{(type)value type是要强制类型转换后的数据类型},在转换过程中可能会导致溢出或损失精度。
-
浮点数到整数的转换是通过舍弃小数得到的,而不是四舍五入。
-
整数的默认类型是int、小数默认是double类型,在定义float类型时必须在数字后面加上F或f。
-
私有访问修饰符是最严格的访问级别,所以被声明为 private 的方法、变量和构造方法只能被所属类访问,并且类和接口不能声明为 private。声明为私有访问类型的变量只能通过类中公共的 getter 方法被外部类访问。
-
在做无符号类型的左右移时,空位补0;在做有符号位的正数左右移时,空位补0;在做有符号位的负数移位运算时,左移补0,右移补1.
-
break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。
-
continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。在 for 循环中,continue 语句使程序立即跳转到更新语句。在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。
-
如果 case 语句块中没有 break 语句时,JVM 并不会顺序输出每一个 case 对应的返回值,而是继续匹配,匹配不成功则返回默认 case。匹配成功后,从当前 case 开始,后续所有 case 的值都会输出。如果后续的 case 语句块有 break 语句则会跳出判断。