Java后端真实面试题大全--高频/真题,准备春招的你能答上多少?

后端路线指导(4):后端春招秋招经验分享 工程能力的提升则主要来自实习做的模块任务,当然,实习生做的量其实不大,因此要学会看同事前辈们的需求和代码,看懂了就在简历中写是自己写的,只要面试时能表达清晰就行。的时间去看网课熟悉理论、看面试题,工程能力的提升主要完整地做了个入门的项目和一个完成了一半的难度高一些的项目,共计1.5个项目;· 刚开始自学的时候,老白只有c++语法基础,学校也有教学数据库、计算机网络、操作系统,但是教的程度懂得都懂,后续的数据库、计算机网络、操作系统的学习老白几乎都是从头再来,因此第一阶段就只有C++语法是扎实的,因此在。 阅读详情

简介

说明

本文分享Java后端真实高频面试题,有详细答案,保你稳过面试。题目包括:Java基础、多线程、JVM、数据库、Redis、Shiro、Spring、SpringBoot、MyBatis、MQ、ELK、SpringCloud、设计模式等。

包含从简单到困难、从高频到低频的题目,适合所有Java求职者,包括:刚入门的、三年以内经验、三到五年经验、五到十年经验等。

你要跳槽时是否遇到过如下问题?

  • 没有题库,不知道如何开始复习

  • 有题库,但题目超级多,根本看不完

  • 背完题库中的面试题了,却发现面试官的问题大部分都不在题库中,导致面试老是挂,拿不到offer

此套面试题的特点

这是一套真实、靠谱的题目。它的特点是:

  • 真实、靠谱(这套题是我在几十场面试中被面试官问到的问题)

  • 精选、高频(数量合适,很快就能看完)

  • 有难度和频率的标记(着急跳槽的可以只看频率为三颗星及以上的题目)

  • 很强大,面试官的问题基本都在这套题里(看过这套题的朋友都说,面试时85%以上的题目都在这些题目里,成为了offer收割机)

此套面试题的威力

看过的几个朋友和同事参加了面试后跟我说,他们面试被问到的问题大部分(85%以上)都在这个博客里。

我在面试时经常会遇到这种情况:95%的题目在本文中,我对答如流,不知道面试官是否会怀疑泄题了😂。这些面试也都很稳地拿到了offer。

难度与频率

面试题采用五角星来评判题目的难度和被问到的频率,最高为五颗星。难度对应岗位等级,从初级到高级;频率代表被问到的次数。

如果是三年以上的经验,只看难度为三颗星及以上的题目即可。如果是一两年经验,看个人水平,水平好些的可以看一颗星到五颗星所有题目(我知道有这样的朋友:虽然经验少,但爱学习,一两年的经验拥有普通人四五年的技术能力)。

粉丝福利:有粉丝私信问我有没有简历模板、PDF书籍等资料,我整理了一下,包含:简历模板、PDF书籍等。这些是我自己也在用的资料,真正实用、靠谱。资料可以免费获取
帮很多朋友、粉丝免费优化过简历,如果需要优化简历也可以来找我

基础

String

String, StringBuffer, StringBuilder区别(难度:★ 频率:★★★)
String对象数目(难度:★★★ 频率:★)
intern方法的作用(难度:★★★ 频率:★)
如何修改String对象的数据?(难度:★★★ 频率:★★)

static

static的5种用法(难度:★★ 频率:★)
为什么静态方法不能调用非静态方法和变量?(难度:★★★ 频率:★★★)

异常

异常类型(难度:★★ 频率:★★★★)
catch里return了,finally是否执行?(难度:★★ 频率:★)

IO

字节流与字符流区别?(难度:★★ 频率:★★)
BIO, NIO, AIO 区别?(难度:★★★ 频率:★)

JDK8

JDK8新特性(难度:★★ 频率:★★)
JDK8接口的default和static(难度:★★ 频率:★)
JDK8 Stream API 流操作包括哪些部分?项目中怎么用的Stream?(难度:★★ 频率:★)

语法

项目中对泛型的使用(难度:★★ 频率:★★)
接口与抽象类的区别?(难度:★★ 频率:★)

类库

SimpleDateFormat线程安全吗?怎么保证线程安全?(难度:★★★ 频率:★★★)

反射

Java反射:forName和classLoader的区别(难度:★★★ 频率:★)
反射机制中可以获取private成员的值吗?(难度:★★★ 频率:★)

可以。法1.通过setter和getter获得 法2:通过Field类提供的set()和get()方法

另见《Java开发实战经典 第2版》=> 15.4 Java反射机制的深入应用

其他

拆箱与装箱(难度:★ 频率:★)

集合

List

List与Set的区别(难度:★ 频率:★)
ArrayList与LinkedList异同点?(难度:★ 频率:★★)
List与数组的区别?(难度:★ 频率:★)
ArrayList是否线程安全?如何线程安全地操作ArrayList?(难度:★★★ 频率:★★★★★)
ArrayList扩容机制(难度:★★★ 频率:★★★★)
List.subList的坑?(难度:★★ 频率:★)
List如何安全删除(难度:★★ 频率:★)
List如何去重?(难度:★ 频率:★★)
List如何实现排序(难度:★ 频率:★★)
为什么引入迭代器?(难度:★★ 频率:★)

List哪种遍历性能好,为什么?(难度:★★ 频率:★)

Map

HashMap、TreeMap、LinkedHashMap和区别?(难度:★★ 频率:★★★★★)

