内存模型

  • 内存模型定义为什么要有内存模型为什么要重排序,重排序在什么时候排如何约束重排序规则happens-before
  • 什么是顺序一致性
  • CAS 实现的原理,是阻塞还是非阻塞方式?什么时候用,使用时需要考虑的问题
  • 处理器和 Java 分别怎么保证原子操作
  • 保证了原子性就能保证可见性吗?
  • final 内存语义?什么时候用,使用时需要考虑的问题
  • volatile 内存语义,什么时候用,用的时候需要考虑什么问题
  • synchronized 内存语义,什么时候用,和锁比较一下优缺点
  • synchronized 中涉及的锁升级流程
  • 锁的内存语义,举例说明,加锁失败时候的处理流程
  • 比较下 CAS 、volatile 、synchronized、Lock 区别
  • 原子操作类底层实现机制?自增操作是怎么保证原子性的?

线程

  • 线程的状态有哪些
  • 如何在 Java 中实现线程?
  • 如何在 Java 中启动一个线程?
  • 设计线程中断的意义是什么
  • Java 中 interrupted 和 isInterrupted 方法的区别?
  • 如何停止一个线程?
  • 线程 join 方法干什么用?
  • 有三个线程 T1,T2,T3,怎么确保它们按顺序执行?
  • 线程的等待通知机制实现机制?
  • 为什么应该在循环中检查等待条件?
  • 为什么 wait 和 notify 方法要在同步块中调用?
  • 为什么 wait, notify 和 notifyAll 这些方法不在 thread 类里面?
  • ThreadLocal 是什么,怎么实现的
  • 线程池是什么,提交一个任务进去,处理流程?
  • Executor 框架介绍
  • JUC 包中提供了哪些配置好的线程池,差异化是什么
  • 什么是 FutureTask?

  • Lock 接口提供了哪些实现类

  • AQS 是什么,提供了哪些方法

  • AQS 中独占锁和共享锁的操作流程大体描述一下

  • 重入锁有什么好处,什么时候考虑用

  • 读写锁有什么好处,什么时候考虑用?读锁是什么类型的锁,写锁呢?

  • 说下读写锁里的锁降级流程,什么时候可以考虑用这个机制

  • park 方法是怎么实现的

  • 锁的等待通知机制 Condition 是怎么实现的,有了线程的等待通知机制为什么还要设计 Condition?

  • 死锁怎么产生的,如何避免

  • 说说 Java 中有哪些锁

  • sleep、wait、park、Condition 都能让线程等待,有什么区别?

  • 所谓 sleep 不会释放锁,wait 会释放锁,释放锁后重新获取时它的上下文数据如何处理的?

  • 释放锁会让 CPU 进行上下文切换吗?

  • 容器与工具

  • 阻塞和非阻塞有什么区别,他们可以用什么方式实现

  • 队列(Queue)提供哪些操作

  • 阻塞队列提供了哪些获取元素的方法,有什么区别?

  • 阻塞队列有哪些实现?为什么要分有界无界?

  • CountDownLatch 怎么实现的,什么时候考虑用?

  • CyclicBarrier 怎么实现的,什么时候考虑用?

  • Semaphore 怎么实现的,什么时候考虑用?

  • 如何在两个线程间共享数据?

  • Exchanger 怎么实现的,什么时候考虑用?

  • ConcurrentHashMap 实现?

  • fork/join 框架是什么?

JVM 虚拟机面试题

  • 内存管理
  • 为什么需要 JVM?
  • 简单描述 JMM 和 JVM 两个概念
  • JVM 内存管理
  • 永久代、元空间、方法区的关系
  • 类加载过程
  • 双亲委派模式有什么好处
  • 如何覆盖 JDK 提供的组件,比如覆盖 ArrayList 的实现
  • new 一个对象的过程发生了什么(类加载、变量初始化、内存分配)
  • 对象的死亡过程
  • JVM 可能会抛出哪些 OOM
  • 垃圾回收算法有哪些?优缺点比较
  • 熟知的垃圾回收器有哪些,简单描述每个应用场景
  • CMS 和 G1 的垃圾回收步骤是?
  • G1 相对于 CMS 的优缺点
  • 性能监控与调优
  • 如何监控 GC
  • 常见 OutOfMemoryError 有哪些
  • 常见的 JDK 诊断命令有哪些,应用场景?
  • CPU 较高,如何定位问题
  • 内存占用较高,如何定位大对象
  • 内存泄漏时,如何实时跟踪内存变化情况
  • 内存泄漏时,如何定位问题代码
  • 大型项目如何进行性能瓶颈调优?
  • 虚拟机子系统
  • 字节码是如何在 JVM 中进行流转的(栈帧)
  • 方法调用的底层实现
  • 方法重写和重载的实现过程
  • invokedynamic 指令实现
  • 如何修改字节码
  • JIT 参数配置如何影响程序运行?
  • 虚拟机有哪些性能优化策略

最后在提醒大伙几句:HR面试基本和国内其他的公司HR面试差别不大,包括职业规划、职业经历、离职原因、以及相关的背景调查等几个基础方面。

在和HR的沟通当中还是见仁见智,关键在于自己的职业规划以及自我定位是否清晰。在这轮沟通中就显得十分的重要。

最后提供免费的Java架构学习资料,学习技术内容包含有:Spring,Dubbo,MyBatis, RPC, 源码分析,高并发、高性能、分布式,性能优化,微服务 高级架构开发等等。

最后

看完上述知识点如果你深感Java基础不够扎实,或者刷题刷的不够、知识不全面

小编专门为你量身定制了一套<Java一线大厂高岗面试题解析合集:JAVA基础-中级-高级面试+SSM框架+分布式+性能调优+微服务+并发编程+网络+设计模式+数据结构与算法>

