Java八股文,YYDS!字节最新秋招面试题,“死记”这些你也可以斩获字节offer

Netty-自定义线程池处理长耗时业务 在Netty中,EventLoop 和 EventExecutorGroup 提供的普通任务不能解决长耗时业务处理引起的 I/O 线程阻塞问题,究其原因:在 Netty 中,一个 channel 在它的生命中期内只注册于一个 EventLoop,而一个 EventLoop 在它的生命周期内只和一个线程绑定,一个给定的 channel 的 I/O 操作都是由相同的线程进行处理。为此不能直接在该线程上进行长耗时业务处理。为了解决这个问题,通常的做法是:自定义线程池,把长耗时的业务都丢到线程池中去处理。 阅读详情

Java 一面基本上都是基础题,同样是 CURD 的活,谁更熟练要谁,比如下面这些面试题,八股文越熟练越容易通过 Java 面试。

下面会给大家详解的介绍一下每个技术点的必问问题!

一、Java 基础

  • 1.JDK动态代理和CGLIB动态代理的区别
  • 2.静态代理和动态代理的区别
  • 3.ArrayList和LinkedList有什么区别?
  • 4.重写和重载的区别
  • 5.Java 8的接口新增了哪些特性?
  • 6.抽象类和接口(Java7)的区别
  • 7.为什么要有 hashCode
  • 8.hashCode()介绍
  • 9.hashCode 与 equals (重要)
  • 10.Java中异常分为哪些种类?
  • 11.内部类的分类有哪些
  • 12.什么是内部类?
  • 13.什么是方法的返回值?返回值的作用是什么?
  • 14.静态方法和实例方法有何不同?
  • 15.静态变量和实例变量区别
  • 16.构造方法有哪些特性?
  • 17.在Java中定义一个不做事且没有参数的构造方法的作用
  • 18.break ,continue ,return 的区别及作用
  • 19.static注意事项
  • 20.static应用场景
  • 21.static的独特之处
  • 22.static存在的主要意义
  • 23.this与super的区别
  • 24.super关键字的用法
  • 25.String类的常用方法有哪些?
  • 26.char型变量中能否能不能存储一个中文汉字,为什么?
  • 27.是否可以继承String类?
  • 28.两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对 不对?
  • 29.构造器(constructor)是否可被重写(override)?
  • 30.谈谈你对多态的理解?
  • 31.Java中实现多态的机制是什么?
  • 32.new一个对象的过程和clone一个对象的区别?
  • 33.深克隆和浅克隆?
  • 34.Java中为什么要用 clone?
  • 35.Java 中操作字符串都有哪些类?它们之间有什么区别?
  • 36.String str = “i” 和String str = new String(“1”)一样吗?
  • 37.final finally finalize的区别
  • 38.final 有什么用?
  • 39.Java有哪些数据类型
  • 40.什么是Java注释
  • 41.用最有效率的方法计算2乘以8?
  • 42.Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?
  • 43.&和&&的区别?
  • 44.Java有没有goto?
  • 45.float f=3.4;是否正确?
  • 46.访问修饰符public,private,protected,以及不写(默认)时的区别?
  • 47.Java语言有哪些特点
  • 48.什么是Java程序的主类?应用程序和小程序的主类有何不同?
  • 49.说下面向对象四大特性

特意整理了这些面试题,涵盖 Java 基础、集合、并发、MySQL、Kafka 等高频知识点,第一版有 16 万字,并且还在持续完善中,每个月都会更新一版。

给大家看一下目录。

二、Java IO

  • http://1.IO多路复用的底层原理
  • 2.缓冲区是什么意思?
  • 3.通道是个什么意思?
  • 4.同步、异步、阻塞、非堵塞
  • 5.阻塞与非阻塞
  • 6.同步与异步
  • 7.什么是AIO
  • 8.什么是NIO
  • 9.什么是BIO
  • 10.流一般需要不需要关闭,如果关闭的话在用什么方法,一般要在那个代码块里面关闭比较好,处理流是怎么关闭的,如果有多个流互相调用传入是怎么关闭的?
  • 11.什么是节点流,什么是处理流,它们各有什么用处,处理流的创建有什么特征?
  • 12.PrintStream、BufferedWriter、PrintWriter的比较?
  • 13.字节流和字符流的区别?
  • 14.如何实现 java 序列化?
  • 15.什么是 java序列化?
  • 16.Java 中有几种类型的流?

三、Java虚拟机

  • 1.如何判断一个常量是废弃常量 ?
  • 2.程序计数器为什么是私有的?
  • 3.JRE、JDK、JVM 及 JIT 之间有什么不同?
  • 4.JVM调优命令有哪些?
  • 5.说一下 JVM 调优的工具?
  • 6.介绍一下类文件结构吧!
  • 7.如何判断一个类是无用的类?
  • 8.Java会存在内存泄漏吗?请简单描述。
  • 9.Minor Gc和Full GC 有什么不同呢?
  • 10.说一下堆内存中对象的分配的基本策略
  • 11.对象的访问定位有哪几种方式?
  • 12.说一下Java对象的创建过程
  • 13.Java 8 为什么要将永久代(PermGen)替换为元空间(MetaSpace)呢?
  • 14.说一下堆和栈的区别
  • 15.怎么打破双亲委派模型?
  • 16.为什么需要双亲委派模式?
  • 17.怎么打出线程栈信息?
  • 18.说说你知道的几种主要的JVM参数
  • 19.什么是happen-before原则?
  • 20.什么是内存屏障?
  • 21.什么是指令重排序?
  • 22.JVM中一次完整的GC流程是怎样的,对象如何晋升到老年代?
  • 23.JVM新生代中为什么要分为Eden和Survivor?
  • 24.什么情况下会发生栈内存溢出?
  • 25.Java对象的布局了解过吗?
  • 26.Tomcat是怎么打破双亲委派机制的呢?
  • 27.什么是双亲委派机制?
  • 28.说下有哪些类加载器?
  • 29.说说类加载的过程
  • 30.ZGC收集器中的染色指针有什么用?
  • 31.说说ZGC垃圾收集器的工作原理
  • 32.说说G1垃圾收集器的工作原理
  • 33.说说CMS垃圾收集器的工作原理
  • 34.你了解过哪些垃圾收集器?
  • 35.对象都是优先分配在年轻代上的吗?
  • 36.GC Roots有哪些?
  • 37.JVM怎么判断一个对象是不是要回收?
  • 38.Java里有哪些引用类型?
  • 39.你熟悉哪些垃圾收集算法?
  • 40.字符串常量存放在哪个区域?
  • 41.程序计数器有什么作用?
  • 42.栈帧里面包含哪些东西?

