技术名词积累

Fail-Fast机制

fail-fast 机制是Java集合(Collection)中的一种错误机制。 在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的结构进行了修改(增加、删除),则会抛出Concurrent Modification Exception(并发修改异常)。

Java魔法类:Unsafe

img

如上图所示,Unsafe提供的API大致可分为内存操作、CAS、Class相关、对象操作、线程调度、系统信息获取、内存屏障、数组操作等几类,下面将对其相关方法和应用场景进行详细介绍。

解决线程同步问题的思路

  1. 互斥同步
    1. 加锁:synchronized 和 ReentrantLock。
  2. 非阻塞同步
    1. CAS
    2. AtomicInteger
  3. 无同步方案
    1. 要保证线程安全,并不是一定就要进行同步。如果一个方法本来就不涉及共享数据,那它自然就无须任何同步措施去保证正确性。

Java开发面试准备

软件开发工程师的技术面试,一般分为三个部分:编程语言基础知识(俗称八股)、编程题、项目经验。

这篇记录下如何准备面试。

一、八股

不错的资料1:

https://www.pdai.tech/

Java 全栈知识点问题汇总(上)

Java 全栈知识点问题汇总(下)

不错的资料2:

Java Guide:https://javaguide.cn/home.html
小林图解:https://xiaolincoding.com/
On Java 8:https://github.com/rocLv/OnJava8
cs-note:https://cyc2018.xyz/

其实上面这些资料都挺全的,从入门到架构,都很详细,选一个自己喜欢的风格,认真复习即可。

二、算法题

刷题有两个方向:

建议先按照知识点刷,先过一遍考点,整体复习一下,之后可以看看高频题。

三、项目经验

看看别人的面试经验,根据他的项目问题,思考自己的项目中遇到过什么问题,如何解决的。

(面经建议现搜索)

这里提供一些问题作参考:

  1. 讲项目
  2. 再讲个项目
  3. 平时读什么源码
  4. 对XX领域架构了解吗?(XX=电商、支付、物流)
  5. 常见的限流算法有哪些,你们系统中是如何应用的?
  6. 你的系统如何保障稳定性?