2018.02.15除夕拿下了阿里云认证的《阿里巴巴编码规范(JAVA)》认证,写下这篇考后感,记录考试中碰到的一些考点。sql
先整体介绍下这个考试规则,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)。tcp
在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协议,三次握手、四次挥手相关概念及状态转换。
总结:本身对于数据库这块及单元测试相关的知识点了解相对薄弱,这也是从此须要补充知识的一个方向。笔者但愿这篇文章希能巩固本身一些薄弱的知识点,同时也但愿给准备去考这个认证的小伙伴一个参考,带来必定帮助。