J######DK8的HashMap和ConcurrentHashMap的改变?(难度:★★ 频率:★★★★)

HashMap数据结构、哈希冲突解决方法(难度:★★★ 频率:★★★★)
HashMap扩容的原理(难度:★★★ 频率:★★★★)
HashMap为什么线程不安全?如何线程安全地操作?(难度:★★★ 频率:★★★★★)
ConcurrentHashMap原理?(难度:★★★ 频率:★★★★★)
String的hashCode怎么实现的?(难度:★★ 频率:★)

hash:s[0] * 31^(n-1) + s[1] * 31^(n-2) + ... + s[n-1]

HashMap和HashSet的区别及其实现原理?(难度:★★ 频率:★)
  • HashMap:将key.hashCode()作为hash值存放,将value直接作为value。

  • HashSet:调用HashMap的put方法;将key.hashCode()作为hash值存放,将HashSet类的final变量PRESENT作为value。

HashMap如果使用对象最为key,要注意什么?(难度:★★ 频率:★)

重写hashCode和equals。

对象比较为什么重写hashCode和equals?(难度:★★ 频率:★)

重写equals方法时需要重写hashCode方法,主要是针对Map、Set等集合类型的使用;

a: Map、Set等集合类型存放的对象必须是唯一的;

b: 集合类判断两个对象是否相等,是先判断HashCode是否相等,如果HashCode返回TRUE,还要再判断equals返回值是否ture,只有两者都返回ture,才认为该两个对象是相等的。

JVM

运行时数据区

运行时数据区是怎样的?线程安全(即线程私有)的有哪些?(难度:★★ 频率:★★★★)
对象实例、类信息、常量、静态变量分别在运行时数据区的哪个位置?(难度:★★ 频率:★★)

类加载

Java类加载流程?初始化流程?(难度:★★ 频率:★★★★★)
JVM双亲委派模型(难度:★★★ 频率:★)

内存泄露

Java内存泄露什么时候会发生?(难度:★★ 频率:★★)
为什么内部类持有外部类可能内存泄露?如何解决?(难度:★★ 频率:★)
为什么ThreadLocal会导致内存泄露?如何解决?(难度:★★★ 频率:★★)

垃圾回收

引用类型及其含义(难度:★★ 频率:★★★)
finalize方法做什么用的?(难度:★ 频率:★)

垃圾回收时会调用此方法

可以作为GC.Roots的对象有哪些?(难度:★★★ 频率:★)
调用System.gc()会立刻垃圾回收吗?(难度:★★ 频率:★)
Minor GC和Full GC的触发时机。(难度:★★★ 频率:★★)
频繁Full GC如何排查(难度:★★★★ 频率:★)
JDK默认的垃圾回收器是什么?(难度:★★ 频率:★)
CMS垃圾回收器的流程?(难度:★★★ 频率:★★★★)
CMS和G1区别(难度:★★★ 频率:★★★)
CMS与其他老年代垃圾回收器的区别?(难度:★★★ 频率:★)

JVM调优

JVM通常设置哪些参数来调优?(难度:★★ 频率:★★★★)

其他

怎么分配堆外内存(难度:★★ 频率:★)

多线程

综合

项目中哪些地方用到了多线程?(难度:★★★ 频率:★★★★★)

  • 处理定时的任务。 比如:定时器定时处理数据进行统计等

  • 异步处理。 比如:发邮件, 记录日志, 发短信等。比如注册成功后发激活邮件

  • 批量处理,缩短响应时间。

线程的安全性问题体现在哪些方面?(难度:★★ 频率:★)
死锁产生的条件?(难度:★★ 频率:★)
i++是否线程安全?(难度:★ 频率:★)

不是线程安全的。要线程安全可以用java.util.concurrent.atomic

JMM内存结构(难度:★★★ 频率:★★)

synchronized

synchronized用于静态方法与普通方法有区别吗?(难度:★★ 频率:★★)
synchronized锁的升级是怎样的?(难度:★★★ 频率:★)

线程池

线程池缺点(难度:★★ 频率:★★)
BlockingQueue:线程池fixed, single, scheduled, cached对应的队列(难度:★★ 频率:★★★)
ThreadPoolExecutor有哪些参数?(难度:★★ 频率:★★★★★)
CPU密集与IO密集的场景如何设置线程池参数?(难度:★★★ 频率:★★★)
什么时候触发最大线程条件?(难度:★★ 频率:★★★★★)
线程池拒绝策略有哪些?默认是哪个?(难度:★★ 频率:★★★★)
线程池里的异常时如何处理的?(难度:★★ 频率:★)

J##UC

ReentrantLock显著缺点?(难度:★★★ 频率:★★)
CAS和AQS了解吗?原理是什么(难度:★★★ 频率:★★)
synchronized与ReentrantLock区别?(难度:★★ 频率:★★)
有哪些原子类?用过哪个?(难度:★★★ 频率:★)
项目里用了哪些锁?(难度:★★★ 频率:★★★)

单体项目里用到了ReentrantLock、synchronized;

单例模式里用到了synchronized

JDK8新增的异步编程了解吗?(难度:★★★ 频率:★)
多线程顺序交替执行的方法(有三个线程A,B,C,依次打印出A,B,C)(难度:★★★ 频率:★)
  • 方案1:
    Java多线程--使用阻塞队列实现顺序消费--方法/实例_IT利刃出鞘的博客-优快云博客_java 多线程消费队列

  • 方案2:模拟阻塞队列
    使用Object的wait(), notify(),使用一个互斥锁。
    MySQL
    综合问题