四、Kafka

  • 1.简述Follower副本消息同步的完整流程
  • 2.JavaConsumer为什么采用单线程来获取消息?
  • 3.Controller发生网络分区(NetworkPartitioning)时,Kafka会怎么样?
  • 4.Kafka的哪些场景中使用了零拷贝(ZeroCopy)?
  • 5.分区Leader选举策略有几种?
  • 6.consumer_offsets是做什么用的?
  • 7.Kafka能手动删除消息吗?
  • 8.LEO、LSO、AR、ISR、HW都表示什么含义?
  • 9.Leader总是-1,怎么破?
  • 10.如何估算Kafka集群的机器数量?
  • 11.Broker的HeapSize如何设置?
  • 12.监控Kafka的框架都有哪些?
  • 13.如何设置Kafka能接收的最大消息的大小?
  • 14.阐述下Kafka中的领导者副本(LeaderReplica)和追随者副本(FollowerReplica)的区别
  • 15.解释下Kafka中位移(offset)的作用
  • 16.什么是消费者组?
  • 17.kafka如何实现延迟队列?
  • 18.Kafka中是怎么体现消息顺序性的?
  • 19.为什么Kafka不支持读写分离?
  • 20.Kafka中的消息是否会丢失和重复消费?
  • 21.kafka的message格式是什么样的?
  • 22.如果leadercrash时,ISR为空怎么办?
  • 23.kafkaunclean配置代表啥?会对sparkstreaming消费有什么影响?
  • 24.kafkaproducer打数据,ack为0,1,-1的时候代表啥,设置-1的时候,什么情况下,leader会认为一条消息commit了
  • 25.kafkaproducer如何优化打入速度?
  • 26.kafka为什么那么快?
  • 27.什么情况下一个broker会从ISR中被踢出去?
  • 28.kafkafollower如何与leader同步数据?
  • 29.kafka中的zookeeper起到什么作用?可以不用zookeeper么?
  • 30.kafka中的broker是干什么的?
  • 31.Kafka中的ISR、AR又代表什么?ISR的伸缩又指什么?
  • 32.为什么要使用kafka?为什么要使用消息队列?

五、MySQL

  • 1.解释MySQL外连接、内连接与自连接的区别
  • 2.Mysql如何优化DISTINCT?
  • 3.自增主键最大ID记录,MyISAM和InnoDB分别是如何存储的
  • 4.MySQL主从复制原理流程
  • 5.delete、truncate、drop区别
  • 6.key和index的区别
  • 7.MySQL优化
  • 8.行级锁定的缺点
  • 9.行级锁定的优点
  • 10.在MVCC并发控制中,读操作可以分成哪几类?
  • 11.MVVC了解过吗
  • 12.表分区有什么好处?
  • 13.表分区与分表的区别
  • 14.什么是表分区?
  • 15.什么情况下应不建或少建索引
  • 16.说一说三个范式
  • 17.什么是存储过程?有哪些优缺点?
  • 18.关心过业务系统里面的sql耗时吗?统计过慢查询吗?对慢查询都怎么优化过?
  • 19.超大分页怎么处理?
  • 20.MySQL的binlog有有几种录入格式?分别有什么区别?
  • 21.varchar(10)和int(10)代表什么含义?
  • 22.如果要存储用户的密码散列,应该使用什么字段进行存储?
  • 23.字段为什么要求定义为notnull?
  • 24.主键使用自增ID还是UUID?
  • 25.为什么要尽量设定一个主键?
  • 26.在哪些情况下会发生针对该列创建了索引但是在查询的时候并没有使用呢?
  • 27.MySQL有哪些日志,分别是什么用处?
  • 28.MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义
  • 29.MySQL的redo日志的刷盘时机
  • 30.MySQL的redo日志和undo日志分别有什么用?
  • 31.为什么InnoDB一定会生成主键?
  • 32.InnoDB如果没有设置主键的话,它内部会怎么处理?
  • 33.InnoDB删除某条记录后,内部会怎么处理?
  • 34.InnoDB主键索引跟非主键索引在数据存储上的差异
  • 35.InnoDB的数据是怎么存储的?
  • 36.MyIsam的数据是怎么存储的?
  • 37.InnoDB有聚簇索引吗?MyIsam呢?
  • 38.什么是聚簇索引?
  • 39.MySQL索引的类型
  • 40.有了解过“回表”的概念吗?什么情况下会出现“回表”?
  • 41.事务的隔离级别了解过吗?
  • 42.说一下什么是事务的ACID属性吧
  • 43.了解过哪些存储引擎?各有什么优缺点?
  • 44.在建立索引的时候,都有哪些需要考虑的因素呢?
  • 45.Hash索引和B+树索引有什么区别或者说优劣呢?
  • 46.索引是个什么样的数据结构呢?
  • 47.什么是索引?

