欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

面试题[持续更新中]

程序员文章站 2022-03-05 15:08:09
架构之路架构之路[持续更新中]JavabasicJVM多线程SpringMysqlRediszookeeper线上排查计算机网络计算机操作系统架构之路[持续更新中]Javabasic接口和抽象类的区别?我们知道Spring中有很多注解,那么这些注解的功能是怎么实现的?(反射)注解的@Rentention是什么意思?你在实际项目中用过注解吗?怎么用的?HashSet和HashMap的异同?HashMap有哪些线程安全问题?如果HashMap(JDK 7)出现了死循环,该如何发现?Map接...

架构之路[持续更新中]

Java

basic

  • 接口和抽象类的区别?
  • 我们知道Spring中有很多注解,那么这些注解的功能是怎么实现的?(反射)
  • 注解的@Rentention是什么意思?你在实际项目中用过注解吗?怎么用的?
  • HashSet和HashMap的异同?
  • HashMap有哪些线程安全问题?
  • 如果HashMap(JDK 7)出现了死循环,该如何发现?
  • Map接口有哪些实现类
  • 讲一下LinkedHashMap?
  • 除了Java自带的序列化之外,你还了解哪些序列化框架?

JVM

  • JVM内存模型
  • jdk1.8垃圾回收有什么新的变化
  • GC的垃圾回收的原理,GC是怎么实现
  • gc 中新生代有两个 survivor 区,这两个 survivor 起到什么作用,为什么需要两个 survivor 区,如何调整大小
  • CMS 和 G1 之间的区别
  • 如何查看泄漏对象到 GC Roots 的引用链

多线程

  • Thread类实现了哪个接口?
  • 你知道如何根据一个类的定义来判断它是不是线程安全的吗?
  • Java中有哪些类型的锁?
  • (synchronized和ReentrantLock锁)如果一个线程得到了互斥锁,其他线程都在等待,那么这个线程释放锁之后,哪个线程可以得到锁?
  • ReentrantLock默认是公平的还是非公平的?
  • 如何得到一个线程安全的Map?
  • Java中有哪些锁?讲一下synchronized和ReentrantLock的区别?
  • 让 A 线程等待 B 线程有哪些措施
  • ReetrantLock 和 sychronized 关键字区别

I/O

  • BIO / NIO 的区别,如果 NIO 的 channel 一直为空,cpu 是否会飙高

Spring

  • Spring中的事务用过吗?讲一下
  • Spring AOP是怎么实现的?
  • JDK动态代理和CGLIB有什么区别?既然有没有实现接口都可以用CGLIB,为什么Spring还要使用JDK动态代理?
  • Spring AOP不能对哪些类进行增强?(没有被Spring管理的类,当时没想出来)
  • Spring是怎么解决循环依赖的?多例对象之间的循环依赖?单例和多例之间的循环依赖?
  • Spring 在哪些地方用了什么设计模式

Mysql

  • MySQL的ACID特性分别是怎么实现的?
  • MySQL的事务隔离级别是怎么实现的?
  • mysql innodb索引的数据结构
  • MySQL事务的隔离级别?默认的是什么?
  • 索引用过吗?索引有什么缺点?什么时候适合用什么时候不适合?
  • 你通常怎么给一个表加索引?联合索引?
  • mysql数据库索引的原理
  • 联合索引,什么时候考虑建立联合索引

Redis

  • redis一般用它来做什么?缓存
  • redis常用的数据结构
  • redis写一个kv是原子的吗?什么是原子性。
  • redis持久化是怎么做的
  • redis 的 cluster 模式如何进行通信,redis 中新增节点时的 slot 重新分配

zookeeper

  • zookeeper应用场景
  • zookeeper是基于哪种算法实现分布式一致性的?

MQ

Kafka

  • kafka 的消息的顺序一致性如何保证
  • kafka 的消息可靠性如何保证
  • kafka 的 controller 选举和 leader 选举

线上排查

  • 如何排查内存溢出现象?
  • 如果我有一个 http 的 api 方法,这个方法突然执行耗时较平时长,可能存在的问题,如何进行排查

计算机网络

  • 讲一下TCP四次挥手,为什么要四次挥手?
  • 网络协议分别是哪层
  • 网卡中的数据如何被加载到内存中

计算机操作系统

算法与数据结构

  • 100G 的数据文件存有字符串,找出出现次数最多的字符串,限制内存使用量为 4G
  • 设计一个能产生随机数的算法,并且产生的随机数必须是之前并没有出现的
  • 如何判断链表有环?怎么找出来 ?最短时间复杂度怎么做?

本文地址:https://blog.csdn.net/u011552171/article/details/109898430

相关标签: interview java