MyISAM与InnoDB区别(难度:★ 频率:★★★★)
sql注入怎么解决?(难度:★★★ 频率:★★)
三大范式(难度:★★ 频率:★)
怎么样幂等(难度:★★★ 频率:★★)
一条SQL查询语句的执行流程(难度:★★ 频率:★★)
大表分页的优化方法?(难度:★★★★ 频率:★)
为什么不要用外键?(难度:★★★ 频率:★)
批量往数据库导入1000万条数据方法?(难度:★★ 频率:★)

存储过程

数据库优化方式(难度:★★★ 频率:★)
建立索引、字段冗余(减少联表查询)、使用缓存、读写分离、分库分表

怎么调试存储过程(难度:★★ 频率:★)

MySQL的三种驱动类型 难度:★★ 频率:★)

事务

隔离级别是怎样的?脏读、幻读是什么意思?(难度:★★★ 频率:★★★★★)
隔离级别如何选用?(难度:★★ 频率:★★)
ACID(难度:★★ 频率:★)
隔离级别是如何实现的?(MVCC)(难度:★★★★ 频率:★★)
快照读与当前读 是怎样的?(难度:★★★★ 频率:★★)

索引

索引的种类(难度:★★ 频率:★★★)
数据库使用索引的缺点?(难度:★★ 频率:★★★)
创建索引的原则(难度:★★ 频率:★★★★)
索引什么时候会失效(难度:★★ 频率:★★★★★)
创建了A, B, C联合索引,使用B,C能否索引(难度:★★★ 频率:★★★★★)
LIKE什么时候走索引,什么时候不走索引?(难度:★★★ 频率:★★★)
ORDER BY是否走索引?(难度:★★★ 频率:★★)
聚集索引是什么?什么是回表?(难度:★★★★ 频率:★★★★)
索引原理;为什么采用B+树?(难度:★★★★ 频率:★)

锁

共享锁与独占锁的区别?(难度:★★ 频率:★)
什么时候会死锁?(难度:★★★★ 频率:★)

分库分表

什么时候考虑分库分表?分库分表要考虑什么问题?(难度:★★★ 频率:★)
原来没分库分表,后期如何分库分表?(难度:★★★★ 频率:★★)
分库分表的中间件(难度:★★ 频率:★★)

Sharding-JDBC、Mycat

水平分表,有哪些规则?(难度:★★★ 频率:★★★★★)
如何维护全局的id(难度:★★★ 频率:★★★★★)

语句

语句类笔试题(难度:★★★ 频率:★)
OR与IN的效率?(难度:★★★ 频率:★)
内联结,全(外)联结,左联结,右联结,的含义?(难度:★★ 频率:★)

Redis

基本问题

Redis数据类型及其使用场景(难度:★★★ 频率:★★★★★)
Redis的数据类型对应的底层结构是怎样的?(难度:★★★★ 频率:★★★)
Redis为什么很快?(难度:★★ 频率:★★★★★)
Redis是单线程为什么速度依然快?(难度:★★ 频率:★★)
Redis持久化AOF,RDB区别(难度:★★ 频率:★★★★)
持久化:长久下来AOF文件会很大怎么办?(难度:★★★ 频率:★★)
Redis有哪些原子命令?(难度:★★★ 频率:★)

Redis所有单个命令都是原子性的。

穿透、无底洞、雪崩、击穿 解决方案?(难度:★★★ 频率:★★★★★)
Redis的发布订阅机制及其使用场景(难度:★★★★ 频率:★★)
内存回收机制是怎样的?(或者说:淘汰策略)(难度:★★★ 频率:★★★★)
给一个key怎么知道是用的哪种数据类型?(难度:★ 频率:★)

用type命令。例如:type key1

为什么使用Redis,不用Memcache和MongoDB?(难度:★★ 频率:★★)
Redis与数据库如何同步?各个方式的缺点是什么?(难度:★★★ 频率:★★★)
Redis很慢,如何排查及解决?(难度:★★★★ 频率:★★)
多线程操作同一个Key如何保证一致性?(微服务部署多个实例时如何保证一致性?)(难度:★★★★ 频率:★)
秒杀的时候怎么使用Redis?(难度:★★★★ 频率:★★★)
布隆过滤器原理?什么时候会误判?(难度:★★★★ 频率:★★★)
用Redis如何实现延迟队列?(难度:★★★★ 频率:★)

分布式锁

Redis做分布式锁如何处理超时时间?比如:超时时间是5秒,但要执行20秒,相当于没锁住;超时时间是20秒,但只需执行5秒(浪费)(难度:★★★★ 频率:★★★)

设置中等长度的时间,线程执行完删除这个值;另起线程,定期去刷新这个值。Redisson的分布式锁就是这个方案

Redis实现分布式锁,集群环境如何处理主节点宕机这种情况?(难度:★★★★★ 频率:★)

使用RedLock红锁算法:若过半的Redis节点能够setnx成功则表示获取锁成功,类似于zk实现分布式锁方式。

集群

集群种类有哪些?(难度:★★ 频率:★)

主从、哨兵、Cluster

集群如何进行扩展?(难度:★★★ 频率:★)
集群不支持事务,如何解决?(难度:★★★★ 频率:★)
主从集群中主节点死了以后,是否还能使用?如何解决?(难度:★★★ 频率:★)

可以使用哨兵部署,自动故障转移。

读写分离时读写分别在哪个节点(难度:★★ 频率:★)

