自我介绍
论文
go和java比较,优点。go库还不完善,怎么办。
撕代码:判断平衡二叉树
JVM里面的运行时数据区?
详细讲虚拟机栈,里面放什么?
栈里面的动态链接是干什么的?
是个指针,指向运行时常量池
操作数栈是干什么的?
元空间是干什么的?
方法区是抽象含义,元空间是1.8之后,hotspot对方法区的实现。
synchronized是怎么实现的?偏向锁、轻量级锁、重量级锁具体怎么实现。
volatile怎么实现的?做了哪些限制来实现功能的?除了内存屏障还有什么。
禁止指令重排,CPU层面为什么会做重排操作?
为什么重排会提高效率,什么场景下会提高效率? CPU流水线:每次执行指令的操作差不多,取址译码,采用流水线的形式执行。有些操作可能要等待写回才能执行,可能会打断流水线,CPU执行时试图优化,使指令的执行符合流水线。
项目
订单号怎么避免冲突
mybatis中#和$的区别
项目中的索引是怎么设置的
数据库中索引的分类
聚簇索引和非聚簇索引
非聚簇索引一定会回表吗
说一下Innodb引擎
事务的四种隔离级别
不可重复读,幻读会出现什么现象。只能通过加锁解决吗
MVCC是用来解决什么问题的
Spring boot的优势是什么,为什么用springboot
简单介绍spring AOP,是基于什么实现的
静态代理和动态代理有什么区别
不会
spring IOC
Java中经常使用的数据结构
ArrayList,LinkedList有什么区别
HashMap 1.7和1.8有什么区别(扩容,红黑树)
ConcurrentHashMap 1.7和1.8有什么区别
1.7有什么劣势?为什么改成1.8
不会
JVM垃圾回收方法,标记,清理过程
简单介绍CMS的过程,CMS需要STW(stop the world线程停止)吗,为什么能并发标记。
CMS在老年代用什么垃圾收集方法,产生的碎片是怎么处理的。
重新标记阶段
TCP/IP五层体系结构
TCP三次握手,为什么要三次握手。一定要三次握手吗
四次挥手过程。一定要四次挥手吗
TCP网络传输的过程
TCP拥塞控制
写个算法,时间复杂度O(N),空间复杂度O(1)排序 1-N个不重复的数(值也是1-N)
论文说了五分钟
项目,查询效率怎么优化
java和go的开发栈有什么区别
开发过程遇到的问题
spring boot主要内容,为什么用它?
volatile的作用是什么,除了可见性还有什么?
防止指令重排
常见的线程池有哪些?
FixedThreadPool的等待队列是什么?如果线程很多,处理时间很长会发生什么
JVM内存有哪几部分
模拟一个栈溢出
垃圾回收有哪几种
堆主要分成哪两个区域
有真实遇到过JVM方便的问题吗
mysql的索引是什么实现的
一个应用中mysql如果扛不住怎么办
缓存一般怎么来实现
缓存穿透、缓存雪崩,怎么解决?
spring boot IOC,AOP
项目里怎么用的AOP
动态代理有哪几类,怎么实现
JDK动态代理,CGLIB
项目中git的分支管理是什么情况
项目中遇到个bug,修复完要马上上线,也是在develop分支上开发吗
如果都在develop上开发,分支怎么解耦
说一下TCP
拥塞控制有什么方法
连接建立;连接断开,服务受到客户端请求后进入什么状态,客户端会进入什么状态,为什么TIME_WAIT
Java集合包里的数据结构
ArrayList底层怎么实现,扩容是用什么方法扩容的,初始化的时候怎么考虑
HashMap底层结构,为什么用红黑树不用平衡二叉树
平衡二叉树的调整起来比较复杂,红黑树调整起来效率高
论文背景,研究目的
项目经历
实习期间的收获
并发解决的核心问题是什么
CPU和内存之间的速度不一致问题
了解的关于并发的技术,同步锁机制
volatile是解决什么问题的,可见性是指什么
其他并发机制,juc上其他的接口
工作学习中用到的并发机制
go里面从cpu,指令层面的并发与java有什么区别,go routing是怎么实现
java的数据结构
hashmap是怎么实现的,线程安全的hashmap
java其他技术上了解的比较多的
jvm内存模型
类的加载过程经历哪些步骤
对技术这块还有什么分享的,哪一块了解的比较深的
你觉得掌握的比较好的算法?
做题,设计cache,定容,实现get(key),put(key, value)
put的时候容量超过了就删除最不常使用的
写算法:二叉树路径和为某个值(写了十分钟)
LinkedList和ArrayList,区别,使用场景
Object类和Integer类的equals方法有什么区别,什么时候去比值,什么时候比地址
泛型,是在编译时实现还是在运行时
编译时
垃圾回收有几种方式
垃圾回收器的指标
JIT即时编译
对高频执行的代码块,编译成字节码之后,存在内存里
实习期间的项目,遇到的问题
哪一个项目是比较难比较成功的,开发规模,我的职责
初始架构的怎么设计的,什么样的架构
数据库表的设计有什么考虑
一个业务使用多个表是在数据库层面还是程序层面
mybatis在项目中有什么好处
spring boot前台调一个url是怎么到后台入口的,http://uri
发生过url访问不到接口的情况吗
spring boot的用户认证是怎么做的,登录信息怎么判断是否有权限
拦截器?
后台接口是怎么测试的,测试的时候直接调接口有鉴权吗
论文主要工作是我完成的吗
Java常用的容器有哪些
List和Set有什么区别
Set怎么实现不重复,怎么判断重不重复
HashMap哈希碰撞,哈希冲突怎么解决
写算法:两个有序数组,找有序数组的中位数。
双指针O(n)
项目中数据调优
你是哪里人啊
为什么考虑保到天津大学
研究方向是什么
缓冲区溢出攻击
栈溢出攻击的过程,不会
内存泄漏一般采用什么方式去检测
不会
比如说有个C程序,怎么检查有没有内存的泄露
静态分析有效果吗,实际使用环境下静态分析的效率
我提出的动态分析方法是什么
把野指针当做研究领域会不会太细了
野指针在编码上能不能杜绝
实习期间的项目,为什么用go,go和java比较
有台PC机,打开word,键盘输入a之后在PC内部是怎么处理
平时的课余爱好
写算法:写个线程安全的阻塞队列
不会
go语言的线程和协程开销有什么区别
不会
操作系统里面进程和线程有什么区别,开销有什么区别
linux操作系统对进程和线程的实现有什么区别
不会
分段和分页都使用来解决什么问题
不会
论文的主要内容,有什么特殊的地方
写算法:两个有序数组找中位数,O(nlogn)
volatile在多核和单核场景下的实现有什么区别吗
单核有必要用?
看一段程序,写输出
进程间的通信机制
进程的空间分布,线程呢
写时拷贝
不知道 在linux程序中,fork()会产生一个和父进程完全相同的子进程,但子进程在此后多会exec系统调用,出于效率考虑,linux中引入了“写时复制”技术,也就是只有进程空间的各段的内容要发生变化时,才将父进程的内容复制一份给子进程。 在fork之后exec之前两个进程用的是相同的物理空间(内存区),子进程的代码段、数据段、堆栈都是指向父进程的物理空间,也就是说,两者的虚拟空间不同,其对应的物理空间是一个。当父子进程中有更改相应段的行为发生时,再为子进程相应的段分配物理空间。
fork()的返回值有哪几类,父进程和子进程拿到返回值有什么区别
子进程PID 父进程fork()之后返回值为子进程的pid号,而子进程fork()之后的返回值为0
系统内存,swap区是干什么用的
不会 Swap分区在系统的物理内存不够用的时候,把硬盘内存中的一部分空间释放出来,以供当前运行的程序使用。
buffer, cache是用来干什么
不会 cache是高速缓存,用于CPU和内存之间的缓冲; buffer是I/O缓存,用于内存和硬盘的缓冲
http协议怎么判断请求头结束
空白行,几行? \r\n\r\n好像是结束符
请求头里有什么
accept-encoding是用来干什么的,压缩方法有什么
http 304是代表什么
不知道 Not Modified,客户端请求的内容,在客户端有缓存,服务器端比较文件最后修改的时间戳,如果不需要重新发送则返回304,否则返回200。
SSL的握手过程
混合加密分别是用什么算法
常见的对称加密,什么是对称加密
mysql脏读、幻读
输入一个url,拿到页面的过程发生了什么
DNS有几种模式
TCP连接关闭的时候的状态迁移
TIME-WAIT的状态
介绍一下巴士项目
如何考虑买票的一致性,并发性
分布式情况下,数据怎么加锁
redis怎么来选择使用哪个db
教师端和学生端能看到的页面不一样,怎么鉴权
论文详细介绍
不同的路边单元生成的密钥,车辆与路边单元是双向验证的?车辆与路边单元鉴权的逻辑也是一样的吗?车辆假名怎么保证是唯一的?
web应用的唯一用户uuid怎么设置
很多很多单词,找重复
hash冲突解决方法
写个代码:二叉树的最大宽度
项目背景+内容+职责
怎么分析需求
项目收获
平时怎么学习一门语言,难点
https,ssl里面用到的什么算法
ssl里的中间人攻击
emmm字节三面也问了,哭,当时怎么没整理
Java线程的生命周期
sleep()和wait()区别
volatile的作用
算法题:二叉树路径上的和为某个值的所有路径(写了八分钟)
Java的锁,synchronized的锁升级过程
CAS过程
Lock接口,了解ReentrantLock吗
AQS的数据结构
ThreadLocal了解吗
Springboot的自动装配
职业规划
算法题:合并两个有序数组,数组A有足够的空间容纳B
双指针,从AB的尾部开始,最大的放到A的尾部
论文背景、内容
共享密钥,两个车之间?车辆群组之间? 车辆之间交换什么信息 基站的覆盖范围,圆形还是方形 车辆之间怎么跨基站通信?这个基站区域内发生的事,怎么通知到其他基站 防御的是什么情况
char *s1, **s2, ***s3是什么用malloc分配内存的
…
算法题:非递归二叉树深度
算法题:链表,从尾结点一个个往前面插入,每次间隔一个结点
算法题:实现栈的数据结构
以上花了60min…
线程阻塞,挂起
进程切换的内容保存在哪里
CPU寄存器,进程的状态数据结构
TCP四次挥手,三次握手协商了什么东西
TCP序号是按什么单位
TCP快重传
gorutine
实习期间的工作
https中SSL握手的过程,怎么保证数据安全,有没有可能中间人攻击
SNI
SNI(Server Name Indication)是 TLS 的扩展,用来解决一个服务器拥有多个域名的情况。
golang的内存管理机制
负载均衡算法
HashMap多线程场景,Juc怎么控制锁的粒度
HashMap的扩容
redis的性能高体现在哪些方面
网络编程的多路复用机制
用UCP实现可靠传输
volatile的作用
volatile和锁有什么区别
DNS工作原理,DNS劫持是发生在哪个阶段
算法题:二维字符数组找某个单词是否出现,可以重复走
项目,里面用什么协议进行通信,内部服务用什么协议。实习收获。
gin框架内部的实现有什么了解。
介绍http协议,请求头内容,响应头内容
url细分为几个部分,‘?’代表什么,%代表什么
java里final关键字
浮点数怎么表示,在计算机内部,用01怎么表示
符号,指数位,有效数位
mysql有什么数据类型,时间戳有什么
算法题:浮点数的立方根
算法题:数组构造有序二叉树
职业规划
深挖项目二十分钟(数据库设计,场景题),收获
springboot是怎么工作的,反射有几种实现方式
配置文件是怎么扫描的
@Controller和@Component什么区别和联系
mybatis是怎么使用的,怎么实现的
@Autowired
throw/throws区别
final/finally/finalize,定义一个final类怎么写
finalize()是在java.lang.Object里定义的,也就是说每一个对象都有这么个方法。这个方法在gc启动,该对象被回收的时候被调用。
hashCode()和equals(),hashMap是怎么使用hashCode的,整个过程。euqals是怎么执行的
函数只有返回值不同属于重载吗
java中的基本数据类型
System.gc()和Runtime.gc()
java.lang.System.gc()只是java.lang.Runtime.getRuntime().gc()的简写,两者的行为没有任何不同。
ThreadLocal
TCP server端口和UDP server端口冲突,能正常启动吗
不影响
Thread重复start()
Thread t = new Thread() t.start() t.start() 两者都会抛出java.lang.IllegalThreadStateException,但是本质是不一样的。第一个是重复启动,此时线程处于运行状态,是不允许的;而第二次则是在该线程生命周期已经被终结后企图启动,也是不允许的。
jvm调优,说几个参数,默认情况下方法栈一般多大
xmx,xms,xss
算法题:用固定长度n的数组实现一个循环队列,put()和pop()方法。(10分钟)
