本文最后更新于 2 分钟前,文中所描述的信息可能已发生改变。
题型
6 + 2:6 个技术基础知识考察题及 2 个通用能力考察题
面经
- TCP 与 UDP 的使用场景,以及区别
- TCP 是面向连接的、可靠的传输协议,适用于数据准确性和顺序性的使用场景,如文件传输、邮件发送等。
- UDP 是面向无连接的、不可靠的传输协议,适用于实时性要求高的使用场景,如视频直播、语音通话等。
- Linux 如何排查与诊断端口问题
netstat
、lsof
、ps
、ss
等命令netstat -tunlp
查看端口占用情况lsof -i:端口号
查看端口占用的进程ps -ef | grep 进程名
查看进程详细信息ss -tunlp
查看端口占用情况kill -9 进程号
强制杀死进程
- java 中 static 与 final 的作用
static
用于修饰类、方法、变量,表示静态的,属于类的,可以通过类名直接访问。final
用于修饰类、方法、变量,表示不可继承、不可重写、不可修改,常用于常量、单例模式等。
- ArrayList 与 LinkedList 的区别与使用场景
ArrayList
基于数组实现,查询效率高,增删效率低,适用于查询频繁的场景。LinkedList
基于链表实现,查询效率低,增删效率高,适用于增删频繁的场景。
- 数据库查询优化器有什么作用
- 数据库查询优化器负责解析 SQL 语句,生成查询计划,优化查询性能。
- 通过索引、统计信息、执行计划等手段,选择最优的查询路径,提高查询效率。
- 设计一个排行榜功能,如何设计数据结构与内存策略(如何保证数据一致性以及实时性)
- 使用有序集合存储排行榜数据,如 Redis 的
ZSET
。 - 使用 Redis 缓存+定时任务或消息队列更新排行榜数据,保证数据一致性和实时性。
- 使用有序集合存储排行榜数据,如 Redis 的
- 如何与最新的技术与时俱进,通过什么方式学习,各有什么优缺点,并根据你的回答引申出去
- 通过阅读官方文档、博客、书籍、实践项目、参加技术交流会议等方式学习。
- 优点:及时了解最新技术、拓展视野、提升技术能力。
- 缺点:信息量大、更新快、深度和广度有限。
- 项目中遇到什么问题,如何解决的,并根据你的回答引申出去
- 项目中遇到的问题:如性能瓶颈、安全漏洞、数据丢失等。
- 解决方法:如优化算法、增加缓存、加强安全防护等。
- 未来 3 年的职业规划
- 夯实技术基础、进阶技术架构、提升管理能力、拓展业务视野等。
- 第一年:熟悉公司业务、技术栈、团队合作等。夯实技术基础、提升编程能力、熟悉业务流程等。
- 第二年:深入研究技术领域、参与项目设计、解决技术难题等。进阶技术架构、提升团队协作、拓展业务视野等。
- 第三年:担任技术负责人、项目经理、架构师等职位,负责项目规划、团队管理、技术选型等。提升管理能力、拓展业务视野、实现职业目标等。
作者:Mia_san_mia_mia_san_mia
链接:https://www.nowcoder.com/feed/main/detail/5dbe9855b7bd4e688763d59cbbc30653?sourceSSR=search
来源:牛客网
TCP 与 UDP- string 类可不可以被继承?为什么
String
类是final
修饰的,不可被继承,防止被修改。String
类是不可变的字符串,提高字符串的安全性和性能。
- 修改用户权限和所有权的命令是什么
chown
修改文件所有者chmod
修改文件权限
- 设计一个预约系统,会考虑什么
- 预约系统需考虑用户需求、时间段、资源分配、冲突处理等。
- 可以使用数据库存储预约信息,使用定时任务处理预约逻辑。
- 可以使用消息队列处理预约通知、提醒等。
- 可以使用缓存存储热门预约信息,提高查询效率。
- 可以使用分布式锁处理并发预约问题。
如何实现预约时间段的细化平时是如何学习新技术的,通过哪些方式?(我说了 ai,追问如何使用 ai)- 项目短期实现和长期维护之间的平衡
- 在软件开发中,短期目标通常是快速交付,确保项目按时上线;长期目标是稳定、可扩展、易维护。
未来三年的发展规划
作者:明朝老兵在线背八股
链接:https://www.nowcoder.com/feed/main/detail/6d302a6b7d2e44f99036e45c5d3db4ef?sourceSSR=search
来源:牛客网
TCP 与 UDP 的使用场景,以及区别- Linux 查看文件的内容,列举至少 3 个相关命令
cat
查看文件内容more
分页查看文件内容less
分页查看文件内容head
查看文件头部内容tail
查看文件尾部内容
- 解释一下三大日志以及区别
INFO
信息日志,记录程序正常运行的信息WARN
警告日志,记录程序可能出现问题的信息ERROR
错误日志,记录程序出现错误的信息
- 如何创建和启动一个线程
- 继承
Thread
类并重写run
方法 - 实现
Runnable
接口并实现run
方法 - 使用
ExecutorService
线程池
- 继承
- 解释 Java 中的构造函数,构造函数能够重载吗
- 构造函数是类的特殊方法,用于初始化对象
- 构造函数可以重载,但不能被继承
设计文章热度计算系统考虑浏览量、评论数和分享数等因素各自的权重分数如何考虑的- 浏览量、评论数、分享数等因素可以设置不同的权重,如
0.3
、0.5
、0.2
等。 - 可以使用加权平均法、加权求和法等计算热度分数。
- 可以使用缓存存储热度数据,提高查询效率。
- 浏览量、评论数、分享数等因素可以设置不同的权重,如
如何与最新的技术与时俱进,通过什么方式学习,各有什么优缺点,并根据你的回答引申出去- 项目中遇到什么问题,如何解决的,并根据你的回答引申出去
- 高并发下数据库压力过大,导致性能下降
- 使用 Redis 缓存热点数据,减轻数据库压力
- 使用分库分表、读写分离等方式优化数据库,读操作和写操作分离,读操作走从库,写操作走主库
- 使用消息队列异步处理数据,提高系统吞吐量,用户下单时,先将订单信息写入消息队列,后台系统异步消费消息,生成订单
- 高并发下数据库压力过大,导致性能下降
未来 3 年的职业规划
作者:presbyterwar
链接:https://www.nowcoder.com/feed/main/detail/ed1f9ce71510442b90f92240224c9b5e?sourceSSR=search
来源:牛客网
- threadlocal
ThreadLocal
是 Java 中的线程本地变量,每个线程都有自己的ThreadLocal
变量,互不干扰。ThreadLocal
提供了get
、set
、remove
等方法,用于存储线程私有数据。ThreadLocal
常用于解决线程安全问题,如数据库连接、Session 管理等。ThreadLocal
的内存泄漏问题,需要注意及时清理。ThreadLocal
的原理是通过ThreadLocalMap
实现,每个线程都有一个ThreadLocalMap
,存储ThreadLocal
变量。
- linux 端口命令
netstat
查看网络状态lsof
查看打开的文件ps
查看进程信息ss
查看套接字信息
- 数据库分区表
- 数据库分区表是将一个大表按照某种规则分成多个小表,提高查询效率。
- 数据库分区表可以按照时间、范围、哈希等方式分区。
- 数据库分区表可以减少单表数据量,提高查询性能。
- 数据库分区表可以减少索引大小,提高索引效率。
- 数据库分区表可以减少锁竞争,提高并发性能。
- 第三方支付接口超时怎么对账监控,接口的幂等性和重复多次下单
- 使用定时任务或消息队列监控支付接口超时情况,及时处理异常订单。
- 使用幂等性机制保证接口的幂等性,避免重复下单。
- 使用分布式锁处理并发下单问题,避免重复下单。
未来三年职业规划- 项目人员资源缺乏人员紧缺的时候怎么应对举个例子
- 项目人员资源紧缺时,可以通过招聘、外包、培训等方式解决。
- 项目人员资源紧缺时,可以通过技术分享、团队合作等方式提高团队效率。
- 项目人员资源紧缺时,可以通过项目管理、任务分配等方式合理分配资源。
- 怎么学习一个新的编程语言或框架 追问怎么用的 接着又对上面回答进行追问
- 学习新编程语言或框架可以通过阅读官方文档、博客、书籍、实践项目等方式。
- 学习新编程语言或框架可以通过参加技术交流会议、培训课程等方式。
- 学习新编程语言或框架可以通过实践项目、开源项目等方式。
- 学习新编程语言或框架可以通过编写代码、调试代码、提交代码等方式。
- 粘包问题怎么解决
- 粘包问题是 TCP 协议中常见的问题,多个数据包粘在一起发送。
- 可以通过消息定长、消息分隔符、消息长度字段等方式解决粘包问题。
- 可以通过 Netty 等网络框架解决粘包问题。
- 可以通过自定义协议解决粘包问题,如 HTTP 协议、WebSocket 协议等。
- hashcode 和 equals
hashCode
是Object
类的方法,用于计算对象的哈希码。equals
是Object
类的方法,用于比较对象的内容是否相等。hashCode
和equals
方法通常需要同时重写,保证对象的一致性。hashCode
和equals
方法通常需要保证一致性,即相等的对象哈希码相等,哈希码相等的对象不一定相等。
作者:evakkkkkk
链接:https://www.nowcoder.com/feed/main/detail/d22c0184223a4dd887f9979503daf4cf?sourceSSR=search
来源:牛客网
技术题
- HTTP 请求头和响应头都有什么,分别有什么作用?描述从输入 url 到页面展示的完整过程。
- HTTP 请求头:包括请求行、请求头、请求体,用于向服务器发送请求信息。
- HTTP 响应头:包括状态行、响应头、响应体,用于向客户端返回响应信息。
- 输入 URL 到页面展示过程:DNS 解析、建立 TCP 连接、发送 HTTP 请求、服务器处理请求、服务器返回响应、浏览器渲染页面。
- Linux 内存管理,物理内存和虚拟内存区别和作用?Linux 用什么命令来修改文件的所有者或组?
- 物理内存是实际的内存条,虚拟内存是操作系统为每个进程分配的内存空间。
- 物理内存是硬件资源,虚拟内存是操作系统资源。
- 物理内存是实际存储数据的地方,虚拟内存是操作系统管理内存的抽象概念。
- 修改文件所有者或组的命令:
chown
修改文件所有者,chgrp
修改文件组。
- Java 中的 ThreadLocal?Java 在 finally 中 return 会发生什么?解释 volatile 关键字及其作用?
ThreadLocal
是 Java 中的线程本地变量,每个线程都有自己的ThreadLocal
变量,互不干扰。- 在
finally
中return
会先执行return
语句,然后再执行finally
块中的代码。 volatile
关键字用于修饰变量,保证变量的可见性、有序性、禁止指令重排序。
- Java 中的多态?如何实现多态?
- 多态是指同一个方法调用,不同对象产生不同的行为。
- 多态实现方式:方法重载、方法重写、接口实现、继承父类等。
- 暂时忘了
- 电商系统如何设计什么什么的逻辑,解决超卖问题(会追问)
- 电商系统设计:用户注册、商品展示、购物车、下单、支付、物流、评价等。
- 解决超卖问题:使用分布式锁、乐观锁、悲观锁、队列等方式解决。
通用题
- 你认为在软件开发领域当中应该提升什么核心能力?你有什么提升计划?有没有什么指标来衡量你的提升效果?有没有用什么工具来帮助你提升?(追问)
在你的项目中遇到了什么复杂的问题,你是怎么找到它的根本原因的?(追问)未来三年的职业规划?
作者:清风徐来___ 链接:https://www.nowcoder.com/ 来源:牛客网
技术题
- TCP 和 UDP 的使用场景和区别?
- linux 中 Pineline 的是什么?具体使用场景?
- 数据库中判断索引的性能?
- 忘记了
- String,StringBuffer,StringBuilder 的区别?
- 简单的网页搜索功能,如何设计?(追问)
通用题
- 你认为在软件开发领域当中应该提升什么核心能力?你有什么提升计划?有没有什么指标来衡量你的提升效果?有没有用什么工具来帮助你提升?(追问)
- 在你的项目中遇到了什么复杂的问题,你是怎么找到它的根本原因的?(追问)
- 未来三年的职业规划?
作者:我