秋招面试

搜狐一面 9.4
  • 自我介绍

  • 论文

  • go和java比较,优点。go库还不完善,怎么办。

  • 撕代码:判断平衡二叉树

  • JVM里面的运行时数据区?

  • 详细讲虚拟机栈,里面放什么?

  • 栈里面的动态链接是干什么的?

    是个指针,指向运行时常量池

  • 操作数栈是干什么的?

  • 元空间是干什么的?

    方法区是抽象含义,元空间是1.8之后,hotspot对方法区的实现。

  • synchronized是怎么实现的?偏向锁、轻量级锁、重量级锁具体怎么实现。

  • volatile怎么实现的?做了哪些限制来实现功能的?除了内存屏障还有什么。

  • 禁止指令重排,CPU层面为什么会做重排操作?

    为什么重排会提高效率,什么场景下会提高效率?
    CPU流水线:每次执行指令的操作差不多,取址译码,采用流水线的形式执行。有些操作可能要等待写回才能执行,可能会打断流水线,CPU执行时试图优化,使指令的执行符合流水线。

TPLINK一面 9.5
  • 自我介绍
  • 论文
  • 说一个最有代表性的项目(项目背景,职责)
  • 怎么设计负责的模块的代码结构的?
  • 用的什么数据库,自己部署的吗
  • HashMap是不是线程安全的,如果想让他线程安全要用什么
  • String对象是不可变的,String对象是怎么创建的?
  • 项目在Mysql上有什么特定的优化?除了索引还有啥?
  • 有用过Redis吗?
  • 有了解一些前端的技术吗?
  • 有用过ES6吗?
  • 有写过组件吗?Vue里的?
  • 为啥要去杭州?
美团一面 9.7
  • 项目

  • 订单号怎么避免冲突

  • 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)

滴滴一面 9.8
  • 论文说了五分钟

  • 项目,查询效率怎么优化

  • 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底层结构,为什么用红黑树不用平衡二叉树

    平衡二叉树的调整起来比较复杂,红黑树调整起来效率高

滴滴二面 9.8
  • 论文背景,研究目的

  • 项目经历

  • 实习期间的收获

  • 并发解决的核心问题是什么

    CPU和内存之间的速度不一致问题

  • 了解的关于并发的技术,同步锁机制

  • volatile是解决什么问题的,可见性是指什么

  • 其他并发机制,juc上其他的接口

  • 工作学习中用到的并发机制

  • go里面从cpu,指令层面的并发与java有什么区别,go routing是怎么实现

  • java的数据结构

  • hashmap是怎么实现的,线程安全的hashmap

  • java其他技术上了解的比较多的

  • jvm内存模型

  • 类的加载过程经历哪些步骤

  • 对技术这块还有什么分享的,哪一块了解的比较深的

  • 你觉得掌握的比较好的算法?

  • 做题,设计cache,定容,实现get(key),put(key, value)

    put的时候容量超过了就删除最不常使用的

华为一二三面 9.10
  • 写算法:二叉树路径和为某个值(写了十分钟)

  • LinkedList和ArrayList,区别,使用场景

  • Object类和Integer类的equals方法有什么区别,什么时候去比值,什么时候比地址

  • 泛型,是在编译时实现还是在运行时

    编译时

  • 垃圾回收有几种方式

  • 垃圾回收器的指标

  • JIT即时编译

    对高频执行的代码块,编译成字节码之后,存在内存里

  • 实习期间的项目,遇到的问题


  • 哪一个项目是比较难比较成功的,开发规模,我的职责

  • 初始架构的怎么设计的,什么样的架构

  • 数据库表的设计有什么考虑

  • 一个业务使用多个表是在数据库层面还是程序层面

  • mybatis在项目中有什么好处

  • spring boot前台调一个url是怎么到后台入口的,http://uri

  • 发生过url访问不到接口的情况吗

  • spring boot的用户认证是怎么做的,登录信息怎么判断是否有权限

    拦截器?

  • 后台接口是怎么测试的,测试的时候直接调接口有鉴权吗

  • 论文主要工作是我完成的吗

  • Java常用的容器有哪些

  • List和Set有什么区别

  • Set怎么实现不重复,怎么判断重不重复

  • HashMap哈希碰撞,哈希冲突怎么解决

  • 写算法:两个有序数组,找有序数组的中位数。

    双指针O(n)

  • 项目中数据调优


  • 论文情况
  • 实习期间的项目
  • 读研期间的项目
  • 项目规模,团队配合之间的困难,怎么解决
  • 介绍论文内容,用了多长时间
  • 研究生排名
  • 论文里的技术点有什么可以改进的,怎么改进
  • 实习时候的笔试成绩不是很好,这段时间怎么锻炼的
  • 啥时候毕业
  • 工作地有什么要求
  • 手上有其他offer吗
  • 现在是Java,以后用C或者C++有什么困难吗
  • go语言比java有什么区别
  • 论文里需要什么仿真实现,模拟协议用的什么软件,论文方法的效率怎么评估
  • 协议仿真语言是什么,有没有其他人提供帮助
  • 怎么看待华为的核心价值观,对加班的看法