八、Netty

  • 1.Netty高性能体现在哪些方面?
  • 2.说说Netty的执行流程?
  • 3.Netty 支持哪些心跳类型设置?
  • 4.Netty 发送消息有几种方式?
  • 5.Netty 中有哪些重要组件?
  • 6.Netty 的心跳机制了解么?
  • 7.Netty 的零拷贝了解么?
  • 8.Netty 的应用场景了解么?
  • 9.为什么要用 Netty?
  • 10.Netty 是什么?
  • 11.UDP协议会有粘包拆包的问题吗?为什么?
  • 12.了解过粘包拆包吗?为什么会出现粘包拆包?怎么处理粘包拆包?
  • 13.什么是Reactor模型?Reactor的3种版本都知道吗?

九、RabbitMQ

  • 1.vhost 是什么?起什么作用?
  • 2.RabbitMQ 有几种广播类型?
  • 3.要保证消息持久化成功的条件有哪些?
  • 4.如何确保消息正确地发送至RabbitMQ?如何确保消息接收方消费了消息?
  • 5.RabbitMQ有哪些重要的角色?
  • 6.RabbitMQ的使用场景有哪些?
  • 7.RabbitMQ 怎么避免消息丢失?
  • 8.RabbitMQ 的消息是怎么发送的?
  • 9.若cluster中拥有某个queue的owner node失效了,且该queue 被声明具有 durable属性,是否能够成功从其他node上重新声明该 queue ?
  • 10.客户端连接到cluster中的任意node上是否都能正常工作?
  • 11.在单node系统和多node构成的cluster系统中声明queue、exchange,以及进行 binding会有什么不同?
  • 12.什么是元数据?元数据分为哪些类型?包括哪些内容?与cluster相关的元数据有哪 些?元数据是如何保存的?元数据在cluster中是如何分布的?
  • 13.RabbitMQ有什么优缺点?
  • 14.什么是RabbitMQ?为什么使用RabbitMQ?
  • 15.死信队列和延迟队列的使用
  • 16.如何避免消息重复投递或重复消费?
  • 17.如何确保消息接收方消费了消息?
  • 18.消息怎么路由?
  • 19.消息如何分发?
  • 20.消息基于什么传输?

十、Redis

  • 1.Redis如何做内存优化?
  • 2.Redis中的管道有什么用?
  • 3.Redis和Redisson有什么关系?
  • 4.Redis有哪些适合的场景?
  • 5.MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证 redis 中的数据都 是热点数据?
  • 6.Redis 集群方案什么情况下会导致整个集群不可用?
  • 7.Redis 集群方案应该怎么做?都有哪些方案?
  • 8.Redis String的内部编码有哪些?
  • 9.用Redis做延时队列,具体应该怎么实现?
  • 10.Redis在集群种查找key的时候,是怎么定位到具体节点的?
  • 11.Redis的持久化了解过吗?
  • 12.Redis在什么情况下会触发key的回收?
  • 13.Redis key的淘汰策略有哪些?
  • 14.Redis事务机制了解过吗?
  • 15.使用Redis统计网站的UV,应该怎么做?
  • 16.Redis中的大key怎么处理?
  • 17.Redis中的热key怎么处理?
  • 18.缓存失效?缓存穿透?缓存雪崩?缓存并发?
  • 19.Redis集群如何选择数据库?
  • 20.Redis如何设置密码及验证密码?
  • 21.为什么 Redis 需要把所有数据放到内存中?
  • 22.Redis 官方为什么不提供 Windows 版本?
  • 23.Redis是单线程还是多线程?
  • 24.Redis为什么那么快?
  • 25.一个字符串类型的值能存储最大容量是多少?
  • 26.Redis的全称是什么?
  • 27.Redis主要消耗什么物理资源?
  • 28.Redis有哪些数据结构?
  • 29.Redis相比memcached有哪些优势?
  • 30.什么是Redis?简述它的优缺点?

十一、Spring

  • 1.@Component和@Bean的区别是什么?
  • 2.Spring框架中用到了哪些设计模式?
  • 3.Spring MVC的工作原理了解嘛?
  • 4.Spring中的bean生命周期了解过吗?
  • 5.Bean 工厂和 Application contexts 有什么区别?
  • 6.ApplicationContext通常的实现是什么?
  • 7.Spring AOP 实现原理
  • 8.有哪些不同类型的IOC(依赖注入)?
  • 9.解释自动装配的各种模式?
  • 10.Resource 是如何被查找、加载的?
  • 11.BeanFactory和ApplicationContext有什么区别?
  • 12.Spring 事务底层原理
  • 13.Spring事务中有哪几种事务传播行为?
  • 14.Spring事务中的隔离级别有哪几种?
  • 15.Spring事务管理的方式有几种?
  • 16.将一个类声明为Spring的bean的注解有哪些?
  • 17.Spring中的单例bean的线程安全问题了解吗?
  • 18.Spring中的bean的作用域有哪些?
  • 19.谈谈自己对于Spring AOP的理解
  • 20.Spring AOP和AspectJ AOP有什么区别?
  • 21.谈谈自己对于Spring IOC的理解
  • 22.Spring Boot手动装配有哪几种方式?
  • 23.Spring是怎么解决循环依赖的?
  • 24.Spring由哪些模块组成?
  • 25.使用Spring框架的好处是什么?
  • 26.什么是spring?

