恒生电子面试 JAVA社招 两年经验(已通过)

本文详细记录了作者参加恒生电子JAVA社招面试的全过程,包括一面和二面的问题,涵盖Java集合、数据库索引、线程同步、Redis、线程池、Dubbo等多个技术点。面试中讨论了深拷贝与浅拷贝、Java 1.8新特性、数据库优化策略等,还涉及到了面试策略和薪资期望。
摘要由CSDN通过智能技术生成

恒生电子面试

一面 2021.5.31 下午两点

1. 自我介绍

巴拉巴拉

2. 工作过程中印象最深的一件事情

说一件工作中印象最深刻的事情,并且会问问你排查的细节

3. 该事情有没有做复盘

关于印象最深刻事情的复盘以及后期如何处理

4. java 集合(八股文)

就是八股文的面试

4.1. 说说list set map 的理解
  • list (对付顺序的好帮⼿): 存储的元素是有序的、可重复的。
  • set(注重独一无二的性质):存储的数据是无序的、不可重复的。
  • Map(用Key搜索的专家):使用键值对(Key-Value)存储,类似数学上的函数 Key是无序的、不可重复的 Value是无序的、可重复的
4.2. arrayList和LinkedList的不同
  1. 是否线程安全
    ArrayListLinkedList都是不同步的,也就是不能保证线程安全
  2. 底层数据结构
    ArrayList底层使用的是Object数组 LinkedList底层使用的是双向链表
  3. 插入和删除是否受元素位置的影响
    1. ArrayList 采用的是数组存储,所以插入和删除元素的时间复杂度受元素位置的影响,比如:执行add(E e) 方法 ArrayList会默认将需要插入的元素插入到列表的尾部,这种情况下的时间复杂度是O(1)。但如果是在指定位置i插入和删除元素的话,时间复杂度就是O(n-i)。因为在进行上述操作的时候集合中的第i个元素和第i个元素之后的(n-i)个元素都要执行向后/前移一位的操作
    2. LinkedList 采用的是链表存储,所以插入和删除元素不会受元素位置的影响
  4. 是否支持随机快速访问
    1. LinkedList 不支持随机快速访问,因为其实链表结构,需要从头开始查找到指定位置
    2. ArrayList 支持随机快速访问,因为它是数组结构,可以根据下标直接查找对应位置
  5. 内存空间占用
    1. ArrayList的空间浪费体现在每个list列表的结尾都会预留一定的容量空间
    2. LinkedList的空间浪费体现在它的每一个数据都比ArrayList要消耗更多的空间(因为要存放前一个和后一个元素指针)
4.3. hashmap 1.7和1.8的不同

阿里面试官没想到一个HashMap,我能跟他扯半小时

4.4 concurrentHashmap讲讲

HashMap?ConcurrentHashMap?相信看完这篇没人能难住你!

5. 深拷贝和浅拷贝

  • 浅拷贝(shallowCopy)只是增加了一个指针指向已存在的内存地址,
  • 深拷贝(deepCopy)是增加了一个指针并且申请了一个新的内存,使这个增加的指针指向这个新的内存。

6. java四种引用方式

  • 强引用:如果一个对象具有强引用,它就不会被垃圾回收器回收。即使当前内存空间不足,JVM也不会回收它,而是抛出OutOfMemoryError错误,使程序异常终止。如果想中断强引用和某个对象之间的关联,可以显式地将引用赋值为null,这样一来的话,JVM在合适的时间会回收该对象
  • 软引用:在使用软引用时,如果内存的空间足够,软引用就能继续被使用而不会被垃圾回收器回收只有在内存不足时,软引用才会被垃圾回收器回收。
  • 弱引用:具有弱引用的对象拥有更短的生命周期。因为当JVM进行垃圾回收时,一旦发现弱引用的对象,无论当前内存空间是否充足,都会进行回收,不过因为垃圾回收器是一个优先级较低的线程,所以并不一定能迅速发现弱引用对象
  • 虚引用 顾名思义,就是形同虚设,如果对一个对象仅仅持有虚引用,那么它相当于没有任何引用,在任何时候都有可能被回收
引用类型 GC回收时间 用途 生存时间
强引用
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值