在主节点上写,在从节点上读。

集群(Cluster)

集群(Cluster)如何进行节点通信?(难度:★★★★ 频率:★★)
集群(Cluster)如何进行扩展(伸缩)?(难度:★★★ 频率:★★)
集群(Cluster)如何进行故障转移?(难度:★★★★ 频率:★★)

设计模式

项目里用到了哪些设计模式,怎么用的?(难度:★★★ 频率:★★★★★)
设计模式的原则(难度:★★ 频率:★)

这个我老是记不住,我用这个口诀:单开里依接合。对应每个原则的第一个字。

设计模式的类别(难度:★★ 频率:★)
单例模式的写法?(难度:★★ 频率:★★★★)
手写双重检验单例(为什么用volatile,为什么两次if判断)(难度:★★★ 频率:★★★)
静态代理与动态代理区别?(难度:★★★ 频率:★★★★★)

框架

Spring

IOC

Spring循环依赖解决方法及原理(难度:★★★★ 频率:★★★★)
Spring的循环依赖用的是三级缓存,为什么不是两级?(难度:★★★★ 频率:★★)
FactoryBean和BeanFactory区别(难度:★★★★ 频率:★★)
BeanFactory和ApplicationContext区别?(难度:★★★★ 频率:★)
bean的生命周期是怎样的(难度:★★★ 频率:★)
Spring几种scope区别(难度:★★★ 频率:★)
Spring容器的生命周期是怎样的?(难度:★★★ 频率:★)

AOP

AOP有哪几种通知,如果方法执行报异常,哪个通知不会执行?(难度:★★★★ 频率:★)
前置,后置,环绕,返回,异常。若报异常,返回不会执行。见:这里

SpringAOP解决了什么问题?(难度:★★★ 频率:★★)

SpringAOP实际开发过什么功能?(难度:★★★ 频率:★★★)
AOP原理?(难度:★★★★ 频率:★★★★★)

事务

Spring默认数据里隔离级别是什么?项目里用的哪个?(难度:★★★ 频率:★★)
Spring事务失效场景?(难度:★★★★ 频率:★★★★)
Spring事务传播机制?(难度:★★★★ 频率:★★)

其他

SpringBoot如何热部署?yml配置文件修改后是否也能及时更新?(难度:★★★ 频率:★)
SpringBoot自动配置原理?(难度:★★★★★ 频率:★)

SpringMVC

SpringMVC流程(难度:★★★★ 频率:★★★)
servlet的过滤器、拦截器、AOP的执行顺序 (难度:★★★ 频率:★★)

SpringBoot

SpringBoot的启动流程?(难度:★★★★ 频率:★★★★)
SpringBoot的动态代理默认用的哪个(cglib还是JDK)?(难度:★★★★ 频率:★★★★)

SpringBoot 1.5.x:默认使用JDK代理,SpringBoot 2.x:默认使用CGLIB代理。

怎么自己写SpringBootStarter(难度:★★★★ 频率:★)

MyBatis

MyBatis的#与$有什么区别?(难度:★★ 频率:★★★★)
MyBatis的原理?(Mapper是个接口,它的实现类在哪?)(难度:★★★★ 频率:★★)

_factorybean 使用

为什么MyBatis与Spring整合二级缓存会失效 ?(难度:★★★★ 频率:★)

中间件

MQ

综合

RabbitMQ,RocketMQ和Kafka区别(难度:★★ 频率:★★★★★)

RabbitMQ

RabbitMQ有哪些交换器?RabbitMQ的交换器与队列的关系?(难度:★★ 频率:★★★)
RabbitMQ的消息异常(丢失、重复、顺序、堆积)如何处理?(难度:★★★ 频率:★★★★★)
RabbitMQ消息是否会过期?(难度:★★★ 频率:★★)

默认不会过期。可以设置过期时间。

RabbitMQ的消息什么时候会放到死信队列?(难度:★★★ 频率:★)
RabbitMQ的延迟队列是怎样的?(难度:★★★ 频率:★★)
RabbitMQ的集群有哪几种部署方式?(难度:★★ 频率:★)

多机多节点,单机多节点

Kafka

为什么Kafka性能很高(难度:★★★ 频率:★★★)
Kafka的消息异常(丢失、重复)如何处理?(难度:★★★ 频率:★★★★)
Kafka不支持延迟队列,如果用到延迟队列,该如何实现?(难度:★★★★★ 频率:★★★)

Shiro

Shiro怎么根据url对应权限,流程是什么?(难度:★★★ 频率:★★★)

session存放在哪里?(难度:★★ 频率:★)

分布式

综合

分布式

CAP理论是什么?Zookeeper和Eureka分别放弃了什么?(难度:★★★ 频率:★★★)
分布式锁实现方式(难度:★★★ 频率:★★★★★)
2PC、3PC、TCC的区别及使用场景?(难度:★★★★ 频率:★★)
分布式session共享解决方案(难度:★★★ 频率:★★)
为什么微服务一定要有网关?(难度:★★★ 频率:★)

配置中心

如何把微服务的公共配置给拿出来?(难度:★★ 频率:★)

用spring.profiles.include,将公共的配置包含进去。

使用Nacos,Nacos支持公共配置

Nacos

Nacos如何续期?(难度:★★★ 频率:★★)
Nacos支持AP还是CP?(难度:★★★ 频率:★★)

两者都支持,选一种即可。(默认是AP)

Zookeeper

Zookeeper注册中心挂了,服务还能否调用?(难度:★★★ 频率:★★)

