我的JAVA面试题备忘录

以下是我收集的一些问题,有的是网上摘录的,有的是自己参加面试被问到的,有的是工作或学习时遇到的,等等。

为什么要记录这些呢?

一方面,我相信,这样做对我自己的技术提升是有帮助的。在全文结构上我尽量 使问题连贯地形成知识体系,而不是堆积的碎片,而且,每个问题我会尽量地给出答案。

另一方面,我希望,有大佬可以指出我的错误。因为我的答案不一定对,尤其那些带 * 的问题。

这份资料将会持续更新,如果有其他问题也可以留言讨论。欢迎交流,共同进步。

修改时间 版本 修改人 修改内容 问题答案 2022-05-02 1.0.0 ZhangZiSheng001 初始化

2022-12-04 1.0.1 ZhangZiSheng001 更正SQL和NOSQL的区别

JVM

class文件的组成结构

说说JVM的运行时数据区

CompressedClassSpace是干嘛用的

运行时常量池和字符串常量池的区别

Minor GC、Major GC和Full GC的区别

一次完整的GC流程是怎样的

什么时候触发major gc

什么是分配担保机制

对象什么时候晋升到老年代

有哪几种垃圾回收算法

有哪几种垃圾回收器

怎么手动触发gc

新生代和老年代比例多大比较好*

字符串常量池会gc吗

MetaSpace会gc吗

项目里用到的JVM参数

项目中JVM调优的例子*

运行时能不能调整堆大小*

类加载器

说说类的加载过程

什么是双亲委派机制

为什么要有多个类加载器

为什么会有双亲委派机制

为什么破坏双亲委派机制

Class.forName和ClassLoader.loadClass的区别

自定义java.lang.String可以吗

JUC

线程和进程的区别

线程有哪几个状态?它们如何转换的

如何中止一个线程

异步线程的异常怎么处理*

什么是线程池?说说它的原理

Executors的几种线程池

线程池的关闭方式

你们项目怎么用线程池*

线程池设置多大合适*

ThreadLocal有什么用

使用ThreadLocal需要注意的问题

volatile的作用

什么是乐观锁、悲观锁

CAS的作用

CAS的缺点

什么是 AQS

什么是独占锁、共享锁

什么是公平锁、非公平锁

synchronized原理、优化

CyclicBarrier与CountDownLatch区别

三种等待/唤醒的使用和区别

Object.notify和Condition.signal是随机唤醒线程吗

如何保证多个线程顺序执行

用三个线程按顺序循环打印abc三个字母

不sleep(0)和sleep(0)的区别

说说常用的几个容器

为什么HashMap的数组是2的n次方

为什么链表大于8且size大于64才转红黑树*

红黑树转回链表的阈值为什么是6不是8

扩容因子为什么是0.75

HashMap和ConcurrentHashMap的区别

TreeMap的使用场景*

ConcurrentHashMap为什么放弃分段锁

DelayQueue的原理

Collections.synchronizedMap本质

Error和Exception的区别

RuntimeException和其他Exception的区别*

String.length() 总是可靠吗

static方法可以重写吗

类的实例化顺序

为什么要使用缓存

redis为什么快

redis为什么使用单线程

为什么redis6.0又用了多线程

说说redis的数据结构

redis还可以做什么

redis有哪种持久化

项目中使用哪种持久化?为什么

说说redis的高可用架构

为什么Cluster模式不用一致性哈希,而是用哈希槽

怎么解决一致性问题*

redis的过期策略

redis的淘汰策略

缓存穿透、缓存击穿、缓存雪崩、热key

如何解决双写不一致问题

说说分布式锁原理

如何避免多客户端获得同一把锁

超时时间大小设置的依据是什么*

如何实现一个列表中元素不同过期时间

为什么要用数据库

为什么要用mysql*

关系型数据库和非关系型的区别

SQL和NOSQL怎么选择

为什么查询那么快

什么是B+树

hash索引和B+树索引的区别

聚簇索引和非聚簇索引的区别

组合索引生效规则

复合索引的索引树是怎样的*

怎么判断索引是否生效