十二、Spring Boot

  • 1.SpringBoot 2.X有哪些新特性?与1.X有什么区别?
  • 2.保护SpringBoot应用有哪些方法?
  • 3.Spring Boot的核心注解是哪些?他由哪几个注解组成的?
  • 4.Spring Boot中如何解决跨域问题?
  • 5.比较一下Spring Security和Shiro各自的优缺点?
  • 6.如何实现Spring Boot应用程序的安全性?
  • 7.什么是Swagger?你用Spring Boot实现了吗?
  • 8.如何使用配置文件通过 Spring Boot 配置特定环境的配置?
  • 9.如何使用 Spring Boot 部署到不同的服务器?
  • 10.如何在 Spring Boot 中添加通用的 JS 代码?
  • 11.什么是嵌入式服务器?我们为什么要使用嵌入式服务器呢?
  • 12.为什么我们需要 spring-boot-maven-plugin?
  • 13.Spring Initializr 是创建 Spring Boot Projects 的唯一方法吗?
  • 14.怎么使用 Maven 来构建一个 SpringBoot 程序?
  • 15.如何在 Spring Boot 中禁用 Actuator 端点安全性?
  • 16.Spring Boot 中的监视器是什么?
  • 17.如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?
  • 18.Spring 和 SpringBoot 有什么不同?
  • 19.创建一个 Spring Boot Project 的最简单的方法是什么?
  • 20.Spring Boot 有哪些优点?
  • 21.什么是springboot

十三、Spring Cloud

  • 1.Eureka和zookeeper都可以提供服务注册与发现的功能,两者的区别
  • 2.SpringCloud Config可以实现实时刷新吗?
  • 3.什么是 Spring Cloud Bus?
  • 4.如何实现动态Zuul网关路由转发?
  • 5.ZuulFilter有哪些常用方法?
  • 6.什么是服务雪崩效应?
  • 7.什么是服务熔断?什么是服务降级?
  • 8.什么是zuul?
  • 9.说说Eureka的自我保护机制?
  • 10.Eureka的工作原理?
  • 11.什么是Netflix Feign?它的优点是什么?
  • 12.什么是Hystrix断路器?我们需要它吗?
  • 13.什么是Hystrix?它如何实现容错?
  • 14.Spring Cloud由哪些组件组成?
  • 15.服务注册和发现是什么意思?Spring Cloud如何实现?
  • 16.使用Spring Cloud有什么优势?
  • 17.什么是 Spring Cloud?

十四、Zookeeper

  • 1.zookeeper负载均衡和nginx负载均衡区别
  • 2.Zookeeper 和 Dubbo 的关系?
  • 3.Zookeeper的典型应用场景
  • 4.ZAB和Paxos算法的联系与区别?
  • 5.Zookeeper对节点的watch监听通知是永久的吗?为什么不是永久的?
  • 6.集群支持动态添加机器吗?
  • 7.集群最少要几台机器,集群规则是怎样的?
  • 8.Zookeeper有哪几种部署模式?
  • 9.zk节点宕机如何处理?
  • 10.分布式集群中为什么会有Master?
  • 11.zookeeper是如何保证事务的顺序一致性的?
  • 12.数据同步
  • 13.Zookeeper 下 Server工作状态
  • 14.服务器角色
  • 15.ACL权限控制机制
  • 16.服务端处理Watcher实现
  • 17.客户端注册Watcher实现
  • 18.Zookeeper Watcher 机制
  • 19.Zookeeper文件系统
  • 20.ZooKeeper提供了什么?
  • 21.ZooKeeper是什么?
  • 22.Zookeeper怎么实现服务注册?
  • 23.Zookeeper Leader选举过程是怎样的?
  • 24.Zookeeper是怎么保证数据一致性的?
  • 25.Zookeeper怎么实现分布式锁?
  • 26.了解过Zookeeper的ZAB协议吗?
  • 27.Zookeeper有哪些节点类型?

十五、多线程

  • 1.你将如何使用thread dump?你将如何分析Thread dump?
  • 2.在Java中Lock接口比synchronized块的优势是什么?你需要实现一个高效的缓存, 它允许多个用户读,但只允许一个用户写,以此来保持它的完整性,你会怎样去实现 它?
  • 3.高并发、任务执行时间短的业务怎样使用线程池?并发不高、任务执行时间长的业务 怎样使用线程池?并发高、业务执行时间长的业务怎样使用线程池?
  • 4.同步方法和同步块,哪个是更好的选择?
  • 5.Hashtable的size()方法中明明只有一条语句”return count”,为什么还要做同步?
  • 6.Semaphore有什么作用?
  • 7.单例模式的线程安全性
  • 8.Java中用到的线程调度算法是什么?
  • 9.Java中如何获取到线程dump文件
  • 10.什么是线程安全?
  • 11.线程池都有哪几种工作队列?
  • 12.说一说几种常见的线程池及适用场景?
  • 13.synchronized 关键字和 volatile 关键字的区别
  • 14.什么是线程的阻塞问题?如何解决?
  • 15.什么是线程的饥饿问题?如何解决?
  • 16.什么是活锁?
  • 17.什么是线程安全问题?如何解决?
  • 18.为什么我们调用 start() 方法时会执行 run() 方法,为什么我们不能直接调用 run() 方法?
  • 19.什么是线程死锁?如何避免死锁?
  • 20.并发与并行的区别?
  • 21.虚拟机栈和本地方法栈为什么是私有的?
  • 22.程序计数器为什么是私有的?
  • 23.什么是线程和进程?
  • 24.什么是多线程的上下文切换?
  • 25.什么是自旋锁?
  • 26.AQS支持几种同步方式?
  • 27.什么是AQS?
  • 28.CAS的问题
  • 29.什么是CAS?
  • 30.CyclicBarrier和CountDownLatch的区别
  • 31.线程池的优点?
  • 32.创建线程有哪些方式?
  • 33.并发编程三要素?
  • 34.什么是悲观锁?什么是乐观锁?
  • 35.Java里的线程有哪些状态?
  • 36.如何避免“伪共享”?
  • 37.“伪共享”出现的原因是什么?
  • 38.了解过什么是“伪共享”吗?
  • 39.说一下synchronized锁升级过程
  • 40.ReentrantLock与synchronized的区别
  • 41.说说synchronized的实现原理
  • 42.sleep() 方法和 wait() 方法的区别和共同点?
  • 43.Thread.sleep(0)的作用是什么?