可以,因为客户端还有缓存。

ZK分布式锁,leader节点宕机了,会发生什么?(难度:★★★★ 频率:★)

进行选举(过半选举)

RPC

RPC框架有哪些?SpringCloud是否是RPC框架?(难度:★★ 频率:★)

Dubbo(阿里的)、gRPC(谷歌的),RMI(JAVA自带)、Thrift(Apache的)

SpringCloud不是rpc框架,它是分布式一整套解决方案,它的feign组件是rpc框架。

SpringCloud与Dubbo的区别?(难度:★★ 频率:★)
HTTP与RPC方式的区别?(难度:★★★ 频率:★)

SpringCloud

主要是:服务注册、负载均衡、限流、降级、熔断。首先要看其原理。

服务注册(Eureka)

Eureka都挂了,服务还能否调用?(难度:★★★ 频率:★★)

可以,因为客户端还有缓存。

微服务关闭了,但请求还会进来,如何解决?(难度:★★★ 频率:★)
如何续期?如何自我保护?(难度:★★★ 频率:★★)
熔断(Hystrix)(难度:★★★★★ 频率:★)
负载均衡(Ribbon)(难度:★★★★★ 频率:★)
SpringCloud限流用哪些组件?(难度:★★★ 频率:★)

sentinal、hystrix

配置中心

配置中心的配置修改后,服务不重启可以获得最新配置吗?(难度:★★ 频率:★)

可以的。可以使用消息总线(Spring Cloud Bus)

降级

ELK

正排索引与倒排索引的区别?(难度:★★★ 频率:★)
ES如何与数据库(如MySQL)同步数据?(难度:★★★ 频率:★★★)
ES集群的健康状态,绿色、黄色、红色分别什么含义?(难度:★★★ 频率:★★★)
ES写入数据的流程(难度:★★★★★ 频率:★★★)

综合

有没有遇到过什么比较复杂的问题,如何排查的?(难度:★★★★ 频率:★★★★★)
阅读过哪些源码?(难度:★★★★ 频率:★★★★)

Spring循环依赖的原理。

MyBatis的原理。

Hystrix的原理。

feign负载均衡的原理。

OOM如何排查?(难度:★★★ 频率:★★)

使用jprofiler,查看OOM时的堆输出。

Java进程消失,如何排查?(难度:★★★ 频率:★)
一个微服务起了多个实例,怎么让定时任务只在一个实例上执行?(难度:★★★ 频率:★)

用定时任务中间件。常用的有:XXL-JOB、PowerJob、quartz

如何处理SpringMVC中的异常? (难度:★★ 频率:★★★)

用全局异常处理:@ControllerAdvice + @ExceptionHandler。

从用户请求到数据返回的整个流程(难度:★★ 频率:★★★)
IaaS,PaaS和SaaS是什么?(难度:★★ 频率:★)
网站常见的安全漏洞有哪些?(难度:★★★ 频率:★)
oauth2是干什么用的,流程是怎样的?(难度:★★★★★ 频率:★★)
如何不停机更新服务?(难度:★★★★ 频率:★)
限流算法有哪些?(难度:★★★★★ 频率:★★★)

杂项

HTTP

HTTPS的详细流程(难度:★★★★ 频率:★★)
HTTP消息结构(难度:★★ 频率:★)
HTTP状态码及其含义(难度:★★ 频率:★★)

简记:正完重客服。(1xx:正在处理请求;2xx:请求处理完毕(成功);3xx:重定向(需要附加操作);4xx:客户端错误(导致服务器无法处理请求), 5xx:服务器错误(服务器处理请求出错))。

WebCocket,HTTP,Socket区别与联系?(难度:★★ 频率:★)
HTTP1.0和HTTP2.0的区别?(难度:★★ 频率:★)

Linux

Linux的5种IO模型(难度:★★★★ 频率:★)

数据结构与算法

常见排序算法的复杂度及稳定性(难度:★★★ 频率:★★)
常见查找算法的复杂度及稳定性(难度:★★★ 频率:★★)

网络

网络的5层协议的体系结构(难度:★ 频率:★★★)
TCP握手与挥手流程?为什么要三次?四次?(难度:★★★ 频率:★★)
TCP如何保证可靠传输?(难度:★★★ 频率:★)
服务器怎么主动向客户端主动推送?(难度:★★ 频率:★)
客户端去轮询(每秒查询一次);WebSocket;TCP长连接;UDP内网穿透

DNS劫持是怎样的?(难度:★★★ 频率:★)

劫持DNS服务器,修改此域名的解析结果为指定IP,导致对特定的网址不能访问或访问的是假网址,从而实现窃取资料或者破坏原有正常服务的目的。

Linux无法通过curl获得服务器主页数据如何排查?(难度:★★ 频率:★)

关防火墙、看host文件里边是否ip和域名绑定了

两个同网段Linux服务器在不安装客户端情况下如何传递文件?(难度:★ 频率:★)

scp命令

Linux命令

查看文本文件头部n行。(难度:★ 频率:★)

head -n 200 filename //200可替换为任一数字

查看文本文件末尾n行。(难度:★ 频率:★)

tail -n 200 filename //200可替换为任一数字

查看文本文件行数。(难度:★ 频率:★)

wc -l filename

Netty

Netty 是如何解决 TCP的拆包/粘包问题的?(难度:★★★ 频率:★)
编程题(难度:★★★ 频率:★★)

大数据

