ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java面试题

2020-07-09 16:34:36  阅读:169  来源: 互联网

标签:面试题 缓存 Java LinkedList 链表 索引 下标 拷贝


  1. 简述ArrayList、LinkedList区别

1) ArrayList是数组的数据结构,LinkedList是双向链表的数据结构.

2) ArrayList在访问数组的下标时效率比较高,在新增和删除时因为会对操作点之后的数据下标造成影响,所以效率比较低,

3) LinkedList因为是链表的结构,所以在访问下标时先判断当前下标大于或小于链表长度的二分之一,然后从前或后依次查找.效率比较低,,,LinkedList的元素是上一个指向下一个的,所以插入数据或删除数据可以直接增删,不会对其他元素造成影响,所以增删效率高.

 

 

  1. ConcurrentHashMap如何保证的并发性能

ConcurrentHashMap相当于一个加了锁的HashTable.但是与HashTable不同的是它的锁并不是加在整个table上的,HashMap的结构是 数组加链表加红黑树, 锁是在数组上分段

加的,所以在安全的情况下效率也很高.

 

  1. 缓存穿透、缓存雪崩的解决方案

(1).缓存穿透是由于客户端发送大量的请求去请求一个并不存在的数据,这样,并不会走缓存,所以大量请求全部指向到数据库,就会造成缓存击穿,

解决方案有两种:一种使用缓存空值,查询不存在的key的时候直接返回null值,并做缓存,下次直接从缓存中获取,坏处是会缓存大量无用的key.

另外一种是使用boolean过滤器,

(2).缓存雪崩是由于同一时间大量缓存失效,大量请求去请求数据库,数据库扛不住就会发生雪崩,

解决方案:使用缓存集群,提高可用性.或者做缓存持久化,尽快恢复缓存,或者设置缓存的随机失效时间.

  1. spring声明式事务失效场景举例
  2. @transactional添加在非public修饰的方法上
  3. @transactional的属性propagation设置错误,
  4. Rollbackfor可以指定能够触发回滚的异常类型,如果属性设置错误,则事务会失效.
  5. 数据库引擎不支持事务,
  6. 异常被catch了事务会失效.
  7. 在没有添加@transactional的方法A中调用的方法B.如果方法a被调用,则b的事务不会生效

 

  1. mysql表中性别字段是否应该建立索引,简述原因

如果性别字段的值即男,女或者0,1分布均匀则不应该建立索引,如果分布不均,查询数量较少的数据时,索引能提高效率.

 

  1. git merge rebase区别

Rebase是把当前分支放在最后面,

Merge会把分支和当前commit的合并在一起,形成一个新的commit提交.

 

  1. 简述eureka自我保护机制,实现了cap中的哪两项?

Eureka运行期间,如果心跳失败比例在15分钟内地狱85%,就会将当前实例注册信息保护起来,

实现了cap中的ap.即一致性,分区容错性

 

 

  1. mysql like搜索怎样才能走索引

Like搜索时只有 “%”不在第一位的时候才会走索引.

 

 

  1. 如何在遍历集合时安全的删除集合中的元素

使用Iterator迭代器遍历时调用iterator.remove();方法删除元素,不要调用list.remove

 

 

  1. 深拷贝和浅拷贝的区别,如何实现深拷贝

如果拷贝之后,被拷贝的对象发生变化,拷贝的也跟着发生了变化,就是浅拷贝,如果没有发生变化,就是深拷贝.

标签:面试题,缓存,Java,LinkedList,链表,索引,下标,拷贝
来源: https://www.cnblogs.com/zjpnotsleep/p/13274445.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有