十六、分布式

  • 1.SOA和微服务架构有哪些区别?
  • 2.BASE理论了解过吗?
  • 3.如何保障请求执行顺序
  • 4.分布式系统的接口幂等性设计
  • 5.如何设计一个秒杀系统?
  • 6.如何防止表单重复提交?
  • 7.分布式 Session了解过吗?如何实现?
  • 8.正向代理和反向代理的区别
  • 9.负载均衡的实现方案有哪些?
  • 10.了解过哪些负载均衡算法?
  • 11.TCC了解过吗?
  • 12.什么是二阶段提交(2PC)?什么是三阶段提交(3PC)?
  • 13.分布式事务了解过吗?
  • 14.什么是CAP定理?
  • 15.雪花算法了解过吗?

十七、计算机网络

  • 1.HTTP协议包括哪些请求?
  • 2.在浏览器中输入url地址到显示主页的过程
  • 3.拥塞控制
  • 4.滑动窗口和流量控制
  • 5.TCP为什么要四次挥手
  • 6.TCP建立连接时为什么要传回 SYN
  • 7.为什么TCP要三次握手
  • 8.说一说TCP的三次握手
  • 9.简述ICMP、TFTP、HTTP、NAT、DHCP协议
  • 10.简述ARP地址解析协议工作原理
  • 11.简述IP地址的分类?
  • 12.说一说TCP、IP四层模型
  • 13.你能说一说OSI七层模型?
  • 14.有哪些私有(保留)地址?
  • 15.TCP对应的协议和UDP对应的协议
  • 16.请简述TCP和UDP的区别

十八、设计模式

  • 1.Spring 当中用到了哪些设计模式?
  • 2.Dubbo 源码使用了哪些设计模式?
  • 3.举出一个例子,在这种情况你会更倾向于使用抽象类,而不是接口?
  • 4.工厂模式与抽象工厂模式的区别?
  • 5.给我一个符合开闭原则的设计模式的例子?
  • 6.OOP中的组合、聚合和关联有什么区别?
  • 7.适配器模式和代理模式之间有什么不同?
  • 8.适配器模式与装饰器模式有什么区别?
  • 9.适配器模式是什么?什么时候使用?
  • 10.简述一下你了解的 Java 设计模式(总结)
  • 11.说说你所熟悉或听说过的 j2ee 中的几种常用模式?
  • 12.设计模式的类型
  • 13.Java怎么实现单例模式?
  • 14.设计模式六大原则?
  • 15.接口是什么?为什么要使用接口而不是直接使用具体类?

十九、数据结构与算法

  • 1.谈一谈,id全局唯一且自增,如何实现?
  • 2.什么是B+树?
  • 3.什么是B树?
  • 4.为什么要设计后缀表达式,有什么好处?
  • 5.请你讲讲LRU算法的实现原理?
  • 6.如何在一个1到100的整数数组中找到丢失的数字?
  • 7.二分查找了解过吗?
  • 8.数组和链表的区别
  • 9.介绍一下,堆排序的原理是什么?
  • 10.如何知道二叉树的深度?
  • 11.TreeMap和TreeSet在排序时如何比较元素?Collections工具类中的sort()方法如何 比较元素?
  • 12.什么是算法?

二十、微服务

  • 1.作为服务注册中心,Eureka比Zookeeper好在哪里?
  • 2.Eureka的基本架构是什么?
  • 3.什么是 Eureka服务注册与发现?
  • 4.你所知道的微服务技术栈有哪些?
  • 5.什么是服务熔断,什么是服务降级
  • 6.请谈谈对SpringBoot 和SpringCloud的理解
  • 7.微服务之间是如何通讯的?
  • 8.什么是微服务?
  • 9.Spring Cloud 和dubbo的区别?
  • 10.服务注册和发现是什么意思?Spring Cloud 如何实现?
  • 11.Spring Cloud 解决了哪些问题?
  • 12.单片,SOA 和微服务架构有什么区别?
  • 13.微服务有哪些特点?
  • 14.微服务有哪些优缺点?

二十一、消息队列

  • 1.为什么使用消息队列?
  • 2.如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万 消息持续积压几小时怎么解决?
  • 3.各种MQ的比较
  • 4.消息队列积压怎么办
  • 5.消息如何保证幂等性
  • 6.Kafka的消息是有序的吗?如果保证Kafka消息的顺序性?
  • 7.使用消息队列,如果处理重复消息?
  • 8.使用消息队列,怎么确保消息不丢失?
  • 9.消息队列的弊端有哪些?
  • 10.消息队列有哪些应用场景?

二十五、Java8

  • 1.Lambda表达式的参数列表与Lambda箭头运算符有何不同?
  • 2.是什么使JavaSE8优于其他?
  • 3.什么是Java8中的MetaSpace?它与PermGen Space有何不同?
  • 4.Lambda函数的优点
  • 5.什么是Lambda表达式?
  • 6.解释Java8中间操作与终端操作?
  • 7.hashMap原理,java8做的改变
  • 8.Java8中的可选项是什么?
  • 9.Java8支持函数编程是什么意思?
  • 10.抽象类和接口的异同?
  • 11.Java 8 新特性简介