大数据量如何统计重复出现的次数?(难度:★★★★★ 频率:★)
怎么实时统计订单?(难度:★★★★★ 频率:★)

使用Storm框架。

要统计10分钟内订单的亏损,你会怎么设计?(难度:★★★★★ 频率:★)

使用Storm的窗口模式

要问面试官的问题

面试时需要了解下那个岗位的相关信息,防止踩坑。以下是我整理的技术面、领导面、HR面时要问面试官的问题:

问一面(技术面)面试官

一面(技术面)面试官一般是入职后的直接领导。

1.工作时间,是否双休。

上下班时间,中午休息多久(问研发比较准,hr回答的不准)

2.技术栈

  • 是单体还是分布式。(不是分布式的话,不建议去了)

  • 是否前后端分离。(不是前后端分离的话,不建议去了)

  • 技术栈是否够新。如果技术栈里有下边这些玩意,不要去了,这都老掉牙了。

  • 前端:struts、jsp (现在都用Vue、React这些了)

  • 后端:ssh(现在都是ssm了)

3.问直接上级职业方向

  • 问是偏技术还是偏业务。
    若上级偏技术
    你能学到比较多的技术;
    组内代码风格会比较好,好维护。
    会有一些技术预研的机会。

  • 了解直接上级的技术能力
    问:直接上级写过什么组件,自己造过什么轮子?
    问:直接上级预研过什么技术并落地?

4.网络管制

有的公司有网络管制,不能上网。(这样的不推荐去)

问二面面试官

二面面试官一般是部门领导。

