有赞 校招 面经

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_32197439/article/details/82822326
  • 校招已经过去一年,在此挂出去年有赞校招面经,一轮卒 泪奔

  • sychronized 加两个sychronize可以吗? 和可重入锁有什么区别?

    • synchronized拥有强制原子性的内部锁机制
    • 在一个线程使用synchronized方法时调用该对象另一个synchronized方法,即一个线程得到一个对象锁后再次请求该对象锁,是永远可以拿到锁的
  • volatile

  • Java内存模型

  • 如何实现一个双向链表?

  • AQS

    • 同步器 多线程并发执行,通过某种共享状态来同步,只有当状态满足xxx条件时,才会触发线程执行xxx
    • AQS框架如何构建同步器
      • 功能
        • 获取同步状态 如果允许,则获取锁,如果不允许就阻塞线程,直到同步状态允许获取
        • 释放同步状态 修改同步状态,并且唤醒等待线程
      • 需求
        • 独占锁和共享锁两种机制。
        • 线程阻塞后,如果需要取消,需要支持中断。
        • 线程阻塞后,如果有超时要求,应该支持超时后中断的机制
      • 独占模式
        • tryAcquire 本身不会阻塞线程,如果返回 true 成功就继续,如果返回 false 那么就阻塞线程并加入阻塞队列
        • 可中断时获取,取消,超时模式获取
      • 共享模式
      • 可以认为同步状态的维护、获取、释放动作是由子类实现的功能,而动作成功与否的后续行为时有AQS框架来实现。
  • CAS

  • final 可以修饰类? 有什么好处?

  • finalize() 方法会触发GC吗

  • 三次握手,四次挥手

  • 有在Linux开发的经历?linux常用命令知道? 如何查看节点,查看cpu命令? grep知道吗 不知道。。。。。

  • git和svn有哪些区别? 平时怎么使用git fetch和poll命令

  • 如何实现一个线程池?要注意哪些地方,线程超出最大容量如何处理?答了异常好像不满意

    • JDK1.5中提供了4种策略:
      • AbortPolicy 直接抛出异常
      • CallerRunsPolicy 只用调用者所在线程来运行任务
      • DiscardOldestPolicy 丢弃队列中最近的一个任务,来执行当前任务
      • DiscardPolicy 不处理不丢弃
  • 线程的几种状态

  • Spring boot有哪些好处? 阅读过源码?

  • Spring在开发中用在哪里?Aop是如何实现的?

  • applicationContext BeanFactory了解吗?

  • 可重入锁 ReentrantLock了解多少?

  • 进程和线程的区别?

  • 进程之间的通信有哪些?

  • 死锁发生的条件?

  • 重排序了解吗?

  • hashMap的get()实现,1.8比1.7有哪些改进?

    • 首先计算 key 的 hashCode,找到数组中对应位置的某一元素,然后通过 key 的 equals 方法在对应位置的链表中找到需要的元素
  • equals()

  • ConcurrentHashMap? 和hashtable区别??

  • 平时有关注技术论坛? 怎么学习? 写博客? github上有什么东西?

  • 归并排序了解? 时间复杂度? 稳定性标准是什么?

  • java深拷贝 浅拷贝

    • 浅拷贝:
      • 浅复制仅仅复制所考虑的对象,而不复制它所引用的对象
      • Cloneable接口
    • 深拷贝:
      • 深复制把要复制的对象所引用的对象都复制了一遍
      • 对象序列化 对象写入到一个字节流中,再从字节流中将其读出来
  • 总结

    • 对待问题的细节还不够深入
    • 建议看一些jdk源码和spring源码,并思考为什么要这样做,触类旁通

猜你喜欢

转载自blog.csdn.net/sinat_32197439/article/details/82822326
今日推荐