Java编码规范--OOP规约
本文只整理个人觉得需要注意的地方,其他常识性的问题就暂时不整理了。
1.所有复写方法,必须加@Override注解。
说明:getObject()和get0bject()的问题,一个是大写字母O,一个是数字0,加上@Override可以准确的判断能否覆盖成功。另外,如果在抽象类中对方法签名进行修改,其实现类会马上编译报错。
这里的签名不是对接接口时候使用的加密算法生成的字符串,而是指的是方法名、入参、返回值这三项。
2.Object的equals方法容易抛空指针异常,应当使用常量或有确定值的对象来调用equals方法。
//正例
"test".equals(object);
//反例
object.equals("test");
说明:推荐使用JDK7引入的工具类 java.util.Objects#equals(Object a,Object b)方法进行比较。
3.所有整型包装类对象之间的比较,全部使用equals方法进行比较。
拓展:为啥呢??我们来看个例子。
int i= 1;int j = 1;System.out.println(i==j);int k = 128;int l = 128;System.out.println(k==l);Integer a = 1;Integer b = 1;System.out.println(a==b);Integer c = 128;Integer d = 128;System.out.println(c==d);System.out.println(Objects.equals(c,d));
思考一下,上述的打印结果会是什么?全是true吗?
.
.
.
.
.
.
.
.
.
.
.
公布答案:
为什么会是这样呢?
双等号“==”对于基本类型来说,都是比较的值,非基本类型都是比较的对象的地址,这里 int是基本类型,Integer是int的包装类,也就是非基本类型,比较的是地址。
第一个和第二个是true不必多说。
既然是比较的地址,为什么三个和第四个 就有差异?
这要涉及到Integer的源码。
Integer在加载的时候,有一个静态块,会初始化-128~127之间的int值到一个缓存数组中,当使用Integer定义这之间的值的时候,会直接返回数组中对应的值,地址相同,所以第三个比较为true;当用户定义超出这个范围的值的时候,会直接new Integer(对应的值),返回的是不同的地址,所以第四个比较为false。
静态块:
赋值方法:
好了 继续。
4.构造方法里面禁止加入任何业务逻辑,如果有需要初始化逻辑,请放在init方法里面。
Java编码规范--OOP规约相关推荐
- 阿里巴巴java编码规范——日志规约
目录 强制 推荐 强制 1.应用中不可直接使用日志系统(Log4j.Logback)中的API,而应依赖使用日志框架SLF4J中的API,使用门面模式的日志框架有利于维护并且使各个类的日志处理方式统一 ...
- Java 编码规范1(编程规约-命名风格)
编程规约-命名风格 其它相关文章 Java 编码规范1(编程规约-命名风格) Java 编码规范2(编程规约-常量定义) Java 编码规范3(编程规约-代码格式) Java 编码规范4(编程规约-O ...
- 公司让我编写一套自己的【Java 编码规范】作为员工季度考核标准?!参照Alibaba
目录 一.编码规范 (一)命名风格 (二)常量定义 (三)代码格式 (四)OOP规范 (五)集合处理 (六)并发处理 (七)控制语句 (八)注释规范 (九)其它 二.SVN操作规范 三.异常日志 (一 ...
- Java 编码规范15(工程结构)
工程结构 其它相关文章 Java 编码规范1(编程规约-命名风格) Java 编码规范2(编程规约-常量定义) Java 编码规范3(编程规约-代码格式) Java 编码规范4(编程规约-OOP规约) ...
- Java编码规范相关-开发手册-IDEA插件-P3C-sonarLint-代码格式化
编码规范 一.大厂的规范手册 1.阿里巴巴<Java开发手册(嵩山版)> 广为流传的手册,我基本每个开发机都会放一本,用来做参考,想起来就看一下,反思自己之前的瑕疵,完善和修正自己的编码习 ...
- java编码ppt_[2018年最新整理]Java编码规范.ppt
[2018年最新整理]Java编码规范 制定编码规范的最主要的目的是为了对产出代码的长期维护.通常负责 维护代码的人大多都不是开发者本人,如果有一个统一的代码格式以及 说明就可以减少混淆提高理解速度. ...
- 规定自己的Java编码规范
给自己规定了Java编码规范.编写Java代码严格依照自己规定的格式.欢迎大家指出问题. /* *COPYRIGHT */package com.triangle23.projectabbreviat ...
- Java编码规范,在您进行编码之前应该阅读的规范
为什么80%的码农都做不了架构师?>>> 本文转载于:http://www.web3d.com.cn/new/teach/java3d/2006/11/13/363276161 ...
- 阿里巴巴对Java编程【OOP规约】的规约
转载自 阿里巴巴对Java编程[OOP规约]的规约 OOP规约 1. [强制]避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名来访问即可. 2. [强制]所有的 ...
最新文章
- python 列表推导式
- Error: EACCES: permission denied, symlink
- Google AdSense 帐户已被停用
- win7+vs2015/13+caffe+matlab+python(CPU only)配置
- 单实例数据库和多实例数据库
- 静态注册fragment_Fragment的静态和动态添加方式以及Fragment和Activity之间的通信方式...
- weblogic进程自动关闭_手机总是清理内存?原来是6个设置没关,1秒关闭多用3年...
- Akka的类库和模块《six》译
- 这些mac软件可以提高办公效率
- linux 小度 驱动_糯米WiFi安装Linux驱动 (同时支持百度WiFi、小米WiFi、腾讯全民WiFi、360WiFi)...
- rpg人物制作软件_RPG Maker系列最新版本《RPG制作大师MZ》上架Steam
- deecamp考试题
- 汇编语言cf,of,sf,zf
- wireshark使用
- https证书申请流程和简介
- windows10 freeswitch soundtouch 变声
- 倍福--232/485通信
- Tcp/Udp端口对照表
- android编译错误记录
- 试题 算法提高 Monday-Saturday质因子
热门文章
- Android之实现侧滑菜单(左侧)
- “网红”液冷数据中心是如何实现的?
- java计算机毕业设计考研经网站系统MyBatis+系统+LW文档+源码+调试部署
- Python 异常处理 try-except,else,finally, with 语句的区别
- 电源控制测试老化系统-国产电源测试仪器-电源模块测试系统NSAT-8000
- HDU - 3091
- 【微信小程序控制硬件 第13篇】安信可B站直播学习总结,微信小程序MQTT远程控制ESP8266 NodeMCU,谈谈微信生态那些事;
- 2014山东省春季高考计算机本科学校,2017年山东春季高考五大本科学校排名
- wx.getStorageSync()获取存储的数据失败
- 关于数据库事务、隔离级别、锁的理解与整理