重复性高的字段都不能加索引吗

项目中有没遇到慢查询?怎么办

sql的执行顺序

exists和in的区别

count(*)、count(字段) 和count(1)区别

为什么select count(*)在myisam比Innodb快

什么是事务

脏读、不可重复读、幻读的原因和解决方案

什么是MVCC

RR级别能否解决幻读

gap锁和next-key锁的关系

next-key的一些示例

为什么要有意向锁

MyISAM 和 InnoDB 的区别

如何解决死锁*

MVCC下delete的数据会一直存在吗

为什么分库分表

怎么分库分表

有哪些分库分表方案

mysql的主从复制方式

mysql的高可用方案*

主从不一致怎么解决

为什么使用队列

为什么要用RabbitMQ*

项目里怎么用的

AMQP的协议模型

RabbitMQ的两种模式

RabbitMQ的四种交换机

routingkey和bindingkey的区别

如何保证消息有序*

如何保证消息不丢失

怎么保证消费幂等性

如何避免队列消息积压

如何做延迟队列

重回队列的消息排在哪里

RabbitMQ的高可用方案

生产者创建队列还是消费者创建队列

死信交换(DLX)和死信队列(DLQ)

推模式和拉模式

IOC和DI的理解

beanFactory和applicationContext的区别

如何解决循环依赖

什么情况会出现无法解析的循环依赖?为什么

bean的生命周期

事务传播机制

Spring Cloud中feign、ribbon和hystrix的超时时间

springboot自动装配的过程

为什么要用微服务

为什么要使用集群而不是更好的单机

什么是CAP

什么是Service Mesh*

什么是降级

几种限流算法

分布式事务*

分布式id

oauth2.0

eureka、ribbon、hystrix是如何配合的*

你们项目的日活、qps是多少

怎么统计qps

正向代理和反向代理的区别

如何实现热部署*

你们项目的监控告警

Counter、Gauge、Summary、Histogram的区别

Linux的IO模型有哪几种

reactor模型有哪几种

epoll和poll的区别

平时用到的Linux命令

一个进程最多可以创建多少线程

为什么 java 程序的内存溢出往往伴随着 CPU 爆表

CPU爆表怎么排查

内存高怎么排查

线上系统突然变得异常缓慢,如何排查*

网络:集线器、交换机、路由器

为什么是三次握手?最后一次省略不行吗

为什么是四次挥手?第二次和第三次合并不行吗?最后一次省略不行吗

TCP四次挥手为什么要等待2msl

http和https的区别

说几个HTTP状态码

当你用浏览器打开一个链接的时候,计算机做了哪些工作步骤

如何避免浏览器缓存

如何理解HTTP协议的无状态性

HTTP有哪几种method

雪花算法

雪花算法如何解决时钟回拨

一致性哈希算法

对称加密、非对称加密算法

时间轮算法

解决hash冲突的方法

paxos算法*

raft算法*

设计模式

手写单例模式

代理模式和装饰模式的区别

面向对象设计的原则

如何设计一个良好的API

数据库设计的三大范式

开发、设计中遇到的问题或挑战

什么是MVC

实现:抢红包

实现:扫码登录

实现:秒杀*

实现:多少人在看这篇文章*

实现:浏览过这篇文章的还浏览了

实现:附近的人

实现:五亿数据,找出数量top100

实现:并发安全的链表*

实现:30分钟没付款就自动关闭交易

实现:分布式环境下的countDownLatch

长链接转短链接的原理

tomcat的并发控制参数

感谢阅读。

打赏支持 ~

