没有合适的资源?快使用搜索试试~ 我知道了~
首页阿里巴巴Java开发指南:从入门到精通
阿里巴巴Java开发指南:从入门到精通
需积分: 13 1 下载量 119 浏览量
更新于2024-07-19
收藏 494KB PDF 举报
"《阿里巴巴JAVA开发手册》是一本全面而深入的Java编程指南,专为Java开发者设计。该手册按照从入门到进阶的学习路径,共分为五篇,包括Java基础、面向对象编程、常用技术、界面编程和高级技术。 在第一部分——Java基础篇,作者详细介绍了Java语言的基础概念,如数据类型、运算符、流程控制语句以及数组,确保读者对Java的基石有扎实的理解。这部分适合初学者通过实例练习来巩固理论知识。 面向对象篇聚焦于Java的核心特性,如对象和类的定义、访问控制符、继承、接口、封装和异常处理。这部分内容旨在培养读者的面向对象思维,并通过实践提升编程技能。 在Java常用技术篇,手册涵盖了字符串处理、集合框架、内部类、多线程和算法应用等内容,帮助开发者掌握实用工具和技术,提升代码效率。 界面编程篇则是Swing编程的教程,涵盖控件选择、布局管理以及图像处理等方面,有助于开发者构建用户友好的图形用户界面。 最后的高级技术篇,包括网络编程基础、输入/输出流操作和JDBC数据库开发技术,旨在扩展读者的技能边界,使其能够处理复杂的系统集成和数据交互问题。 无论是Java新手还是有经验的开发者,都能在这本手册中找到适合自己的学习资源。它强调编程规约的重要性,如命名规则(如使用驼峰命名法、避免混用英文和拼音等),数组定义规范,以及POJO类中布尔变量命名的正确性,这些都是保证代码质量和可维护性的重要准则。 《阿里巴巴JAVA开发手册》不仅提供了一个全面的Java学习体系,还注重编码习惯和最佳实践,对于提高Java开发者的综合素质具有很高的价值。"
资源详情
资源推荐
阿里巴巴 JAVA 开发手册
6 / 32
8. 【推荐】没有必要增加若干空格来使某一行的字符与上一行的相应字符对齐。
正例:
int a = 3;
long b = 4L;
float c = 5F;
StringBuffer sb = new StringBuffer();
说明:增加 sb 这个变量,如果需要对齐,则给 a、b、c 都要增加几个空格,在变量比较多的
情况下,是一种累赘的事情。
9. 【强制】IDE 的 text file encoding 设置为 UTF-8; IDE 中文件的换行符使用 Unix 格式,不
要使用 windows 格式。
10.【推荐】方法体内的执行语句组、变量的定义语句组、不同的业务逻辑之间或者不同的语义之
间插入一个空行。相同业务逻辑和语义之间不需要插入空行。
说明:没有必要插入多行空格进行隔开。
(四) OOP 规约
1. 【强制】避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成
本,直接用类名来访问即可。
2. 【强制】所有的覆写方法,必须加@Override 注解。
反例:getObject()与 get0bject()的问题。一个是字母的 O,一个是数字的 0,加@Override
可以准确判断是否覆盖成功。另外,如果在抽象类中对方法签名进行修改,其实现类会马上编
译报错。
3. 【强制】相同参数类型,相同业务含义,才可以使用 Java 的可变参数,避免使用 Object。
说明:可变参数必须放置在参数列表的最后。(提倡同学们尽量不用可变参数编程)
正例:public User getUsers(String type, Integer... ids);
4. 【强制】对外暴露的接口签名,原则上不允许修改方法签名,避免对接口调用方产生影响。接
口过时必须加@Deprecated 注解,并清晰地说明采用的新接口或者新服务是什么。
5. 【强制】不能使用过时的类或方法。
说明:java.net.URLDecoder 中的方法 decode(String encodeStr) 这个方法已经过时,应该
使用双参数 decode(String source, String encode)。接口提供方既然明确是过时接口,那
么有义务同时提供新的接口;作为调用方来说,有义务去考证过时方法的新实现是什么。
6. 【强制】Object 的 equals 方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals。
正例: "test".equals(object);
阿里巴巴 JAVA 开发手册
7 / 32
反例: object.equals("test");
说明:推荐使用 java.util.Objects#equals (JDK7 引入的工具类)
7. 【强制】所有的相同类型的包装类对象之间值的比较,全部使用 equals 方法比较。
说明:对于 Integer var=?在-128 至 127 之间的赋值,Integer 对象是在 IntegerCache.cache
产生,会复用已有对象,这个区间内的 Integer 值可以直接使用==进行判断,但是这个区间之
外的所有数据,都会在堆上产生,并不会复用已有对象,这是一个大坑,推荐使用 equals 方
法进行判断。
8. 【强制】关于基本数据类型与包装数据类型的使用标准如下:
1) 所有的 POJO 类属性必须使用包装数据类型。
2) RPC 方法的返回值和参数必须使用包装数据类型。
3) 所有的局部变量推荐使用基本数据类型。
说明:POJO 类属性没有初值是提醒使用者在需要使用时,必须自己显式地进行赋值,任何
NPE 问题,或者入库检查,都由使用者来保证。
正例:数据库的查询结果可能是 null,因为自动拆箱,用基本数据类型接收有 NPE 风险。
反例:某业务的交易报表上显示成交总额涨跌情况,即正负 x%,x 为基本数据类型,调用的
RPC 服务,调用不成功时,返回的是默认值,页面显示:0%,这是不合理的,应该显示成中划
线-。所以包装数据类型的 null 值,能够表示额外的信息,如:远程调用失败,异常退出。
9. 【强制】定义 DO/DTO/VO 等 POJO 类时,不要设定任何属性默认值。
反例:某业务的 DO 的 gmtCreate 默认值为 new Date();但是这个属性在数据提取时并没有置
入具体值,在更新其它字段时又附带更新了此字段,导致创建时间被修改成当前时间。
10.【强制】序列化类新增属性时,请不要修改 serialVersionUID 字段,避免反序列失败;如果
完全不兼容升级,避免反序列化混乱,那么请修改 serialVersionUID 值。
说明:注意 serialVersionUID 不一致会抛出序列化运行时异常。
11.【强制】构造方法里面禁止加入任何业务逻辑,如果有初始化逻辑,请放在 init 方法中。
12.【强制】POJO 类必须写 toString 方法。使用工具类 source> generate toString 时,如果继
承了另一个 POJO 类,注意在前面加一下 super.toString。
说明:在方法执行抛出异常时,可以直接调用 POJO 的 toString()方法打印其属性值,便于排
查问题。
13. 【推荐】使用索引访问用 String 的 split 方法得到的数组时,需做最后一个分隔符后有无内
容的检查,否则会有抛 IndexOutOfBoundsException 的风险。
剩余31页未读,继续阅读
Neo135
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功