二十六、Java高并发

  • 1.ForkJoin框架
  • 2.Java里的阻塞队列
  • 3.AQS
  • 4.CopyOnWriteArrayList
  • 5.Nginx多进程模型是如何实现高并发的?
  • 6.常见的同步工具类?
  • 7.常见的并发容器?
  • 8.死锁的避免与诊断?
  • 9.什么是锁顺序死锁?
  • 10.数据库死锁?
  • 11.什么是线程调度器(Thread Scheduler)和时间分片(Time Slicing)?
  • 12.有三个线程T1,T2,T3,怎么确保它们按顺序执行?
  • 13.如何测试并发量?
  • 14.Java中Unsafe类详解
  • 15.进程调度算法
  • 16.同步和异步有何不同,在什么情况下分别使用它们?举例说明
  • 17.线程间如何通讯
  • 18.进程间如何通讯
  • 19.什么是线程
  • 20.什么是进程

二十七、Java集合

  • 1.Iterator是什么?
  • 2.为何Map接口不继承Collection接口?
  • 3.为何Collection不从Cloneable和Serializable接口继承?
  • 4.集合框架中的泛型有什么优点?
  • 5.Java集合框架是什么?说出一些集合框架的优点?
  • 6.谈谈对HashMap 构造方法中初始容量、加载因子的理解
  • 7.HashMap 默认的初始化长度是多少?
  • 8.ArrayList和LinkedList的区别?
  • 9.ArrayList 和 Vector 的区别?
  • 10.ConcurrentHashMap实现原理
  • 11.ConcurrentHashMap和Hashtable的区别?
  • 12.HashMap与HashTable的区别?
  • 13.常见的集合底层实现
  • 14.常见的集合有哪些?
  • 15.Comparable和Comparator接口有何区别?
  • 16.Collections类是什么?
  • 17.队列和栈是什么,列出它们的区别?
  • 18.BlockingQueue是什么?
  • 19.哪些集合类提供对元素的随机访问?
  • 20.如何决定选用HashMap还是TreeMap?
  • 21.我们能否使用任何类作为Map的key?
  • 22.hashCode()和equals()方法有何重要性?
  • 23.fail-fast与fail-safe有什么区别?
  • 24.Iterater和ListIterator之间有什么区别?
  • 25.Enumeration和Iterator接口的区别?

八股文,YYDS!

我花了半个月的时间,特意整理了这些面试题,涵盖 Java 基础、集合、并发、MySQL、Kafka 等高频知识点,第一版有 16 万字,并且还在持续完善中

膜拜!华为大牛总结Java面试八股文(究极版),不管你工作几年,都得看看 这套面试题是华为大佬联合众多的一线架构师,同时还请到了阿里P8良禽作为面试官,真实还原了面试的场景。这套还有一大特色,它不仅会教会大家如何去刷面试题,同时还会结合技术点进行深入的剖析不仅让大家通过面试而且真正的去工作的时候也可以轻松应对,本篇会涉及到java基础内容、jvm、多线程与高并发、mysql、redis、spring、SpringBoot、springcloud、微服务、分布式、消息中间... 阅读详情

相关推荐

面试常见的八股文记录

本文是记录平常经常看到的面试八股文问题,其问题主要是从leetcode中的讨论区来的,答案大多是都是从优快云上找到的,并没有做过多讲解,大家可以看看: /* 顺序从后往前 */ //2021.05.10 微信|后端开发|面经(21届秋招)|2021| 1、腾讯面试题:寻找一个长度为n+1,且值为1~n的数组中相同的两个元素最优算法 (1)数学加法 (2)异或 https://blog.youkuaiyun.com/weixin_44295653/article/details/1126275...

weixin_38428439的博客 7681

【剑指Offer】JDK 线程池使用不当引发的饥饿死锁问题

01、前言 使用线程池时会忽略死锁问题, 但是只要代码写的"六"没啥是不可能的 文章代码及部分理念引自 线程池使用不当也会死锁 02、什么是死锁 死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去 此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程 死锁定义来源: 死锁-百度百科 简化来说就是: 一组相互竞争资源的线程因为互相等待,导致"永久"阻塞的现象 我们通过一个 Demo 简单理解下 publi

Long-Tai 1074

Java面试八股文整理

小红书Java后端面试 1. 二叉树的特性 时间复杂度计算过程写一下 二叉树是一棵树,且每个节点都不能有多于两个的儿子,且二叉树的子树有左右之分,次序不能颠倒。 二叉树的性质 在二叉树中的第i层上至多有2^(i-1)个结点(i>=1)。 深度为k的二叉树至多有2^k - 1个节点(k>=1)。 对任何一棵二叉树T,如果其叶结点数目为n0,度为2的节点数目为n2,则n0=n2+1。 **满二叉树:**深度为k且具有2^k-1个结点的二叉树。即满二叉树中的每一层上的结点数都是最大的结点数。 **

qq_34494438的博客 5万+

大模型面试必备:全面八股文及答案集锦,500道大模型面试题附答案,看完我直接进字节

层归一化 Layer Norm 在 大语言模型 LLMs 中的不同位置 有什么区别么?如果有,能介绍一下区别么?在大语言模型(Large Language Models)中,Layer Norm(层归一化)可以应用在不同位置,包括输入层、输出层和中间隐藏层。这些位置的归一化有一些区别:输入层归一化:在输入层应用 Layer Norm 可以将输入的特征进行归一化,使得输入数据的分布更加稳定。这有助于减少不同样本之间的分布差异,提高模型的泛化能力。

2401_84204207的博客 1219