TPLINK二面 9.11
  • 你是哪里人啊

  • 为什么考虑保到天津大学

  • 研究方向是什么

  • 缓冲区溢出攻击

    栈溢出攻击的过程,不会

  • 内存泄漏一般采用什么方式去检测

    不会

  • 比如说有个C程序,怎么检查有没有内存的泄露

  • 静态分析有效果吗,实际使用环境下静态分析的效率

  • 我提出的动态分析方法是什么

  • 把野指针当做研究领域会不会太细了

  • 野指针在编码上能不能杜绝

  • 实习期间的项目,为什么用go,go和java比较

  • 有台PC机,打开word,键盘输入a之后在PC内部是怎么处理

  • 平时的课余爱好

搜狐二面 9.11
  • 写算法:写个线程安全的阻塞队列

    不会

  • go语言的线程和协程开销有什么区别

    不会

  • 操作系统里面进程和线程有什么区别,开销有什么区别

  • linux操作系统对进程和线程的实现有什么区别

    不会

  • 分段和分页都使用来解决什么问题

    不会

  • 论文的主要内容,有什么特殊的地方

  • 写算法:两个有序数组找中位数,O(nlogn)

字节一面 9.14
  • 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冲突解决方法

  • 写个代码:二叉树的最大宽度

美团二面 9.16
  • 项目背景+内容+职责

  • 怎么分析需求

  • 项目收获

  • 平时怎么学习一门语言,难点

  • https,ssl里面用到的什么算法

  • ssl里的中间人攻击

    emmm字节三面也问了,哭,当时怎么没整理

  • Java线程的生命周期

  • sleep()和wait()区别

  • volatile的作用

  • 算法题:二叉树路径上的和为某个值的所有路径(写了八分钟)

  • Java的锁,synchronized的锁升级过程

  • CAS过程

  • Lock接口,了解ReentrantLock吗

  • AQS的数据结构

  • ThreadLocal了解吗

  • Springboot的自动装配

  • 职业规划

  • 算法题:合并两个有序数组,数组A有足够的空间容纳B

    双指针,从AB的尾部开始,最大的放到A的尾部

字节二面 9.16
  • 论文背景、内容

    共享密钥,两个车之间?车辆群组之间?
    车辆之间交换什么信息
    基站的覆盖范围,圆形还是方形
    车辆之间怎么跨基站通信?这个基站区域内发生的事,怎么通知到其他基站
    防御的是什么情况

  • char *s1, **s2, ***s3是什么用malloc分配内存的

  • 算法题:非递归二叉树深度

  • 算法题:链表,从尾结点一个个往前面插入,每次间隔一个结点

  • 算法题:实现栈的数据结构

    以上花了60min…

  • 线程阻塞,挂起

  • 进程切换的内容保存在哪里

    CPU寄存器,进程的状态数据结构

  • TCP四次挥手,三次握手协商了什么东西

  • TCP序号是按什么单位

  • TCP快重传

  • gorutine

字节三面 9.20
  • 实习期间的工作

  • https中SSL握手的过程,怎么保证数据安全,有没有可能中间人攻击

  • SNI

    SNI(Server Name Indication)是 TLS 的扩展,用来解决一个服务器拥有多个域名的情况。

  • golang的内存管理机制

  • 负载均衡算法

  • HashMap多线程场景,Juc怎么控制锁的粒度

  • HashMap的扩容

  • redis的性能高体现在哪些方面

  • 网络编程的多路复用机制

  • 用UCP实现可靠传输

  • volatile的作用

  • volatile和锁有什么区别

  • DNS工作原理,DNS劫持是发生在哪个阶段

  • 算法题:二维字符数组找某个单词是否出现,可以重复走

美团三面 9.25
  • 项目,里面用什么协议进行通信,内部服务用什么协议。实习收获。

  • gin框架内部的实现有什么了解。

  • 介绍http协议,请求头内容,响应头内容

  • url细分为几个部分,‘?’代表什么,%代表什么

  • java里final关键字

  • 浮点数怎么表示,在计算机内部,用01怎么表示

    符号,指数位,有效数位

  • mysql有什么数据类型,时间戳有什么

  • 算法题:浮点数的立方根

  • 算法题:数组构造有序二叉树

  • 职业规划

快手一面 10.13
  • 项目,开发流程,遇到的困难
  • 面向对象的特性,具体介绍
  • Java里面的基本数据类型
  • int和double的区别,int的范围,double的范围(IEEE 754,科学计数法)
  • static关键词
  • ArrayList和LinkedList,ArrayList扩容的触发条件,具体扩容机制
  • HashMap插入的流程,查找的过程
  • 对称加密、非对称加密,什么场景用非对称加密
  • https握手过程,为什么要用混合加密
  • 排序算法,冒泡和插入的过程、复杂度。快排的流程,优化
  • 堆排序的流程,使用场景
  • 算法题:归并两个有序数组,三个呢,n个呢(堆)。
  • 介绍几个设计模式,代理模式的思路,场景
快手二面 10.14
  • 深挖项目二十分钟(数据库设计,场景题),收获

  • 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分钟)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值