2023年一线JAVA面试题

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 Redis 版,标准版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 2023年一线JAVA面试题

企业一:
1.redis是重点。

项目中哪些地方用到了redis,为什么用redis,为什么有些数据你们不用redis存储,redis持久化,redis数据的基本格式。

2.核心业务是什么与基本业务流程是什么

3.你项目中工单审批流程是怎么实现的

4.springboot常用注解有那些?

5.spring的ioc与aop

6.反射的使用

7.maven怎么继承

8.springCloud常用的注解

企业二:
1.这个项目上线了吗?是哪个公司做的?给谁做的?

2.redis存储结构有哪些?

3.你用了springcloud哪些组件?

4.注册中心有了哪个?还有其他的东西吗?

5.熔断用了哪个?他的作用是什么?

6.你们项目的事务是怎么实现的?分布式事务怎么实现的?

7.你们总共做了几个工程服务?

8.服务与服务之间的调用?具体是怎么实现的?

9.服务与服务之间调用的事务的原理?

10.springmvc的请求过程是怎么样的?

11.java中的集合用了哪些?你用过哪些集合?

12.Alliylist能存空值吗?长度是多少?

13.==与equals的区别

14.mysql字符串转日期是什么?

15.orcal字符串转日期是什么?

16.你用过哪些数据库函数?

企业三:
1.部署的容器用的是什么?有哪些容器?

2.bs还是cs架构

3.为什么用mongoDB?

4.数据库优化与sql优化

5.用到那些技术

6.你最熟悉的技术

7.提升最高的项目技术是什么?

8.前端怎样?会什么?

9.linux命令怎样?

10.项目上线后,你是怎么发布的?

11.orcal存储过程怎么实现,视图等

12.多表关联查询速度慢怎么解决

企业四:
Springmvc启动原理

Ioc和aop项目中哪里体现

aop思想

Bean的作用域单例模式

bean是线程安全的吗,如何解决单例bean的线程安全(改变bean的作用域 把 "singleton"改为’‘protopyte’ 这样每次请求Bean就相当于是 new Bean() 这样就可以保证线程的安全了。)

@bean和@component的区别

Bean的生命周期

Springboot启动流程

Spring实现事务的底层原理

Mybatis#{}${}

Mybatis dao和xml文件映射的流程

Mybatis动态sql

Redis同步sql数据库

kafka的优势

为什么Kafka高吞吐量

Kafka group 如何实现消息不重复

了解那些设计模式

介绍单例模式

线程池在项目中是否使用过

最大线程池满了以后新线程处理方式

Jvm内存机制

Jdk1.8新特性

Java如何实现反射

Io相关

企业五:
ioc容器的作用

spingboot和spring的关系

springcloud和springboot

springboot的常用组件

aop思想的饮用场景

springboot启动的原理

sq|如何优化的in和or

常用的集

hashmap的底层

红黑数的底层原理

链表的结构,链表的饮用场景

(nodetable)和hashmap怎么怎么样以后,还 能put吗

企业工作流程

项目是按什么方式分模块的

公司开发项目用了什么技术

springboot的assert用法

根据什么创建索引

企业六:
介绍下项目

token令牌是怎么存放的

一个浏览器可以多个用户同时登录吗;怎么实现的,

令牌是什么时候放上去的

有没有做过导出功能

上传文件有没有做过

java有哪些容器,分别有哪些子类

arraylist和linkedlist的区别

springboot的启动类注解 ,是哪几个注解组成的

springboot还有哪些注解

项目的日志框架有没有了解过

springcloud有哪些核心组件

hystrix作用,有用过吗

feign的作用,有写过吗

Eureka的作用

项目部署了几层

mq是由哪些东西构成的(组件)

redis 由哪些类型

mysql中select count(*)和select count(1)的区别

有遇到过索引失效的情况吗

怎么发现索引失效

有看过执行计划吗

企业七:
String能被继承吗?为什么?

线程的生命周期?

事务的隔离级别?

jdk1.8版本新特性?

事务的传播特性?

常用的设计模式?

Spring单例模式有哪几种?具体怎么实现?