死磕JAVA10余年,呕心整理出了核心知识点已经做成PDF,无私奉献

想在面试、工作中脱颖而出?想在最短的时间内快速掌握 Java 的核心基础知识点?想要成为一位优秀的 Java 工程师?本篇文章能助你一臂之力!目前正值招聘求职旺季,很多同学对一些新技术名词都能侃侃而谈,但对一些核心原理理解的不够透彻,特别是对 Java的一些核心基础知识点掌握的不够,例如JVM、常用的算法和数据结构等。正所谓万丈高楼平地起,只有把基础掌握的牢固,才能走的更远,面对不断更新的技术才能快速掌握,同时在面试、工作中也更能脱颖而出!

javaAnPou的博客 3万+

SECS/GEM协议学习教程

摘要:SECS/GEM是半导体制造设备通信的国际标准,定义了主机系统与设备间的通信规范,包括设备控制、状态监控、数据采集等功能。协议采用分层架构(应用层、消息层、传输层、物理层),支持关键消息类型如S1F13(建立通信)、S2F13(数据采集)等。通信流程涵盖建立连接、数据交换和终止会话,并通过状态变量(SVID)、事件(CEID)等实现实时交互。典型应用包括设备初始化、报警处理及配方管理,需处理数据类型(如U2、A、L)和通信调试问题。

GitHub个人仓库地址:https://github.com/feiyuluoye ; 个人塔罗牌占卜平台:http://118.126.82.12:8080/ ; 欢迎广大Coding友共同交流讨论。 2067

字节大佬整理最新2023Java面试八股文,大厂必备神器

那么,为什么在计算机技术相关岗位面试中,存在“八股文”内容的测评呢?国内的互联网面试,恐怕是现存的、最接近科举考试的制度。我国的八股文确实是独树一帜。以美国为例,北美工程师面试比较重视算法(Coding),近几年也会加入Design轮(系统设计和面向对象设计OOD)和BQ轮(Behavioral question,作为面试问题)。

stone_tmp的博客 1562

如何用Deep OC-SORT提升多目标跟踪精度?实战配置与性能优化指南

本文是一份针对开发者的Deep OC-SORT多目标跟踪实战指南。详细解析了如何通过部署其核心的“动态外观记忆”与“相机防抖”模块来有效应对遮挡与抖动,从而显著提升跟踪精度与连续性。内容涵盖从环境搭建、参数调优到性能压榨的全流程,并提供针对不同场景的配置建议与工程落地技巧。

f9g0h的博客 670

大厂面试八股文,盘点曾经风靡一时的计算机方面的技术和语言,字节跳动8年老Java面试官经验谈

看完美团、字节、腾讯这三家的一二三面试问题,是不是感觉问的特别多,可能咱们真的又得开启面试造火箭、工作拧螺丝的模式去准备下一次的面试了。开篇有提及我可是足足背下了Java互联网工程师面试1000题,多少还是有点用的呢,换汤不换药,不管面试官怎么问你,抓住本质即可!能读到此处的都是真爱Java互联网工程师面试1000题。

2401_84103844的博客 936

51单片机-点亮LED和蜂鸣器

ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。ULN2003是大电流驱动陈列,多用于单片机、只能仪表、PLC、数字量输出卡等控制电路中。可直接驱动蜂鸣器、继电器等负载。void delay(u16 i) // i等于1大约10uswhile(i--);//取反,高低电平不断变化,产生脉冲delay(10);// 周期200us。

三日沐水 1130

因果推断(二):因果推断涉及的ITE、ATE、CATE等效应

因果效应也称为**处理效应(Treatment effect)**是用于评判干预与否的结果差异的指标(处理变量对结果变量的影响)。比如在接受治疗组中,如果这些人不接受治疗,这组人接受治疗和不接受治疗的效应差异是多少。定义为实验组中每个个体的处理效应差异,比如一个个体在接收治疗和不接受治疗的两个处理方式的健康程度得分的差。但是一个人因为不可能。比如我们想探究接受治疗的男性用户和不接受治疗的男性用户的平均效果差异就是CATE。前面说ITE是无法观测的,是因为一个人不能同时接受治疗又不接受治疗,这里关键的就是。

Y1n的博客 3717

前端八股文面经大全:字节跳动-存储部门一面(2026-05-29)·面经深度解析

前端面试深度解析:组件开发与工程化实践 本文针对字节跳动前端一面面试题进行深度解析,重点探讨组件开发流程、工程化实践和性能优化等核心问题。文章涵盖了SDD+TDD开发流程、Story文档覆盖度保障、AI辅助文档工具链(MCP/Skills/llm.txt)、逻辑与UI层分离实现、工厂函数性能分析等关键技术点。特别对组件库版本管理、大图加载优化、安全功能扩展、鉴权流程等实际工程场景提供了具体解决方案。同时包含React Hook原理、组件通信等常见面试题的深入解答,适合中高级前端开发者提升工程化能力和面试准备

weixin_50077637的博客 537

安川机器人SOCKET 通讯

命令 功能 参数 示例 返回 SelectJob 选择程序 JobName LineNo SelectJob TEST 0 #SelectJob,Ok StartJob 启动程序 JobName StartJob TEST #StartJob,Ok Pause 暂停当前程序 - Pause #Pause,Ok Continue 继续当前程序 - Continue #Continue,Ok ServoOn 伺服上电 - ServoOn #ServoOn,Ok ServoOf...

记录学习内容 8288

前端八股文面经大全:字节TikTok前端一面(2026-04-17)·面经深度解析

