《阿里巴巴编码规范(JAVA)》认证考后感

2018.02.15除夕拿下了阿里云认证的《阿里巴巴编码规范(JAVA)》认证,写下这篇考后感,记录考试中碰到的一些考点。

先总体介绍下这个考试规则,50道选择题,大部分是多选题,有少部分单选,满分100分,达到80分即可拿到证书。

传送门:https://edu.aliyun.com/certification/cldt02

绝大部分的考题涉及到的知识点都能在《阿里巴巴JAVA开发手册》上找到,这些都是比较基础的考点,相信对大多数有工作经验的猿们来说,不是难题,这一部分笔者就不再多提了,书上都有的。

下面重点记录几个重要的考点,有些可能只在书上略微提及且自己工作中不常涉及:

JAVA:

1.考点:所有的相同类型的包装类对象之间值的比较,全部使用equals方法比较。

对于Integer var = ? 在-128至127范围内的赋值,Integer对象是在IntegerCache.cache产生,会复用已有对象,这个区间内的Integer值可以直接使用==进行判断,但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象,这是一个大坑,推荐使用equals方法进行判断。这个点在很多书上都有提及,特别需要注意。

2.考点:集合处理这个章节,特别是数组与集合相互转换,涉及考题较多。

subList 返回的是 ArrayList 的内部类 SubList,并不是 ArrayList ,而是 ArrayList 的一个视图,对于SubList子列表的所有操作最终会反映到原列表上(在sublist中添加/删除元素,不只影响sublist本身,同时会影响原ArrayList)

在subList场景中,高度注意对原集合元素个数的修改,会导致子列表的遍历、增加、删除均会产生ConcurrentModificationException 异常(切记,这个场景是不被允许的,不要和上一点记混淆)

   sublist没有实现序列化,查看源码就可以发现其没有实现Serializable接口,这点必须注意,在大多数写入缓存容器、RPC调用等场景需要做一些调整。

   使用工具类Arrays.asList()把数组转换成集合时,不能使用其修改集合相关的方法,它的add/remove/clear方法会抛出UnsupportedOperationException异常。

   说明:asList的返回对象是一个Arrays内部类,并没有实现集合的修改方法。Arrays.asList体现的是适配器模式,只是转换接口,后台的数据仍是数组(如果数组中的数据改变,那么list视图也将受到影响)。

数据库:

1.考点:NULL与任何值比较的结果都为NULL。~记住这点很重要。

2.考点:Mysql涉及的索引从数据结构角度来看涉及到 B-Tree、Hash、R-Tree、Full-text,从物理存储角度,聚集索引(clustered)、非聚集索引(non-clustered)。

在MySQL中,InnoDB引擎表是(聚集)索引组织表(clustered index organize table),而MyISAM引擎表则是堆组织表(heap organize table)。

InnoDB的数据文件本身就是索引文件,B+Tree的叶子节点上的data就是数据本身,key为主键,这是聚簇索引。非聚簇索引,叶子节点上的data是主键(所以聚簇索引的key,不能过长)。为什么存放的主键,而不是记录所在地址呢,理由相当简单,因为记录所在地址并不能保证一定不会变,但主键可以保证。

3.考点:索引规约中相关的点,考到的题比较多,比如索引中有范围查找,那么索引有序性无法利用,如:WHERE a>10 ORDER BY b; 索引a_b无法排序。

日志:

1.考点:应用中不可直接使用日志系统(Log4j、Logback)中的API,而应依赖使用日志框架SLF4J中的API,使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一。

平时常用的日志适配框架是SLF4J,重点提一下JCL(Jakarta Commons Logging),网上查询了资源它也是一种日志适配框架,~考试的时候漏选了这个。。用这些日志框架的好处是降低与具体日志框架的耦合,可以灵活改变使用的具体日志框架。

单元测试:

1.考点:白盒测试中的代码覆盖率相关概念,语句覆盖、分支覆盖(判定覆盖)、条件覆盖、路径覆盖。

 语句覆盖是最弱的一种度量方式,即使是路径覆盖也不能保证程序完全没问题。这些相关概念还是看下专业的书籍或者博客等资料,笔者在这里就不多描述了。

网络:

1.考点:高并发服务器建议调小TCP协议的time_wait超时时间。

重点需要理解tcp协议,三次握手、四次挥手相关概念及状态转换。

总结:自己对于数据库这块及单元测试相关的知识点了解相对薄弱,这也是今后需要补充知识的一个方向。笔者希望这篇文章希能巩固自己一些薄弱的知识点,同时也希望给准备去考这个认证的小伙伴一个参考,带来一定帮助。

原文地址:https://www.cnblogs.com/carryjack/p/8450437.html