如果有子父类继承关系,实例化调用顺序?

抽象类和接口的区别?

SpringMVC的执行流程?

redis的数据类型

说说springboot的常用注解

mybatis中#和$的区别

spring cloud你是怎么理解的

企业八:
Stream流 了解吗

groupingby的使用如何分组

Mysql中join 了解吗

数据库死锁了解吗

Mybatis 中sql注入了解吗

Redis 运用在项目中那些方面

为什么要用mq

介绍一下最近的项目,项目中负责哪个模块?

秒杀的业务架构?

项目用户量多少?

秒杀业务的并发量大概多少?

Redis并发问题有哪些,如何解决?

幂等性如何解决?

事务的隔离级别?

线程池的参数?

线程run()和start()区别?

其他相关:
1.什么是回表查?
聚簇索引与非聚簇索引
2.Spring如何解决循环依赖问题
A类依赖了B类,B类依赖了C类,而最后C类又依赖了A类,这样就形成了循环依赖问题
Spring解决循环依赖问题,主要是通过三级缓存来解决的。Spring中有三个缓存,用于存储单例的Bean实例,这三个缓存是彼此互斥的,不会针对同一个Bean的实例同时存储。如果获取这个对象,则需要从三个缓存中依次获取指定的Bean实例。 读取顺序依次是一级缓存 ==> 二级缓存 ==> 三级缓存。当创建A的时候发现需要依赖B,spring先将A放入三级缓存,然后再去创建B,当创建B的时候发现需要依赖C,然后将B放入三级缓存,创建C的时候发现依赖A,那么他就去三级缓存中查找A,这个时候C就创建好了,并放入一级缓存中,依次是B,然后是A最后解决循环依赖问题
3.Nginx负载均衡 和 限流配置?略
4.Redis Lua 脚本?略
5.Nacos 存储了什么信息?
服务的注册信息,服务的配置信息
6.微服务之间的调用原理
RestAPI + 负载均衡(如何注册、如何发现、如何调用)
7.Redis 数据类型 及 底层数据结构?五种或6种(zset底层)
8.哈希槽为什么是16384?
Redis计算hash槽的时候使用的CRC16算法产生的hash值有16bit,这个算法可以产生2^16-=65536个值,作者之所以使用16384个而不使用65536个,他自己的解释在下面网站
在redis节点发送心跳包时需要把所有的槽放到这个心跳包里,以便让节点知道当前集群信息,16384=16k,在发送心跳包时使用bitmap压缩后是2k(2 8 (8 bit) 1024(1k) = 2K),
也就是说使用2k的空间创建了16k的槽数。
虽然使用CRC16算法最多可以分配65535(2^16-1)个槽位,65535=65k,压缩后就是8k(8 8 (8 bit) 1024(1k) = 8K),
也就是说需要需要8k的心跳包,作者认为这样做不太值得;并且一般情况下一个redis集群不会有超过1000个master节点,所以16k的槽位是个比较合适的选择
作者原话:
1、普通心跳数据包携带节点的完整配置,该配置可以用旧配置以幂等方式替换,以便更新旧配置。
这意味着它们包含原始形式的节点的槽配置,16k的槽配置需要使用2k内存空间,但是使用65k槽将使用8k的内存空间。
2、同时,由于其他设计折衷,Redis集群不可能扩展到超过1000个节点。
因此,16k是比较合适的,可以确保每个主设备有足够的槽,最大为1000个。
9.线程池配置?略
10.线程池的合理线程数是多少?
如果是CPU密集型的,如偏计算的情况核心线程数最好与服务器核心数保持一致,最大线程数为核心数的2倍即可
如果是io密集型的,如涉及到io操作,需要设置核心线程数为服务器核心数的2倍
11.跨域的解决方法?略
12.Mysql的函数:
尽量高级函数写几个
13.Mysql保证精准度的数据类型?略
14.代码管理工具及命令?Git
15.Java 集合详情 (单列 双列 队列 及实现类和特点)略
16.Springboot和Springmvc的区别是什么
17.git如何解决冲突
18.多线程编程开发的时候需要注意什么事情(安全问题 保证安全 死锁问题)
19.volatile起什么作用(保证内存的可见性、禁止指令重排序)
20.Mysql都有几种类型的索引、储存结构
21.雪花算法的组成
22.如何自己实现lru(最近最少): 双向链表
23.锁是如何升级的:无锁 -> 偏向锁 -> 轻量级锁 -> 重量级锁
24.Redis的事务怎么实现 : watch 监听key multi开启事务 命令1 命令2 exec 提交保证原子性
25.mysql如何解决幻读:通过间隙锁和临建锁、也可以通过MVCC
26.gateway三大组件是什么:路由、断言、过滤
27.回表查询
28.Redis、ES集群搭建
29.ES 常用数据类型 number(long,integer,short,double,float)、text、Keywords 等
30.数据库死锁,以及解决方法: 前提大事务下,多个线程保持与等待,尽量避免大事务
31.2个亿URL如何找到重复的:
分治思想,先文件分割将url哈希计算后取模,保证相同的url在同一个小文件中
读取小文件,放入hashset写入新文件
32.G1和cms区别
33.CAS算法
34.base理论

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
5天前
|
缓存 Java 关系型数据库
【Java面试题汇总】ElasticSearch篇(2023版)
倒排索引、MySQL和ES一致性、ES近实时、ES集群的节点、分片、搭建、脑裂、调优。
【Java面试题汇总】ElasticSearch篇(2023版)
|
5天前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
|
5天前
|
设计模式 安全 算法
【Java面试题汇总】设计模式篇(2023版)
谈谈你对设计模式的理解、七大原则、单例模式、工厂模式、代理模式、模板模式、观察者模式、JDK中用到的设计模式、Spring中用到的设计模式
【Java面试题汇总】设计模式篇(2023版)
|
5天前
|
存储 关系型数据库 MySQL
【Java面试题汇总】MySQL数据库篇(2023版)
聚簇索引和非聚簇索引、索引的底层数据结构、B树和B+树、MySQL为什么不用红黑树而用B+树、数据库引擎有哪些、InnoDB的MVCC、乐观锁和悲观锁、ACID、事务隔离级别、MySQL主从同步、MySQL调优
【Java面试题汇总】MySQL数据库篇(2023版)
|
5天前
|
存储 缓存 NoSQL
【Java面试题汇总】Redis篇(2023版)
Redis的数据类型、zset底层实现、持久化策略、分布式锁、缓存穿透、击穿、雪崩的区别、双写一致性、主从同步机制、单线程架构、高可用、缓存淘汰策略、Redis事务是否满足ACID、如何排查Redis中的慢查询
【Java面试题汇总】Redis篇(2023版)
|
5天前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
|
5天前
|
缓存 Java 数据库
【Java面试题汇总】Spring篇(2023版)
IoC、DI、aop、事务、为什么不建议@Transactional、事务传播级别、@Autowired和@Resource注解的区别、BeanFactory和FactoryBean的区别、Bean的作用域,以及默认的作用域、Bean的生命周期、循环依赖、三级缓存、
【Java面试题汇总】Spring篇(2023版)
|
5天前
|
存储 缓存 监控
【Java面试题汇总】JVM篇(2023版)
JVM内存模型、双亲委派模型、类加载机制、内存溢出、垃圾回收机制、内存泄漏、垃圾回收流程、垃圾回收器、G1、CMS、JVM调优
【Java面试题汇总】JVM篇(2023版)
|
5天前
|
存储 缓存 安全
【Java面试题汇总】多线程、JUC、锁篇(2023版)
线程和进程的区别、CAS的ABA问题、AQS、哪些地方使用了CAS、怎么保证线程安全、线程同步方式、synchronized的用法及原理、Lock、volatile、线程的六个状态、ThreadLocal、线程通信方式、创建方式、两种创建线程池的方法、线程池设置合适的线程数、线程安全的集合?ConcurrentHashMap、JUC
【Java面试题汇总】多线程、JUC、锁篇(2023版)
|
5天前
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)