本文解析了字节跳动TikTok前端一面的深度面试内容,涵盖JS核心、设计模式、响应式适配等关键考点。面试采用压力追问方式,重点考察单例模式应用、rem适配原理、双token鉴权机制等实战能力。特别针对单例模式扩展性问题提出工厂模式等解决方案,并详细解释了阿里flexible适配方案的核心实现。文章还提供了树形结构遍历、flex布局等代码示例,帮助读者理解高频面试问题的回答思路和技术细节。

weixin_50077637的博客 592

基于共识的捆绑算法CBBA在多无人机多任务调度中的实现

在捆绑过程中,每个无人机根据自己的任务清单和其他无人机的任务清单,确定一个被称为“束”的集合。通过合理的任务分配和无人机协作,CBBA算法能够实现最优的任务调度,提高了多无人机系统的效率和执行能力。在每一轮迭代中,无人机根据自己的当前任务和位置信息将任务清单发送给其他无人机,并接收其他无人机发送过来的任务清单。通过比较其他无人机的任务清单和自身的任务清单,每个无人机可以更新自己的任务分配情况。在这一步中,每个无人机根据自己选择的新任务,更新自身的任务清单,并将更新后的清单发送给其他无人机。

持续更新 1156

【工业相机】【深度4】线扫描相机 - 选型实践

前言: 在工业相机的深度应用的前三节里面,针对工业相机的选型、参数、应用计算等做了一些说明。期中,在深度3里面,在说明工业相机在速度场景下的应用的时候,专门开了一节介绍线扫描相机行频速度的计算公式和镜头的选型的大致说明,感觉说的还是不够透彻,切应用举例也不充分,这里特别开一个章节,基于线扫描相机的特点对比面阵相机的特点进行比较详细的说明,尤其对线扫描相机的选型实践,尤其是线扫描相机的分辨率选择计算、行频选择计算进行了充分的说明和计算说明,希望能够给用到线扫描工业相机的同学给予一定的参考: 阐述: 在编

山云的专栏 2万+

字节总结的2023(全网)最全面的java八股面试题精选

字节总结的2023(全网)最全面的java八股面试题精选

三拾的博客 653

第五章 TTM 后备管理:5.6系统内存域

系统内存域由 TTM 内置资源管理器管理,通过 ttm_tt 承载页信息,依赖 ttm_pool 提供物理页。ttm_tt 管理页数组、缓存属性与状态标志,支持外部页与换出机制。初始化分 ttm_tt_init 与 ttm_sg_tt_init,生命周期包括创建、填充、释放与销毁。页池针对 write-combined、uncached 及一致性 DMA 分配的页进行缓存,提升性能并减少 TLB 刷新。分配时高阶优先、批量设置缓存属性,回收时清零后归还池中,确保高效复用。

图形/计算GPU的驱动与虚拟化技术分享园地 2573

5 年 Java 经验,字节、美团、快手核心部门面试总结(真题解析)

卷,继续卷

程序员囧辉 2万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

2021-02-08

@[TOC](目录) ## Java基础 ### 1. String 和StringBuffer和 StringBuilder的区别? >[String,StringBuffer与StringBuilder的区别??](https://blog.youkuaiyun.com/rmn190/article/details/1492013) String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) ### 2. sleep() 区间wai.

李意文的博客 1016

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

JAVA面试八股文整理

目录Java基础Java多线程Java线程池为什么要用线程池线程池的创建方式线程的生命周期线程的五个生命周期僵死进程 Java基础 Java多线程 Java线程池 为什么要用线程池 降低资源消耗。通过重复利用已创建的线程降低线程创建、销毁线程造成的消耗。 提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配、调优和监控。 提供更多更强大的功能:线程池具备可拓展性,允

qq_35571432的博客 2万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Java面试八股文,助力每一个加薪梦想

背面试八股文了!

m0_68102173的博客 274

进一线大厂稳了 这套Java面试题和八股文 刷完立马进字节

这是福利文,只喜欢看干货的朋友可以略过。 最近又赶上跳槽的高峰期(金九银十招聘旺季),好多读者都问我要有没有最新面试题,之后我就找华为朋友整理了一份21年金九银十高频Java面试题题库,覆盖范围从应届生一只包含到架构师面试真题; 整个资料包,包括 Spring、Spring Boot/Cloud、Dubbo、JVM、集合、多线程、JPA、MyBatis、MySQL、大数据、Nginx、Git、Docker、GitHub、Servlet、JavaWeb、IDEA、Redis、算法、面试题等几乎覆盖了 Jav

jinggege_795的博客 1699

从 V8 角度揭秘你不知道的面试八股文

杨毅臻,微医前端技术部首席治安管理官。 了解 V8 何为揭秘八股文 常规操作: 如果你是面试官: 打开网站直接搜索面试题,背下来直接问 如果你是求职者: 打开网站直接搜索面试题,背下来直接回答 这只是一个答案与问题匹配的过程,懂不懂不重要,因此会被套上八股文的壳子。 加分操作: 在已知的知识点上补充自己的思考并成体系的表述 本文将从 V8 出发从原理到面试题进行一个串联,帮助你形成一个比较好的体系。 为什么要了解 V8 计算机技术日益精进,随着底层优化,原来的答案或许早已过.

ur home 1447

字节跳动实习面经(已拿offer附攻略)

进字节啦!

bigsai 3万+

全网最全JAVA面试八股文,终于整理完了

全网最全JAVA面试八股文,终于整理完了

javaAnPou的博客 2万+
上一篇: 用大约 10 万字的内容对 Java 的核心知识点和常见的 1000 多道面试题,做了详细的介绍
下一篇: 极限一个月,突破Java高频面试题和核心技术,跳槽涨薪6K
跟着我学Java
博客等级 码龄6年 660粉丝 1341原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值