时间: 2024-08-24 02:22:19

《阿里巴巴编码规范(JAVA)》认证考后感的相关文章

Apsara Clouder基础技能认证:阿里巴巴编码规范 考试备考题库

考试网址: https://edu.aliyun.com/clouder/exam/intro/33 共50道题 限时90分钟 阿里云大学Apsara Clouder基础技能认证——阿里巴巴编码规范认证考试.成绩在80分以上可获得认证证书.本考试应用了防作弊系统,请遵守考试秩序.(Java代码在线检测及IDE插件下载:https://edu.aliyun.com/course/417) [注意:本认证考试不提供错题答案查看] 答题开始即开始计时,中途不可暂停,如超时则自动提交 1.考试共 (50

阿里巴巴编码规范

阿里巴巴JAVA 开发规范 下载地址 https://edu.aliyun.com/certification/cldt02 idea 安装: 本人网速不佳使用的是离线安装 去jetbrain 下载 https://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines 下载,到idea -setting-plugin 安装完毕后启动代码检查 博主文章 https://blog.csdn.net/weixin_39220

2015阿里巴巴前端实习生在线笔试考后总结

写在前面 还是太年轻,第一次在线笔试有些紧张了 一.2015题目 我遇到的题目:6个选择其中3个多选,1个填空,6个大题.客服姐姐说题目是随机给的(因为给了一个时段考试,而不是统一时间点开考),不过题型应该是固定的. 单选:一个数组,两个引用,相互赋值,问输出 眩晕抗性-30% 单选:问一个return匿名函数的函数的执行结果,内部还有apply 眩晕抗性再-69% 单选:问字符串替换结果是什么,当然,又是套了几层,绕了几圈 眩晕抗性再-1%,嗯,做完这道给彻底绕晕了 多选:移动端,如果A按钮上

学完Java基础的后感

  今天,截止到文章发表,第一本的Java基础已经全部学完了,我学完后给我最直观的感觉就是听得挺明白.应该在什么时候用什么语法.语法与语法之间怎么嵌套,反正这乱七八糟的吧.可是还是掌握的不够牢固,还有好多的延伸不知道,肯定就是还不够用功.每章都听得挺明白,课后作业也都写的不是很吃力.现在写项目就有些混乱了,把这些结构语法凑在一起,逻辑上就吃力了.没有逻辑在Java是很恐怖的!!知道代码不会用!   写的挺乱的,也是我第一次写,我总结就是逻辑还不清晰.第一篇博客就到这吧.

Java编码规范(华为)

Document number 文档编号 Confidentiality level 密级 内部公开 Document version 文档版本 Total 29 pages 共 29 页 V1.00 Java语言编码规范 Prepared by 拟制 Date 日期 yyyy-mm-dd Reviewed by 评审人 Date 日期 yyyy-mm-dd Approved by 批准 Date 日期 yyyy-mm-dd Revision Record 修订记录 Date 日期 Revisi

Java安全编码规范

SQL Injectioin防范 ibatis框架先看一段ibatis的xml配置 <select id="queryByAccountId" parameterClass="java.util.Map" resultMap="ApplicationInstanceResult">     SELECT * FROM product where account_id = $accountId$ </select> 以上的s

java编码规范

右括号") "与其后面的关键字之间,关键字与其后面的左括号"("或"{"之间,以及"}"与"{"之间,要以一个空格隔开:除". "外,所有二元操作符的前.后要加空格:在逗号后边加一个空格. 说明: 一个紧跟着括号的关键词应该被空格分开: 空白应该位于参数列表中逗号的后面: 所有的二元运算符,除了".",应该使用空格将之与操作数分开.一元操作符和操作数之间不应该加空格,

个人整理--Java编码规范

编码规范对于开发人员来说是非常重要的,有以下几个原因: 1.一个软件的生命周期中,80%的花费在于维护 2.几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护 3.编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码 4.如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误,一如你已构建的其它任何产品 5.为来自不同的项目组或个人提供标准的代码格式. 6.增加易读性. 在不用Java两年多后因工作需要我又要转入Java开发,为此我整理出下面的编码规范,

《疯狂Java讲义(第3版)》.(李刚)——java命名规则及编码规范

1.命名规则: 此处借鉴一下他人的资料,比较全面一些,方便了解学习. JAVA源文件的命名 JAVA源文件名必须和源文件中所定义的类的类名相同. Package的命名 Package名的第一部分应是小写ASCII字符,并且是顶级域名之一,通常是com.edu.gov.mil.net.org或由ISO标准3166.1981定义的国家唯一标志码.Package名的后续部分由各组织内部命名规则决定,内部命名规则指定了各组件的目录名,所属部门名.项目名等. Class/Interface的命名 Clas