针对知识面不够,也莫慌!还有一整套的<Java核心进阶手册>,可以瞬间查漏补缺

全都是一丢一丢的收集整理纯手打出来的——收整在***【我的学习笔记大全】***,有需要的朋友可以自取

更有纯手绘的各大知识体系大纲,可供梳理:Java筑基、MySQL、Redis、并发编程、Spring、分布式高性能架构知识、微服务架构知识、开源框架知识点等等的xmind手绘图~

**,有需要的朋友可以自取

更有纯手绘的各大知识体系大纲,可供梳理:Java筑基、MySQL、Redis、并发编程、Spring、分布式高性能架构知识、微服务架构知识、开源框架知识点等等的xmind手绘图~

[外链图片转存中…(img-UU4iTd0E-1626361287183)]

如何实现分布式锁?已拿意向书!相关推荐

  1. 已超过了锁请求超时时段_分布式锁:效率与正确性的衡权

    提到分布式锁,很多人也许会脱口而出 "redis",可见利用 redis 实现分布式锁已被认为是最佳实践.这两天有个同事问我一个问题:"如果某个服务拿着分布式锁的时候,r ...

  2. 2020最后一次Java面试,快手三面一轮游,如今已拿意向书!

    2020最后一次Java面试,我去了快手.快手的面试挺有挑战性的,而且还特别有意思,感觉啥都能问到.(二面是10天前约的面试,差点要忘了)然后是HR面,前天我就收到offer. 一面二面啥的我都忘记具 ...

  3. 2021最后一次面试,快手三面Java一轮游,如今已拿意向书

    2020最后一次Java面试,我去了快手.快手的面试挺有挑战性的,而且还特别有意思,感觉啥都能问到.(二面是10天前约的面试,差点要忘了)然后是HR面,前天我就收到offer. 一面二面啥的我都忘记具 ...

  4. etcd 笔记(08)— 基于 etcd 实现分布式锁

    1. 为什么需要分布式锁? 在分布式环境下,数据一致性问题一直是个难点.分布式与单机环境最大的不同在于它不是多线程而是多进程.由于多线程可以共享堆内存,因此可以简单地采取内存作为标记存储位置.而多进程 ...

  5. 服务注册发现consul之四: 分布式锁之四:基于Consul的KV存储和分布式信号量实现分布式锁...

    一.基于key/value实现 我们在构建分布式系统的时候,经常需要控制对共享资源的互斥访问.这个时候我们就涉及到分布式锁(也称为全局锁)的实现,基于目前的各种工具,我们已经有了大量的实现方式,比如: ...

  6. redis分布式锁 在集群模式下如何实现_收藏慢慢看系列:简洁实用的Redis分布式锁用法...

    在微服务中很多情况下需要使用到分布式锁功能,而目前比较常见的方案是通过Redis来实现分布式锁,网上关于分布式锁的实现方式有很多,早期主要是基于Redisson等客户端,但在Spring Boot2. ...

  7. 分布式锁的三种实现方式_基于 redis 的分布式锁实现

    云龙 资深运维开发工程师,负责游戏系统配置管理平台的设计和开发,目前专注于新 CMDB 系统的开发,平时也关注运维自动化,devops,python 开发等技术. 背景 CMDB 系统里面的机器数据会 ...

  8. Redis 分布式锁如何自动续期

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/upstream480/article/ details/121578638 Redis 实现分布 ...

  9. 基于 Redis 实现分布式锁思考

    以下文章来源方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/xuan_lu/article/details/111600302 分布式锁 基于redis实 ...

  10. 真牛逼!我司用了7年的分布式锁方案...

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 提到数据一致性.操作原子性,诸如此类的一些与并发有关的词汇时不知道 ...

最新文章

  1. leetcode - 63. 不同路径 II
  2. (31)System Verilog类class详解
  3. 库克:到2030年苹果要实现整个供应链的碳中和
  4. Angular6入门
  5. java 快速从树节点找到数据_14期每日分享Java程序员分享超全哈希相关的知识
  6. 构造器2(Java)
  7. spring 官方文档
  8. vuex , 简单入(liao)门(jie)
  9. 【Pycharm】安装及激活、界面调整、导入anaconda的依赖库、字体设置微软雅黑
  10. RAC环境诊断案例一则
  11. php开源 饭馆记账软件_个人记账软件 - 开源免费
  12. python图片修改过、有原图、怎么得到改动的地方_python--修改证件照的大小
  13. web安全之Webshell管理工具
  14. Candence PCB Si 仿真设计篇前导:IBIS模型与PKG介绍
  15. 生成子空间的交空间与和空间
  16. 利用canvas开发一个绘图板
  17. zigbee 问题一:协调器究竟如何选择信道?
  18. 《JAVA编程思想》学习笔记:第1-4章(Java概述)
  19. 负和游戏、零和游戏和共赢游戏
  20. 编程小技巧9-如何生成没有水印的代码图片(IDEA carbon-now-sh插件使用教程)

热门文章

  1. 中国内容推荐引擎市场趋势报告、技术动态创新及市场预测
  2. java的循环控制结构有哪些_java中的控制结构(if,循环)详解
  3. CSDN创始人蒋涛出席2021 中关村论坛,启动“科创中国”开源创新榜单评选
  4. .NET 靠开源再“出圈”!
  5. UNIX会被取代吗?来听听UNIX诞生的见证者怎么说~
  6. 提升源代码安全管控 从源头保护敏感数据
  7. 微软直播马上开始,近百岗位等你来,快戳进直播间
  8. 活跃了 40 年的 AWK 现在怎么样了?
  9. JavaScript 将死?
  10. 小米新生态总监董红光:致力打造智能服务开放平台