1.部门研发人员组成

  • 后端前端分别多少人。(后端若低于5人,不太好)

  • 后端是否都是用Java。(如果同时有PHP、.net、C#等,不太好)

  • 主要业务是怎样的

2.问hr

  • 社保公积金
    五险一金缴纳基数及比例(小公司可能按最低基数缴纳)
    试用期是否缴纳五险一金(差的公司试用期不缴纳)

  • 几号发工资
    大部分公司10号;少部分15号(15号的一般效益有些差,不太好)

  • 试用期薪资发多少
    大部分公司试用期前三个月发80%(这个没啥关系)

  • 年终奖保底几个月
    除了网上能查到的大公司的年终奖比较准,其他公司年终奖基本是少发或者不发

  • 年假和全薪病假分别多少天
    小公司一般没有全薪病假,可能病假期间薪资打折

java笔试题大集合及答案(另附各大公司笔试题) 60、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用? 答:有两种实现方法,分别是继承Thread类与实现Runnable接口 用synchronized关键字修饰同步方法 反对使用stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。suspend()方法容易发生死锁。调用suspend()的时候,目标线程会停下来,但却仍然持有在这之前获得的锁定。此时,其他任何线程都不能访问锁定的资源,除非被"挂起"的线程恢复运行。对任何线程来说,如果它们想恢复目标线程,同时又试图使用任何一个锁定的资源,就会造成死锁。所以不应该使用suspend(),而应在自己的Thread类中置入一个标志,指出线程应该活动还是挂起。若标志指出线程应该挂起,便用wait()命其进入等待状态。若标志指出线程应当恢复,则用一个notify()重新启动线程。 61、sleep() 和 wait() 有什么区别? 答:sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。 wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。 62、同步和异步有何异同,在什么情况下分别使用他们?举例说明。 答:如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。 当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。 63、启动一个线程是用run()还是start()? 答:启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。 64、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 答:不能,一个对象的一个synchronized方法只能由一个线程访问。 65、请说出你所知道的线程同步的方法。 答:wait():使一个线程处于等待状态,并且释放所持有的对象的lock。 sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。 notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。 Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。 66、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 答:多线程有两种实现方法,分别是继承Thread类与实现Runnable接口 同步的实现方面有两种,分别是synchronized,wait与notify 67、线程的基本概念、线程的基本状态以及状态之间的关系 立即下载

相关推荐

中海博舟(Java开发工程师)Java笔试题

中海博舟(Java开发工程师)Java笔试题

海信JAVA开发笔试题_JAVA设计模式之【工厂方法模式】

看例子1.TV产品接口,负责播放public interface TV // TV接口{public void play();}2.TV工厂接口,负责生产产品public interface TVFactory // TV接口工厂{public TV produceTV();}3.TV具体产品类,海尔,海信public class HaierTV implements TV{public void...

weixin_28796657的博客 1573

思澈sdk-新建lcd

co5300至此有3个同ID的驱动,在co5300xxxx.c的LCD_DRIVER_EXPORT(co5300, LCD_ID, &lcdc_int_cfg, &CO5300_drv, LCD_PIXEL_WIDTH, LCD_PIXEL_HEIGHT, 2);2 在customer\peripherals\Kconfig_lcd中添加如下配置(注意修改的地方有两个LCD_USING_TFT_CO5300_143)5 在该文件中的config LCD_DPI配置项下添加:(这里300为DPI)

gongyuan073的专栏 1388

10.14海信笔试

岗位是软件(嵌入式),题目中会涉及到单片机的内容,在其他如tp的笔试中没有;编程题采用核心代码模式,不用处理输入输出nice!

qq_41333671的博客 578

ANSYS Discovery 2023R1 入门:手把手教你玩转几何模型参数化(附历史追踪避坑指南)

本文详细介绍了ANSYS Discovery 2023R1中几何模型参数化建模的全流程,包括基础设置、参数化实战技巧及历史追踪避坑指南。通过Workbench集成和智能参数控制,工程师可以高效完成设计迭代,特别适合需要频繁调整几何模型的仿真场景。文章还提供了参数丢失的预防策略和工业应用实例,帮助用户快速掌握这一提升设计效率的核心技能。

weixin_33693070的博客 462

tiktok算法协议研究

经过上述分析,可以确定目标字符串来源于一段 JSON 数据,而这段 JSON 数据来自于一个经过加密的本地文件。对字符串 "sdi_v2" 进行 SHA-1 计算,得到 20 字节的结果;将第一步得到的数据进行MD5计算,生成16字节的结果;将第二步的结果转换为十六进制字符串,从而得到 32 字节的密钥。写这种算法分析的帖子真的是太无聊了,就先分析到这里吧,后续有机会再来谈下被加密的本地文件是怎么来的!!自我感觉TT的算法并不难,就是量太大了,所以我想问问有没有感兴趣的朋友来一起分析,欢迎联系。

2503_90751938的博客 2577

青岛海信网络java面试题_Java常见面试题(六、网络)

六、网络1.http 响应码 301 和 302 代表的是什么?有什么区别?301 Moved Permanently被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个 URI 之一。如果可能,拥有链接编辑功能的客户端应当自动把请求的地址修改为从服务器反馈回来的地址。除非额外指定,否则这个响应也是可缓存的。302 Found请求的资源现在临时从不同的 URI 响...

weixin_42531923的博客 1291

华硕天选3 win11+ubuntu20.04双硬盘双系统配置(包括ubuntu重启后无法成功进入、没有wifi图标的设置)

1、制作系统盘 2、分区 3、重启电脑按F2

baidu_38431960的博客 1万+

JAVA后台开发常见面试题

4、本地消息表(本地消息表顾名思义就是会有一张存放本地消息的表,一般都是放在数据库中,然后在执行业务的时候 将业务的执行和将消息放入消息表中的操作放在同一个事务中,这样就能保证消息放入本地表中业务肯定是执行成功的)BASE理论是eBay的架构师Dan Pritchett提出的,它的思想是:“即使无法做到强一致性,但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性”。任何一个没有发生故障的节点,会在合理的时间内返回一个正常的结果,也就是对于每一个请求总能够在有限时间内返回结果。

范文聪 3070

ABAP调用启信宝API

方法参数定义如下 源代码如下 method qxb_http_get. data:lv_url type string. "===============初始化=============================================== "获取http实例 cl_http_client=>create_by_destination( exporting destination = space importing

u012232542的博客 1311

实验吧 损坏的U盘镜像

        从网站上可以下载一个CTF.hdd的文件,使用winHex打开,可以知道这是一个exFAT格式的文件。        用binwalk检查一下,发现文件中包含两个zip文件,使用foremost进行提取。一个压缩包需要密码解压缩,另一个解压后发现Password.txt文件。说明另一个压缩包的密码与checksum有关。        通过查看exFAT文件系统格式可以得知如何计算...

xingyyn78的博客 3512

【2022Java后端研发面试题】--牛客网

【❤️2022Java后端研发面试题】 ❤️ 说一说ConcurrentHashMap的实现原理 ❤️介绍一下分代回收机制 ❤️说一说你对Spring AOP的理解? ❤️可谓是非常受挫的AI面了

qq_44005101的博客 1523

Python通用编程规范-09 安全编程规范

1.9 安全编程规范 1.9.1 异常行为 1.9.1.1 禁止抑制或者忽略已检查异常 【说明】: 编码人员常常会通过一个空的或者无意义的catch块来抑制捕获的已检查异常。每一个catch块都应该确保程序只会在继续有效的情况下才会继续运行下去。因此,catch块必须要么从异常情况中恢复,要么重新抛出适合当前catch块上下文的另一个异常以允许最邻近的外层try-catch语句块来进行恢复工作。异常会打断应用原本预期的控制流程。例如,try块中位于异常发生点之后的任何表达式和语句都不会被执行。因此,异常必须

zhao12501的博客 2871

经历过秋招的失败后,Android开发该如何准备好春招?

虽然春招相对秋招来说火爆程度略低,但仍然具有一定的难度。除了秋招失利的同学外,十二月份考研和考公结束后,一部分考研失败的同学也会参与春招。此外,还有许多年底毕业的海归也会加入春季招聘队伍。因此,我们不可忽视春招,更应该重视起来!唯一能做的就是准备充分的应对策略,特别是针对那些“招满即止”的公司,先投递简历的人有优先被筛选的机会。有需要面试题的朋友,扫描下方二维码即可免费领取!!

datian1234的博客 943

SAP物料主数据中的销售视图。这是一个在销售与分销模块中至关重要的核心主数据,直接关系到从报价到交货的整个销售流程

SAP物料主数据的销售视图是销售流程的核心基础,它定义了物料如何被销售、定价、开票和交付。销售视图包含五个关键控制点:1)基本销售数据控制物料销售状态;2)销售组织数据决定销售渠道和产品分类;3)通用物料数据管理销售描述和税务分类;4)交货计划控制交付参数;5)开票计划管理定价规则。这些设置直接影响销售流程顺畅度、数据准确性、客户满意度、财务合规性和业务灵活性。建议将销售视图创建纳入新产品引入流程,并建立规范的维护机制,确保业务变化时及时更新配置。

金牌架构师 666

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

四面腾讯2024春招Java,历经(电话,视频面试)已拿实习Offer

