关于java:Java面试题库

46次阅读

共计 1004 个字符,预计需要花费 3 分钟才能阅读完成。

数据结构

1. map 的底层存储构造

  • 数组、hash 抵触后追加链表,链表太长了转红黑树

2. 如何用两个 stack 实现一个 Queue(编码)

3. 用数组实现一个 Queue(编码)

JDK 语法

1. 你怎么了解函数式接口?Function, Supplier,Consumer 如何应用?(可选)

2. String 为何是 final 的?

3. Object 有哪些办法?有什么作用?

多线程

1. ConcurrentHashMap 线程平安实现机制

  • 以前是分段锁(缩小锁抵触)
  • 当初是 CAS 实现

2. jdk 中乐观锁有哪些实现

3. 线程池的应用

4. 写出一个死锁(编码)

5.ThreadLocal 是什么?有什么须要留神的?

  • JVM

    1. 理解哪些垃圾回收算法,JVM 的垃圾回收机制

    2. 什么是堆外内存 (Direct Memory)(可选)

设计模式

1. 如何初始化单例类

2. 你理解哪些设计模式?你用了哪些设计模式来进步你代码的可维护性?

  • Spring

    1. 你用 AOP 写过哪些性能

    2. 什么是 Srping 的动静代理?Spring 如果决定应用 JDK 动静那里还是 cglib 代理

    3.Controller 和 RestController 有什么区别

    4.

Mysql

1. 什么是索引?主键索引和一般索引有什么区别?

2. 什么是数据库的程度切分和垂直切分?

3. 如何开启一个事务?举个例子,阐明下事务是什么?

4. Mysql 的 redo log 和 bin log 有什么作用?(可选)

5. Mysql 反对 JSON 类型存储吗?反对索引吗?

6. 你平时是如何对 Mysql 语句进行优化的?

Redis

1. 长久化机制是怎么样的

2. 集群模式下,getKey 操作是如何工作的

3. 如何复用 redis 链接?

  • 应用连接池
  • 如果链接超过肯定工夫就会因网络问题断掉,如何解决?

    • 定期革除闲暇的连贯

4. 用过 lua 脚本吗?怎么用的,每次申请都提交整个脚本吗

5. 除了 String,你还用过 redis 的哪些数据类型

  • 只须要第一次提交脚本内容时候生成一个 sha 值,后续每次通过 evalSha 间接调用

音讯队列(可选)

1. 哪些场景适宜用音讯队列?

2. 什么是 ACK 机制

3.kafka 的消费者组是做什么的(可选)

4. 什么是死信队列(可选)

微服务组件(可选)

1. 为什么要用注册核心?

2. 如何实现配置的热更新?

3. nacos 实现热更新的机制是什么?

注:
(可选)的题目须要依据应聘人状况酌情考查。
(编码)的题目是编程题。当然只说思路也是能够的
list 是答案,答案只写了基本思路。

正文完
 0