关于Java的常识和编程规范
一些小常识
-
只要开头大写的全是类
-
类名后加空格,然后加左大括号,换行再右大括号,右大括号始终要与左大括号前面得第一个字母对齐
-
只要看见左大括号,换行就空4个空格
-
javac编译报错,都是语法错误,找第一个错误,绝大多数情况,小箭头指向谁就是谁的错误
-
变量随时用随时声明,不要提前声明
-
声明多个变量时,不推荐用一句代码声明,提高代码的可读性
-
判断是否一个变量和常量相等时,把常量写在前面(少写=会报错.防止跟赋值混淆错误),判断一个表达式和一个变量是否相等时把表达式放在双等号左边,因为表达式的结果是一个常量
-
无限循环和break搭配使用,在if条件中有了break就不用else了,因为break结束循环就不会执行下面的代码了
-
双方切换推荐用一个boolean类型的flag变量作为标志位,用
flag = !flag;
取反运算切换 -
print不换行,println换行,
System.out.println();
专门用于换行 -
数组长度已知时,循环遍历也用arr.length,不直接用长度,提高代码的可维护性
-
当类名由多个单词组成时,要求每个单词的首字母都要大写
-
当成员变量名由多个单词组成时,要求从第二个单词起每个单词首字母大写
-
本着封装的精神,通常将成员变量设为私有。但是,我们仍然需要访问这些值,这可以通过添加公共方法来间接完成
-
成员方法名称应为小写的动词或以小写的动词开头的多词名称,后跟形容词,名词等。在多词名称中,第二个单词及其后每个单词的第一个字母应该大写。
-
区分方法时,编译器不会考虑返回类型,因此即使两个方法具有不同的返回类型,也无法声明同名的两个方法。
-
参数名称在其范围内必须是唯一的。它不能与相同方法或构造函数的另一个参数的名称相同,也不能与方法或构造函数中的局部变量的名称相同。
-
成员变量和成员方法中的形参相同时,如需在成员方法中访问成员变量,要用this关键字(推荐形参和成员变量一样)
-
当类中有非常量成员变量时,建议提供一个无参构造,一个有参构造(有几个成员变量就有几个参数)
-
类中代码顺序无所谓,建议:成员变量->构造方法->成员方法->main方法
-
如果没有特殊需求,所有的成员方法前面都用public修饰,成员变量前都用private关键字修饰
-
Java类中斜体显示的都是由static定义的静态的
-
一般类名就是各个单词的组合首字母大写,对象名就是类名首字母小写
-
abstract关键字和final关键字不能共同修饰方法,因为final关键字修饰的方法不能被重写,abstract关键字类重写才有意义
-
abstract关键字和static关键字不能共同修饰方法,因为抽象类不能new对象不能调用,static关键字修饰一个方法表示把这个方法提升为类层级, 类层级类名.就可以new对象调用方法了
-
private关键字和final关键字不能共同修饰方法,因为私有化方法不能被继承,不能被继承就不能被重写,而abstract关键字类重写才有意义
-
Ctrl+shift+T
搜索要查看源码的类型名称,Ctrl+O
搜索查看源码的方法名称 -
判断一个字符串是否和一个变量一致时,最好把字符串放在前面,因为变量值可以改变,一旦为空就会出现”空指针异常”
-
new对象这样的代码方法循环外面,提高性能
-
黄色波浪线还有一横线:代表这个方法已经过时了
-
当一个类中没有我们要找的方法时就去它的父类找
-
没有声明,直接用的变量肯定是成员变量
-
只要是
sub
开头的一般都是什么什么子
-
抛异常抛到main方法就不抛了,就地解决
-
字符串判断相等最好用==: (Scanner输入进的字符串不能这么判断) 解释:==不仅仅比较值还比较内存地址
-
List 集合就是python中的列表list
-
Map 集合就是python中的字典dict
-
Set 集合就是python中的集合set
-
后打开的文件一般先关闭,先打开的一般后关闭
-
拷贝文件:准备一个适当(1024的整数倍就行,通常
1024*8
)的缓冲区,每次将缓冲区读满就写入到输出流中 -
在以后的开发中尽量少使用同步代码块的嵌套结构
-
多文件之间传东西,用构造 方法去传
一些需要注意的问题
-
基本数据类型判断是否相等用
==
,引用数据类型用equals
-
在Java中,1除以任何大于1的整数都是0,所以要用1.0除
-
类写完不能直接运行,需要main方法才能运行
-
成员方法中允许直接访问成员变量
-
尽量少用方法重载,否则代码可读性会大大降低
-
单引号不能定义多个字符串
-
数组不能嵌套
-
数组中的类型要一样,提前定义好
-
数组不能直接增加
-
函数的返回值类型要提前声明好
-
类不能进行多继承
-
接口可以多实现,来补充了类的多继承