多益网络研发一面
今天多益一面,秋招第一面,记录一下面试问题,以及我面试时大致的回答!!!
自我介绍
讲讲实习
介绍一下你的项目
压力测试效果
通过Jemter工具测压,使用1000个线程10个并发请求,优化前QPS大约200左右,优化后QPS大约2500左右
如何解决超卖
对库存判断、商品id和用户id建立唯一索引、乐观锁
讲讲GC,内存如何管理
GC是java中的一个特性,与C++相比,c++开发过程中,需要手动释放内存,完成垃圾回收,而java中,由于JVM的垃圾回收机制,不再需要程序员关注内存回收的问题,虚拟机会自动进行垃圾回收,常见的垃圾回收算法有:引用计数法、标记-复制法、和标记-清除法
tcp三次握手
第一次握手:客服端发起建立tcp连接:sqe=x,SYN = 1
第二次握手:服务器收到请求并发起与客服端建立连接请求:seq=y,SYN=1,ack=x+1,ACK=1
第三次握手:客服端收到确认,并确认服务器发出的请求:seq=x+1;ack = y+1;ACK =1
输入一个ulr的过程
拿到URL--域名解析(DNS)-- 建立连接(TCP三次握手)-- http请求 -- 服务器响应response-- 前端拿到html页面--渲染页面
cookie与session的区别
cookie: 存储字符串--客服端
session:存储对象--服务器
事务的特性
四大特性:原子性、一致性、隔离性、持久性
varchar与char的区别
char 固定长度 varchar可变长度
redis的基本数据类型
五种基本数据类型:string hash list set zset
手撕代码:实现一个函数, 输入两个版本号(随机输入二位到四位),比较两个版本号的大小。 输入示例: 1.2.1 1.10.2.0
思路:字符串分割,以 "."进行分割,然后比较每一段的大小,如果不相同,结束循环,输出大的版本号,否则比较下一段字符串
对互联网行业的看法
过饱和、加班严重
平时通过什么平台或者论坛学习
CSDN(解决问题)、github(了解源码)、官方文档(基础知识)、哔哩哔哩(视频教程)