腾讯CDG 春招提前批 已拿Offer个人背景:非科班(地信),本科双非,硕士C9,无实习经验和工程项目(写到这边自己都觉得自己太菜了)。既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。

VIP129370的博客 924

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

备战2024Android春招,你准备好了吗?

距离2024只剩半个月了,不知道大家找到心仪的工作了没呀?秋招受挫的小伙伴可不要有世间纷纷扰扰与我无关,直接摆烂,坐等社招的这个想法!!!毕竟应届生这个身份还是很吃香的!!!有需要面试题的朋友,扫描下方二维码即可免费领取!!

xiaokangss的博客 203

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

疫情过后的这个春招,真的会回暖吗?

今天是正月初八,不知道大家有没有复工,反正我今天已经坐在办公室里开始码字了。这个春节假期相信大家过的都不错,可以看到今年无论是回家探亲、还是外出旅游的人数,这个春节假期相信大家过的都不错,可以看到今年无论是回家探亲、还是外出旅游的人数,都比疫情放开前两年有了爆发式的增长。假期我躺在被窝里刷抖音,每当刷到哪个景点人满为患到走不动路的时候,都觉得自己宅在家里哪也不去真的是太对了。好了回归正题,很多小伙伴们非常关注的一个问题,?在聊春招之前,我觉得还是有必要再来科普一下春招的时间线。

Androiddddd的博客 238

讲个恐怖故事:春招提前开始了!(内附时间线)

是的,你没看错,24届春招提前批已经陆续开岗了!

xiaokangss的博客 2051

软件测试面试题及答案,2025春招必看版

整份文档一共有将近 200 页,全部为大家展示出来肯定是不太现实的,为了不影响大家的阅读体验就只展示了部分内容,还望大家海涵,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习!、MySQL、Web测试、接口测试、APP测试、Python、Selenium、性能测试、LordRunner、计算机网络、数据结构与算法、逻辑思维、人力资源等模块面试题,命中率杠杠的。PS:参考答案有几十万字,就没有全部放上来了,打印版本超过290多页。真题,高清打印版打包带走,横扫。

2401_83396248的博客 759

2026 年 Java 面试宝典,横扫春招 + 社招 + 秋招

是一个的问题。每年到了金三银四&金九银十这种跳槽黄金季就会有一大批程序员出来面试找工作。。这不今年都快过完了,已经有不少小伙伴出去面试过了,跟我反馈的效果都不是很理想,也有很多粉丝后台私信我说想要一份最新的,高质量的面试突击手册,年底还想冲一冲。LZ前段时间也是偶然得到这份阿里巴巴Java架构六大核心专题面试宝典,昨天看了下,内容还是挺全的,都是些大厂的面试真题汇总。​。

sjkflw121150的博客 764

2023震撼首发!Java 面试突击大合集!带你摸熟 15+ 互联网大厂面试高频考点

作为一个“好兵”,我从不打无准备的仗,毕竟知己知彼才能游刃有余。无论现在的你处于什么水平,技术拥有怎样的深度,都不得不承认,任何时候都需要你能够主动地去学习,面试也要提前做准备。如果你的职业发展有更长远的打算和规划,那就更应该沉稳下来,脚踏实地,一步一步。若你有需要面试的打算,那么先考察一下自己准备了多少吧?以上这份「Java 面试考点大全」送给你,祝你一切顺利。

wdj_yyds的博客 184

万人血书求 阿里P8架构师耗时三年总结:Java春招高频面试题库

前言 金三银四想必大家或多或少都有面试的想法,面试前也都会有刷刷题的习惯。不过网上有太多的Java面试题库了,大部分都潦潦草草,没有知识储备的小伙伴一般很难看下去,看完后也不会留下印象。最近也是有粉丝私信我说求一份 图文并茂,易于理解,代码讲解,题目高频?的面试题库。 作为当代互联网雷锋,既然你们都开口问我要了,我肯定不能坐视不理!下面我就把我前段时间偶然得到的一份系统的面试题库分享给大家! 题库内容涵盖:基础+JVM+多线程&并发+Spring+MyBatis+SpringBoot+MySQ.

spring1776的博客 169

征服Java面试官!2021春招BAT面试真题详解

前言 MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。是一个基于Java的持久层框架。 在国内市场来说,Mybatis的使用率比Hibernate更高,也更加流行。个人认为其流行的主要原因在于:国内绝大部分项目都是面向表结构编程的,Mybatis使用起来更加方便。 Alibaba绝对是国内互联网行业的天花板,很多优秀的开源项目都是阿里大佬分享出来的,因此今天就跟大家分享

m0_56830725的博客 246

JAVA 后端学习路线 & 面试经验总结

女票准备找后端开发岗,特此总结了下后端开发的学习路线、知识点梳理和常见面试题。 关于C++和 JAVA 的选择,题主更推荐 JAVA,因为JAVA岗位更多,选择更广。 一、后端学习路线 这部分主要是梳理一下后端开发的学习路线,相当于列一个学习大纲,做到心中有数 Java 后端开发学习路线(修订版) 一份完整的后端学习路线 干货:21 张思维导图,柠檬哥肝了半个月的「后端技术学习路线」长啥样? 二、JAVA知识点梳理 这部分,汇总JAVA的重要知识点,可以就着学习,并以书籍和视频作为补充 github

weixin_41888257的博客 874
上一篇: 来来来,快速撸 Redis 一遍!
下一篇: 阿里四年,整理了一份很全的Java后端学习路线
Java技术那些事儿
博客等级 码龄5年 2306粉丝 2584原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值