Original: https://www.cnblogs.com/ZhangZiSheng001/p/16218179.html
Author: 子月生
Title: 我的JAVA面试题备忘录

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/575768/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Python–序列化与反序列化

    序列化是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态(存在内存中)写入到临时或持久性存储区(硬盘)。以后,可以通过从存储区中读取或反序列化对象的…

    数据库 2023年6月9日
    093
  • 总监让我当小组长,我不愿意,理由竟是…

    来源:BiggerBoy作者:北哥原文链接:https://mp.weixin.qq.com/s/_pkjvDzGQUDTfo9C1bieJw 最近看到一个话题,热度很高:【总监让…

    数据库 2023年6月11日
    066
  • IntelliJ IDEA 2017 永久注册方法

    首先下载:JetbrainsCrack-2.6.10-release-enc.rar rover12421大神开发的下载好后改一下后缀.jar 然后放入到IDEA安装bin目录 在…

    数据库 2023年6月14日
    069
  • go 切片的扩容

    slice type slice struct { array unsafe.Pointer len int cap int } func makeslice(et *_type,…

    数据库 2023年6月9日
    048
  • MySQL之多表查询、Navicat及pymysql

    一、多表查询 1.1 数据准备 — 建表 create table dep( id int primary key auto_increment, name varchar(20…

    数据库 2023年5月24日
    090
  • 9 &和&&的区别

    &运算符有两种用法 在解释按位与&之前,我们先了解一个知识:程序中的所有数在计算机内存中都是以二进制的形式存储的,位运算就是直接对内存中整数的二进制位进行操作。 按…

    数据库 2023年6月6日
    0109
  • 前端开发:如何正确地跨端

    导读:面对多种多样的跨端诉求,有哪些跨端方案?跨端的本质是什么?作为业务技术开发者,应该怎么做?本文分享阿里巴巴ICBU技术部在跨端开发上的一些思考,介绍了当前主流的跨端方案,以及…

    数据库 2023年6月14日
    083
  • 奶奶常说,黑白照片看的不清晰,还好我会Python,分分钟给她变成彩色的~

    咳咳~ 其实是奶奶常说,艾欧尼亚昂扬不灭,正义将指引着我们! 好吧,并不是奶奶说,只是最近回家发现一些黑白老照片,看着不够清晰,然后实验了一波用Python把老照片变成彩色的。 代…

    数据库 2023年6月14日
    087
  • 强烈推荐一款优秀且通用的后台管理系统

    最近看到一款优秀的通用管理后台——likeadmin,推荐给大家。likeadmin的部署方式简单,界面美观,基于MIT协议,完全免费,非常值得一用。 likeadmin快速开发通…

    数据库 2023年6月14日
    084
  • asp.net(C#)接MYSQL8.0版本报错的处理方法

    由于新的操作系统没有安装mysql,项目中需要使用到,于是安装了最新版本的mysql8.0.28(我安装的是社区版),如果你的项目是老项目,使用的mysql插件是比较老的版本,安装…

    数据库 2023年5月24日
    0184
  • Windows界面个人常用快捷键

    分享一下个人常用快捷键。 说明:字母排序规则遵循字母表(a->z) 快捷键 介绍 windows+d 由当前应用直接返回桌面,再按一次回到应用 windows+e 打开文件资…

    数据库 2023年6月14日
    097
  • Redis——数据操作(2)

    2022-09-21 (2)hash操作: ①设置多个hash值,(hmset): 查看说明: help hmset hmset person name A age 1 ②获得多个…

    数据库 2023年6月14日
    059
  • mysql中group by,having,order by,limit,distinct的用法和简单的的多表查询

    group:组 by:通过 group by :通过….。分组group by列名:通过指定列来分组 一般情况下在题目中出现 “每个” &#82…

    数据库 2023年6月16日
    0103
  • 一篇文章带你掌握主流基础框架——Spring

    一篇文章带你掌握主流基础框架——Spring 这篇文章中我们将会介绍Spring的框架以及本体内容,包括核心容器,注解开发,AOP以及事务等内容 那么简单说明一下Spring的必要…

    数据库 2023年6月14日
    092
  • MySQL约束

    约束指对字段的约束,用于确保数据库的数据满足特定的规则。在MySQL中,数据库的约束包括, NOT NULL,PRIMARY KEY,UNIQUE,FOREIGN KEY,CHEC…

    数据库 2023年6月16日
    056
  • MySQL学习笔记

    MySQL学习笔记 解决MYSQL中文乱码问题 一、乱码的原因: 1、 client客户端的编码不是utf8 2、server端的编码不是utf8 3、database数据库的编码…

    数据库 2023年6月14日
    081
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球