GoGoCoder千篇面经梳理-新增题目(第3弹)
GoGoCoder千题奉送第三版来了,给大家带来新汇总得题目, 里面包含年后最新的实习**题目,助力小伙伴们春招实习。文末附上前两期的千题链接。
附:美团内推码,需要的同学们可以找我内推啊。
Java
Java基础
- Java中基本类型所占字节数
- 内部类的使用场景
- i++ 和++i哪个快
- 谈谈对代码规范的理解
- java的参数传递方式与C有什么不同
- java 如何启动jar包
- java文件如何编译成机器码
- 什么是字节码?字节码的作用是什么
- Java一次编译到处运行的原因
- 指针和引用的区别
- Java中main方法的启动过程
- 泛型的逆变与协变
- 浮点数与定点数的区别
- 给定字节码文件,如何获取类的方法与属性
- 静态方法是否可以重写,重写会有什么问题
- newInstance反射初始化对象,对构造函数有什么要求
- 如何实现字节码的注入
- servlet的生命周期
- 所有类的父类是谁
- static是否能继承,为什么
- 驼峰命名怎么用
- 多态的应用场景
- 注解有什么好处
- 反射的Class对象的存放位置
- 反射获取对象的三种形式
设计模式
- 5万块钱的红包,分成1k份,预计抢红包的人有十亿,主持人说三二一后弹出抢红包窗口
- 设计一个短链接生成系统
- 如何实现游客模式和管理员模式
- 游戏外挂穿墙的实现原理
- java信号机制实现消费者生产者模型?
- 如何在文件很大且内存有限的条件下,统计Top100的单词(文本内容为以空格隔开的单词)
- 从需求、设计、实现、架构、反馈、优缺点等讲一件做过的项目
- 设计一个微服务系统需要考虑哪些问题
- 哪些设计模式用到了多态?
- 如何实现发评论需要登录,看评论不需要登录
- 如何解决秒杀模块“订单超时回库存”的问题
- 如何统计接口调用的次数
- 如何设计解决连接建立,服务端未响应、连接未正常中断的问题
- 设计一个安检系统要求排队依次过安检,没用通过的从后面继续排队,年龄大的可以插队到年龄小的前面,只能插队10次
- 如何设计一个爬虫
- 设计一个图像存储系统,需要设计哪些类
- 如何设计一个熔断器(失败统计、开闭设计、限流设计)
- 线程池中用到的设计模式有哪些
- 如何设计用户关注和粉丝功能
- Flink设计一个统计重复id的系统
- 有一台机器,上面存有许多大文件和小文件,需要拷贝这些文件到另一个机器上,这些机器都已经能被RestAPI等服务访问,包含Get/Set等方法,现在设计一个系统,这个系统可以在一台或者多台机器上运行,实现高效复制功能,请问如何进行架构设计
- 如何实现2G以上的电影上传
Java框架
- 如何实现依赖注入
- springboot中注解的执行顺序
- Restful规范put和post的区别
- AOP如何实现日志增强
- spring如何接收一个post请求
- Elasticsearch底层实现
- 数据库连接池的配置信息
- Elasticsearch写入数据可以进行哪些优化
- Spring 如何调用tomcat的
- gRpc、thrift和dubbo的优缺点
- springCloud有哪些组件对应的作用是什么
- JWT实现单点登录及流程描述
- 如何理解k8s
- mybatis-plus和mybatis有什么区别
- 是否可以用UUID代替JWT生成的令牌作为Token
- mybtais和数据库如何交互
- @Controller和@Service为什么是单例的
- Restful API和普通API的区别
Java容器
- hashmap与skiplist的区别
- 迭代器是什么
- LinkedList底层数据结构
- Collection和Collections的区别
- 如何实现HashMapd的遍历
- HashMap的get与put方法时间复杂度分析
- HashMap中get方法的效率与负载因子的关系
- HashMap的rehash过程
- linkedList添加元素的流程
- HashMap默认大小是多少
- 举例说明hashMap的使用场景
- HashMap如何实现有序
- Collections中采取的排序方式与具体实现
- HashMap优化resize的过程
Java并发
- 手写两个线程轮流打印A,B
- 同步和异步的区别
- 线程池核心线程数量和最大线程数的问题
- 线程池刚刚启动时有没有活跃线程
- 版本号+时间戳解决ABA问题,版本号如何实现
- 多线程操作static变量是否会有影响
- 线程池构造函数的作用
- newCachedThreadPool详细机制
- 线程池最多同时容纳多少个任务怎么计算
- ConcurrentModificationException什么情况会发生
- 线程池的队列满了如何处理
Java虚拟机
- 如何针对GC执行堆内存调优
- 编译的字节码文件是如何被JVM获取
- 编译的字节码文件的主要内容有哪些
- G1的region的实现原理
- 如果是大体积的数据存进G1回收器中如何处理
- JVM如何实现的跨平台
- CMS+Parallel old与G1的清除算法原理具体差别
- zgc为什么这个快
分布式
- 如何保证最终一致性
- 如何实现分布式ID
- 简述雪花算法
- zookeeper的框架
- zk、nacos、Eureka的区别
- 对比分析现有分布式锁的实现方案
Java服务器
- 谈谈你对微服务的理解
JavaIO
- 现有IO模型的对比分析
OS
Linux命令
- linux删除文件的命令
- 如何使用命令在服务器部署数据库
- 如何查看系统后台任务
- 性能分析的命令
- 跨服务器拷贝文件
- Linux系统文件中内容统计(行号、单词书、字节数)
- 如何获取指定进程监听的端口
- shell命令查询closewait有多少个
- 如何通过ps查看指定进程的信息
- shell命令处理文本文件去除每行的前缀
- Linux命令有哪几种可使用的通配符
- 更改linux的系统时间
进程管理
- 某一线程挂起是否会影响进程
- 一个ipv4地址的端口,最多能有多少个客户端能同时与它连接
- 如何对进程加锁
- 进程控制块(PCB)包含哪些内容
- 某个线程崩溃是否会对其他线程造成影响
- 进程上下文切换的过程(说明保存哪些信息)
- 缺页中断后发生了什么
- 进程是如何做到资源隔离的
- 线程控制块(TCB)包含哪些内容
- 进程栈动态增长机制
- 进程的同步方式
- 进程栈与线程栈的区别
OS基础
- 内核态的实现原理
- 硬中断和软中断的区别
- 系统调用和函数调用的区别
- Window中path环境变量的作用
- CopyOnWrite机制的实现原理
- 列举了解的寄存器
内存管理
- 交换内存与虚拟内存的区别
- 操作系统给进程分配的内存是否固定
- CPU、磁盘、网卡之间如何实现隔离
- CPU的多级缓存机制
文件管理
- shell中一个进程读写文件时另外一个线程是否可以删除该文件
- 文件描述符的分配与排列规则
- 操作系统执行echo hello > a.txt 命令的底层过程(文件描述符、内核打开文件表、内核的i-node表等)
设备管理
- 为什么SSD随机读取比磁盘快
Mysql
Mysql基础
- Mysql有哪些基本数据类型
- 外键的优缺点
- Mysql如何进行持久化
- 如何将查询出字符串的字段修改为int格式
- 如何将数据库任意一个字段设置成唯一自增
- 数据库表有几种连接形式
- 数据库查询的最大字节数
- Mysql中insert buffer的功能与作用
- ES和mongoDB的区别
- Sql查询表的前十条数据
Mysql索引
- 性别能否作为索引,并解释原因
- B+树的底层数据结构
- 百万用户活跃手机号的登录场景,是否需要建立索引
- Mysql建立索引有哪几种方法
- mysql使用索引查找的流程是什么
Mysql事务
- 读已提交与读未提交的区别
- ACID的持久性怎么保证
- 如何开启可重复度
- Mysql事务持久化机制
- 当前读和快照读有什么区别
查询性能优化
- 查询千万级别的表如何实现快速查询到最后一页
- 查询百万数据的表,进行分页的时候,查第1页和第100页有没有性能差别
Mysql问题与解决方案
- Mysql的bufferPool如何实现LRU
- mybatis一条数据插入数据库的流程
分库分表
- 如何进行垂直分表
Mysql锁机制
- Mysql如何实现锁表
Network
传输层
- 如何快速回收TCP资源
- TCP中nagle算法及其缺点
- close-wait出现大量堆积的时机
- TCP的最大传输长度是多大
- TCP中有哪些定时器
- TCP快重传如何判断丢失
- TCP三次握手为什么要用随机初始化的序号
Network框架相关
- Dubbo的数据结构
- 如何配置Ngnix反向代理
- 如何解决Dubbo连接数爆满的问题
- Dubbo如何实现超时处理、通信协议与序列化
- 页面上存在上百个请求,如何使用websocket进行优化
- Dubbo与SpringCloud的差异
- Rpc丢包如何处理
Http相关
- Http的无状态具体指的是什么
- ssl协议属于哪一层
- http协议属于哪一层
- http1.1 为什么无法做到多路复用
- Http缓存定义与原理
网络体系结构
- QQ能登录但浏览器不能访问网页,分析原因(开放题)
- 如何实现实验室不能访问bilibil(开放题)
- 交换机和路由器的区别
应用层
- 浏览器的缓存策略(强缓存和协商缓存)
- DNS劫持是什么意思
网络层
- 已经有流量控制为什么还要拥塞控制?
- 一个MTU最大多少字节,最多可包含多少数据
Redis
Redis问题与解决方案
- redis的应用场景
- 大量mysql无效读请求如何用Redis拦截(布隆过滤器)
- 布隆过滤器的原理
- Redis定时操作有哪些
- 如果微博某个热点数据发生了缓存穿透的问题,如何进行解决?
- redis热key一般怎么处理
- redis与mysql的区别
Redis特性
- 为什么用Redis?
- Redis有哪些特性?
- Redis的LRU实现与Java的LinkedHashMap实现LRU的对比分析
- Redis如何实现LRU
Redis数据类型
- bitmap特别大,如何处理
Redis使用场景
- 举例说明缓存的应用场景
Redis持久化
- RDB重写如果发生宕机会不会造成数据丢失
Redis数据结构
- Zset与Set的区别
DataStructure
排序
- 5千万条 URL,判断一个 URL 是否在其中,时间复杂度尽可能低,目标O(n)
- 数组(奇数偶数)对于快排的影响
- 列出所有稳定排序和不稳定排序
场景设计
- 如何从一台主机的日志中找到访问次数前十的IP
- 如何从十台主机的日志中找到访问次数前十的IP
查找
- 哈希表为什么查询快
- 哈希表的定址方式
线性表
- 跳表与链表的区别
树
- B+树如何保证平衡,频繁增删节点会咋样
MQ
MQ消息模型
- RocketMQ架构
- activeMQ和rabbitmq的区别
MQ可靠性
- RocketMQ事务消息原理及实现方法
- kafka的选举机制
Kafka
- kafka的topic和partition的作用
Test
软件测试基础
- 如何测试一个app的登录场景
- 简述集成测试与系统测试的关系
- 软件配置管理工作的情况和认识
- Alpha与Beta测试的区别
- 软件评审的参加人员与目的
- 编写测试计划文档的目的与作用
- 如何应对测试中才发现需求文档不完善或者不准确的情况
- 如何保证测试的整体覆盖率
- 阐述工作版本的定义
- 软件测试活动的生命周期
- 集成测试的主要内容有哪些
- PostMan如何进行接口关联测试
- 兼容性测试侧重哪些方面
- APP闪退一般的原因
- LoadRunner分哪三部分?
- 软件测试的目的
- bugzilla 在使用的过程中,有什么问题
- 软件测试通过的标准如何设定
- 正交表测试用例设计方法的特点是什么?
- 列举并分析常见的测试类型
- 软件质量如何保证
- 简述静态测试与动态测试
- 简述扇入与扇出
- 缺陷(Bug)的生命周期
- 引入测试管理的含义
- 软件测试活动需要什么时候开始
- 单元测试的主要内容有哪些
- 回归测试要考虑哪些因素
- 什么是驱动模块
- bug管理的流程
- 如何理解压力、负载、性能测试
- 假设一个网页打不开,你怎么定位问题
- 如何针对带cookie的接口编写自动化脚本
- web测试和APP测试的区别
- 对比分析黑盒测试与白盒测试的优缺点
- 简述测试流程
- 系统测试完毕的参考指标与规则有哪些
- 白盒测试的六种覆盖
- 如何进行元素定位
- bug的生命周期
- 如何实现AB测试
- 简述软件测试系统中用户文档的测试要点
- 如何有效进行冒烟测试
- 测试的策略有哪些
- 软件测试工程师需具备的素质
- 简述什么是测试评估及其范围
- 对比分析单元测试、集成测试、系统测试与验收测试
- 简述什么是回归测试
- 软件缺陷产生的原因
- 简述什么是敏捷开发
- 试述软件的概念和特点与软件复用的含义
- 简述正交实验法与使用场景
- 压力测试系统响应时间
- 阶段评审与项目评审的区别
- 自动化测试脚本是否需要根据版本变更来频繁修改
- 接口发生异常场景下如何分析定位问题
- 如何理解强度测试
- 举例说明黑盒测试的应用场景
- 如何判断是前端bug还是后端bug
- 测试方案包含哪些部分
- 如何实现断言
- 配置和兼容性测试的区别
- 如何用代码实现接口关联
- 请描述使用 bugzilla 缺陷管理工具对软件缺陷(BUG)跟踪的管理的流程?
- 如何在不同测试环境中进行高效测试(UAT、SIT等)
- 测试一个APP你会在哪些方面入手
- 动态测试的几个步骤
- 如果负责的系统和其他测试负责的系统测试范围有歧义如何处理
- 对比分析不同软件测试类型的区别与联系
- 如果和开发意见有分歧如何处理
- 软件测试计划的主要内容
- 如果能够完美执行黑盒测试,是否还需要进行白盒测试
- 软件产品的质量特性
- LoadRunner进行测试的流程是什么?
- 黑盒测试的优缺点
- 如何保证自己写的用例够完善
- 画出5种基本流程控制图的结构图
- 程序在 Windows 上运行得很慢,如何判别是程序存在问题还是软硬件系统存在问题?
- 什么是桩模块
- 如何处理第三方接口出问题的情况
- 说说对软件质量控制的理解
- 如何管理测试用例并运行
- 需求分析阶段是否需要进行非功能性分析
- 如何进行兼容性测试
- 一条高质量的缺陷记录(Bug)应该具有哪些内容
- 如何进行接口测试
- 画出软件测试的V模型
- 如何进行弱网测试
- 画出软件测试的W模型
- 如何进行探索性测试
测试用例设计
- 如何为微信朋友圈设计测试用例
- 如何为一个电梯设计测试用例
- 如何设计秒杀活动测试用例
- 如何为登录场景设计测试用例
- 如何为文件上传功能设计测试用例
- 测试用例设计工作的关键点
- 怎么判别是软件程序存在问题还是软硬件系统存在问题
- 如何设计视频弹幕测试用例
- 如何测试一个购物车,功能,性能,兼容性考虑
- 如何设计微信评论功能
- 如何设计抖音上下滑动视频的测试用例
- 如何设计支付宝付款码的测试用例
- 针对网上购物中订单提交过程,设计测试用例
- 如何为百度网盘相册设计测试用例(客户端与服务端)
- 如何为微信发语音设计测试用例
- 如何为打电话的webapp场景设计测试用例
- 如何为微信收发红包设计测试用例
- 如何为永劫无间的新地图设计测试用例
- 如何为系统间调用的网络异常场景设计手工测试
- 如何为支付宝转账功能设计测试用例
- 如何测试发朋友圈中上传图片的测试用例
- 如何针对人物技能设计测试用例
- 如何验证消息的幂等性
- 如何为六位密码锁与指纹锁设计测试用例
- 如何针对一个文本框的字母计数器设计测试用例
- 如何为面试网页设计测试用例
- 针对输入三个整数,判断是否构成有效的三角形的场景设计测试用例
- 如何为商场有两种促销活动,将商品添加购物车场景设计测试用例
- 针对文件上传功能,设计测试用例
- 如何为手机通话功能设计测试用例
- 如何为微信点赞设计测试用例
自动化测试
- LordRunder集合点失败的后果
- 如何在LordRunner进行并发测试
- 列举用过测试工具的主要功能与性能
- QTP功能测试录制脚本时,要验证多个用户的登录/查询情况如何操作
- QTP中的Action的种类与作用
- 简述TestDirector的功能
- selenium自动化测试过程中碰到的异常
- 如何实现UI自动化测试
- 列举自动化测试工具
- 高质量的自动化脚本应该具备哪些特性
- 如何选择最适合的自动化测试工具
- 好的自动化测试框架应该具备哪些元素
- selenium如何判定元素一定存在
- 简述Selenium中grid的作用
- 列举自动化测试框架的类型
- 如何在没有自动化测试的项目中开展自动化测试
- 如何提高selenium脚本的执行速度
- 适合做自动化测试的标准
- 如何应对自动化测试bug误报
- 自动化测试是否仅实施在UI层
- UI自动化测试的优点和缺点
- selenium如何处理多窗口
- 自动化测试时是否需要连接数据库做数据校验
- 简述自动化测试框架
- 自动化接口用例设计
- 介绍Selenium工具
- 介绍实施自动化测试过程中好的代码实践
性能测试
- 性能测试关注点
- 在对应用程序进行性能测试期间一般会执行哪些活动
- 如何定位性能瓶颈
- 选择性能测试工具之前需要考虑的东西
- 性能测试的数据如何准备
- 列举用户会面对的性能问题和性能瓶颈
- 列举性能测试中常涉及的性能计数
- 解释什么是耐力测试和尖峰测试
- 性能测试的评价指标
- 如何对接口进行性能测试
- 性能测试的数据由谁准备
- 性能测试如何保证与实际场景类似?
- 性能测试进入和技术的标准
- 列举性能测试的测试工具与原理
- 性能测试的类型有哪些
- 如何实现性能测试中的并发用户点击量
- 简述性能测试中的吞吐量
- 什么是性能测试
测试管理
- 如何对软件测试过程进行管理
- 列举测试工作中提高了哪些测试管理能力
- 如何提高测试团队的技术能力
- 如何平衡和协调开发和测试不合作甚至对立的情况
- 列举以往项目测试中遇到的风险与应对措施
- 如何在时间不充裕的情况下,安排测试
- 引入测试管理的意义
- 测试经理的工作职责与内容
- 如何建立公司的测试体系并实施
目前,后端**真题频度汇总,已涵盖264家公司的1135多篇后端**,题目频度统计达11797条,涵盖Java、数据结构、操作系统、计算机网络、数据库、Redis、MQ、软件测试等多个科目。***************************************************************
*************************************
千题奉送第1弹:https://www.nowcoder.com/discuss/827346
千题奉送第2弹:https://www.nowcoder.com/discuss/834969
转发,引用,请注明 GoGoCoder!
#春招##Java##学习路径##美团校招##美团2025实习生笔试#