java企业级开发规范_“华为云企业级Java编程规范”学习笔记
一、“Java基础语句”编程规范
Switch 语句要有defualt分支,除非Swich的条件变量是枚举类型;
多条件分支语句最后应包含一个else分支;
二、“类的使用”编程规范
1. 使用类名调用静态方法(而不是使用实例来调用);
原因分析:使用实例调用静态方法时,调用的静态方法是声明类型的静态方法,与实例实际的类型无关。当父类和子类有同名静态方法时,声明父类变量引用子类实例,调用该静态方法时调用的是父类的静态方法,而非子类的静态方法。
父类与子类有同名非静态方法:重写
父类与子类有同名静态方法:隐藏
2. 避免在无关的概念和无关的变量之间重用名字;
重写(Override)存在于子类与父类间;
重载(Overload)存在于类内部;
3. 子类重写父类方法的时候应该加上@Override注解;
对于重写来说,子类的方法必须与父类保持下面三种相同:
返回值类型;方法名;参数列表(类型与个数)。
加入@Override注解后,可以创建文档,跟踪代码中的依赖性,甚至执行基本编译时的检查,出现错误时编译器会发出错误警告。
4. 将对象存入HashSet, 或作为key存入HashMap(或HashTable)后,必须确保该对象的hashcode不变,避免因为hashcode值变化导致不能从集合内删除该对象;
导致内存浪费与泄漏,不要修改与计算hashcode有关的字段。
5. 向下类型转换前用instanceof进行判断;
向上类型转换(自动类型转换),是从小类型到大类型的转换;
向下类型转换(强制类型转换),是从大类型到小类型的转换。
若没有判断直接进行类型转换,可能会因类型不匹配而导致运行期异常java.lang.ClassCastException.在强制转换之前使用instanceof进行判断,确认转换操作可行。
三、“异常处理”编程规范
1. 在异常条件下,保证释放已持有的锁;
Reentrantlock(重入锁),可重入的互斥锁,是一种递归无阻塞的同步机制,比synchronized更强大,更灵活,可以减少死锁发生的概率。Reentrantlock类能够实现线程之间同步互斥,具有完全互斥排他的效果,即同一时间只有一个线程在执行Reentrantlock.lock()后面的任务。
一个线程没有正确释放持有的锁会使其他线程无法获取该锁对象,导致阻塞。在发生异常时,要确保程序正确释放当前持有的锁。
2. 防止通过异常泄露敏感信息;
3. finally块;
在finally块中不要使用return、break或continue使finally块非正常结束。
本文地址:https://blog.csdn.net/weixin_39764569/article/details/110792190
希望与广大网友互动??
点此进行留言吧!
java企业级开发规范_“华为云企业级Java编程规范”学习笔记相关推荐
- java后端开发工程师_后端工程师与 Java 工程师的区别?
本人多年 java 狗一枚,最近在准备面试跳槽,在翻看了 boss 直聘上很多招聘信息后发现很多感兴趣的岗位都是标注后端工程师的,一般 jd 都是标注 c++/java/goland 会一个就可以了, ...
- 华为云学院-人人学loT学习笔记及扩展- 第二章 物联网平台OceanConnect
课程大纲 2.1解锁物联网平台,与OceanConnect相识 一,物联网发展挑战 1,新业务上线周期长 只能接入自己的平台 产品开发周期长 应用碎片化严重 产品上市慢 2,标准不统一,集成困难 终端 ...
- java流链概念_《精通并发与Netty》学习笔记(09 - Java中流的概念)
Java中流的概念 java程序通过流来完成输入/输出.流是生产或消费信息的抽象.流通过java的输入/输出与物理设备链接.尽管与它们链接的物理设备不尽相同,所有流的行为具有同样的方式.这样,相同的输 ...
- 华为云企业级Redis评测第二期:大Key操作的影响
点击蓝字 关注我们 在前一篇文章<华为云企业级Redis评测第一期:稳定性与扩容表现> 中,我们使用多线程压测工具memtier_benchmark对华为GaussDB(for Redis ...
- 华为云企业级Redis:集群搭载多DB,多租隔离更降本
本文分享自华为云社区<华为云企业级Redis揭秘第17期:集群搭载多DB,多租隔离更降本>,作者:GaussDB 数据库 . 背景:GaussDB(for Redis)是华为云数据库团队推 ...
- 华为云企业级Redis:助力VMALL打造先进特征平台
摘要:当电商平台对AI算法模型的需求越来越多,特征数据平台的统一建设是不少开发团队头疼的事情.因为只有通过统一的特征数据存储,才能改变原有的"数据孤岛",解决生产重复造轮子的窘境. ...
- 华为云企业级Redis讲解第16期:超越开源Redis的ACID“真“事务
摘要: 开源Redis只支持伪事务,应用场景受限.高斯Redis发布企业级事务特性,支持完备ACID,为交易.库存等上层业务带来全新可能. 本文分享自华为云社区<华为云企业级Redis揭秘第16 ...
- 基于DevCloud进行黑白棋实时对战游戏开发实践【华为云至简致远】
[摘要] 本次实践让我体验到了全程在云上创建弹性云服务器ECS,配置云服务器环境,在DevCloud平台上一站式进行项目管理.代码托管.代码检查.流水线.编译.构建.部署.测试.发布的流程.基本做到了 ...
- 华为云桌面客户端_华为云CloudIDE的前世今生
在华为开发者大会HDC.Cloud上,华为云发布了基于鲲鹏计算的开发者服务 - CloudIDE服务,为鲲鹏开发者提供了很好的云端开发体验.(延伸阅读:华为云CloudIDE,云时代的精创利器) 体验 ...
- 使用华为云跑自己的深度学习模型教程
使用华为云跑自己的深度学习模型教程 文章目录 使用华为云跑自己的深度学习模型教程 前言 一.创建访问密钥? 二.创建数据集OBS桶 (一)什么是OBS桶 (二)创建OBS桶 三.上传数据到OBS桶 ( ...
最新文章
- OpenCV 4.5.2 发布
- Cookie中不能有空格_PHP 使用cookie
- js二维数组_Javascript数组
- 【渝粤题库】陕西师范大学210029 幼儿园游戏(学前儿童游戏)作业
- matplotlib 绘制梯度下降求解过程
- 蚂蚁“备战”TPC-C这1年
- 一文看清深圳云栖阿里云重磅产品发布
- linux kvm服务,Linux-让Kvm虚拟机开放服务端口!
- Python文本处理2个小案例(文本嗅探与关键词占比统计)
- css如何设置固定位置,用css固定位置的方法
- Android系统的开机画面显示过程分析(2)
- phpstudy安装配置教程
- 解决Tomcat运行内存不足问题
- 2022年Github学生包白嫖!
- 为什么字节跳动的年薪50万的软件测试工程师遍地都是?
- linux sudoers文件损坏修复
- 2021赤峰二中高考成绩查询,2021年赤峰高考状元名单公布,赤峰高考状元学校资料及最高分...
- 艾莫基IMG老板李洪波欠销售提成不给,反而颠倒黑白,抹黑对方
- python模型预测结果 取整_sklearn 文本分类器做预测时,如何拿到预测结果。。。...
- AE基础教程(6)——第6章 显示通道,分辨率解析