阿里java规范认证重要考点

java:

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

有个特列就是Integer,Integer对象是在IntegerCache.cache产生,会复用已有对象在-128至127范围内的赋值,Integer值可以直接使用==进行判断,但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象,这是一个大坑,推荐使用equals方法进行判断。

 

2.集合部分,特别是数组与集合相互转换,涉及考题较多。

subList 返回的是 ArrayList 的内部类 SubList,并不是 ArrayList,而是ArrayList的一个视图,对于SubList子列表的所有操作最终会反映到原列表上(在sublist中添加/删除元素,不只影响sublist本身,同时会影响原ArrayList)。  在subList场景中,高度注意对原集合元素个数的修改,会导致子列表的遍历、增加、删除均会产生ConcurrentModificationException 异常(切记,这个场景是不被允许的,不要和上一点记混淆)

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

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

  1. toArray方法的使用。

使用集合转数组的方法,必须使用集合的 toArray(T[] array),传入的是类型完全 一样的数组,大小就是 list.size()。toArray无参方法只能返回Object[]类,强制转换会报ClassCastException转换异常

 

数据库:

  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.考点:白盒测试中的代码覆盖率相关概念,语句覆盖、分支覆盖(判定覆盖)、条件覆盖、路径覆盖。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值