阿里巴巴java开发手册(阿里巴巴Java开发手册 嵩山版)

http://www.itjxue.com  2023-01-27 08:53  来源:未知  点击次数: 

关于java学习,有什么书籍或者教程推荐不啦?

java Netty实战课程java高性能分布式RPC教程课程? 免费下载

链接:

提取码:kvvv

Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程

? ? ? ? ? ?

用户传入的任何参数都必须做有效性验证,如果忽略的话可能会导致哪些危害系统

1)page size 过大导致内存溢出。

2)恶意 order by 导致数据库慢查询。

3)任意重定向。

4)SQL 注入。

5)反序列化注入。

6)正则输入源串拒绝服务 ReDoS。

《阿里巴巴Java开发手册》第四条:强制用户请求传入的任何参数必须做有效性验证。

Java 代码用正则来验证客户端的输入,有些正则写法验证普通用户输入没有问题,但是如果攻击人员使用的是特殊构造的字符串来验证,则有可能导致死循环。

阿里巴巴开发手册(list集合操作)

1、不允许程序任何地方使用java.sql.Date、java.sql.Time 、java.sql.Timestamp。

2、判断list元素是否为空,使用isEmpty()方法,而不是size()==0。

3、集合转数组,必须使用集合的toArray(T[] array),传入的是类型完全一致、长度0的空数组

说明:如果直接使用toArray无参方法存在问题,只能返回object[]类,若强制转其他数组类型出现ClassCastException异常

使用 toArray 带参方法,数组空间大小的 length,

1) 等于 0,动态创建与 size 相同的数组,性能最好2)

2)大于 0 但小于 size,重新创建大小等于 size 的数组,增加 GC 负担。

3) 等于 size,在高并发情况下,数组创建完成之后,size 正在变大的情况下,负面影响与 2 相同。

4) 大于 size,空间浪费,且在 size 处插入 null 值,存在 NPE 隐患。

4、集合初始化时,指定集合初始值大小

说明:如果暂时无法确定集合大小,指定默认值(16)即可。

5、变量map使用entrySet而不是keySet。

说明:KeySet其实变量了2次,一次转为Iterator对象,另一次从hashMap中取出key对应的value。

如果jdk8使用Map.forEach()方法

6、Map类集合k/v能不能存储null值,表格

如何评价阿里巴巴发布的Java开发手册

适用于大型公司

适用于人员流动很快的公司

优点: ?1.定义非常精细,可以让其他人员很快速的就能读懂代码且进行修改。毕竟代码是写给其他人看的,毕竟不是给自己看的。

2.代码产出高,指定给纯正的码农,只用来搬砖。

缺点:定义非常精细。因为太精细,也疑问着限制太多,限制开发人员使用新技术或者新想法。

毕竟阿里公司非常大,而且技术也是领先的,所以缺点在阿里眼里不是缺点。

idea阿里巴巴规范插件报错

等级调到Inspactions。idea是阿里巴巴所研发的代码规范插件,idea阿里巴巴规范插件报错等级调到Inspactions即可,规范基于《阿里巴巴Java开发手册》,在IntelliJ IDEA的插件管理中直接搜索Alibaba Java Coding Guidelines即可。

(责任编辑:IT教学网)

更多

推荐鼠标代码文章