首页 > 编程 > Java > 正文

JAVA基础知识--代码注意事项

2019-11-11 03:17:18
字体:
来源:转载
供稿:网友

一般规范

大小写敏感,驼峰,英文单词类名首字母大写,方法名,变量名首字母小写,数字不能放首位美元符($)、或者下划线(_)一般尽量少用静态常量名,枚举可用全部大写加(_)分割单词来写大括号末尾换号{}缩进使用4个空格(ide一般都可以配置,避免不同开发环境下缩进符带来麻烦)

关键字

访问控制修饰符

访问修饰符 同一个类 同包 不同包,子类 不同包,非子类
PRivate 1
默认 1 1
protected 1 1 1
public 1 1 1 1

需要注意的关键字

关键字 修饰范围 作用 场景
final 类,类变量,方法,参数变量 类:不可继承;变量:不可重新赋值;方法:不可覆写,防止数据变更;防止继承类,防止覆写方法,目的就是固化,避免改变后出现不可预知的问题,注意是不可重新赋值,比如map等还是可以修改内部的数据的 常量定义;防止改变
finally try后面 无论执行try或cache完之后执行(除非程序退出),注意finally里面有抛出异常或返回值的时候会覆盖try或cache代码块内的异常或返回值,异常优先于返回值,另外注意finally里面如果重新给try或cache返回的变量重新赋值是不会改变返回结果的,但如果修改返回变量内的值会影响返回结果(比如返回是个map,里面的数据变更) 关闭流,释放资源等
static 内部类,方法,变量,代码块 设置为全局可用,无需创建实例就可以访问(可以用访问控制限制访问权限,但实际上就是全局的),内存中只存在一份数据,另外是加载类的时候进行执行静态代码的初始化和执行(一般指的的是静态代码块,按顺序执行),注意会出现并发问题,内存问题. 公共常量,工具类,初始化
strictfp 类、接口,方法 保证浮点运算的结果使用统一的标准进行浮点运算(使忽略环境因素),提高程序的可移植性,但会降低一定的性能,注意不允许对接口中的方法以及构造函数声明strictfp关键字 系统会运行在不统一的环境下,并且对数字精确度有一定要求的情况下
synchronized 方法,代码块 用来做线程同步,一般情况下用this或class来做,但有区别,this用于锁单个对象,两个对象是不锁的,通常使用单例和this组合来用,class的情况一般是用于静态方法的情况下使用,细节单独说明 解决并发问题,比如懒加载初始化的并发问题
throw 代码 用于错误处理,首先避免随意抛出,其次如果使用尽量自定义Exception,并且覆写同步锁相关的代码,否则有一定的性能损耗 抛出关键自定义业务异常
transient 属性 序列化的时候忽略该属性 首先业务不需要序列化的可以加上,其次要考虑某些引用类型的序列化问题(流,文件等),最后还有比较大的数据类型(很长的一个字符串)
volatile 属性 标识每次使用它都到主存中进行读取,而不是各线程的缓存区,但只能保证取的从一个地方读取,无法保证原子性,依然有并发问题(一般还要和锁同时使用才行) 频繁多线程有读且有写的静态变量

上一篇:java常用api

下一篇:JavaPoet开源项目使用

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表