Java 刷题10-27

字节提前批:

一面(挂):

1.四道算法选一道:A.链表对称翻转 B.找出无序数组中加起来和为某个target的连续子序列 C.出租车在一条公路上走,有好几个红绿灯,某个时间出发,最快多久能到达终点 D.记不清了,类似笔试题

A 和 B  比较容易

 

网易提前批:

一面:

1.介绍项目,对着项目问:分布式,一致性哈希,缓存,服务器请求过程等

2.做题:两个数组,在B数组中查找第一个大于A数组里中位数的数字

3.数据库语句,计网知识,Java多线程相关知识,Java基本类型和类之间拆箱装箱关系


 

二面(挂):

1.JVM基础知识一箩筐

2.Java并发编程知识一箩筐

3.项目介绍

4.做题:一个矩阵,从左上角查找最长的一条路径,(路径要求:和下一个方格(前后左右都行)的差不超过1,如果到尽头则直接输出),输出出来。

 

珍爱网:

一面:

  • 自我介绍

  • 项目介绍

  • Java 的锁有哪几种分别说一说

  • volatile 是线程安全的吗

  • Java 线程池如何设置参数

  • Redis 实现分布式锁的原理说一下

  • Redis 实现缓存是存储什么数据,过期时间是多少

  • Mysql 存储了哪些数据?

  • 索引实现原理是什么

  • 索引哪些情况下会失效

  • 设计索引有什么需要考虑的因素

  • 如何查看 SQL 语句的执行情况

  • 除了 Redis 实现分布式锁,还有什么办法:ZK

  • ZK 实现分布式锁的原理了解吗?不了解,但了解如何实现服务注册与发现

  • zk 如何保证高可用

  • zk 高可用的实现原理是什么

  • 看来你对zk这块还不太熟悉,我们聊点别的吧

  • TCP timewait 情况了解吗?怎么解决

  • 操作系统的 epollo 讲一下

  • 虚拟内存,物理内存

  • 反问

珍爱网二面

  • 自我介绍

  • 项目介绍:深究项目细节

  • 项目当中的作用

  • 有什么难点如何解决

  • 项目目标是什么

  • 有什么提升

  • 项目相关的 TCP 三次握手的原理

  • 多线程,并发,负载均衡怎么处理的

  • 反问

 

腾讯:

一面:

  • 项目介绍

  • Nginx 相关负载均衡算法

  • 一致性哈希

  • http 长连接、短连接

  • epoll 边缘触发与水平触发

  • epoll 空轮询 bug

  • https

  • linux 的页内存。答不会但是了解操作系统的虚拟分页

  • 操作系统虚拟内存:分页分段

  • linux 命令:du、top、free、netstat

  • Redis 在项目中怎么使用,使用什么特性

  • 分布式锁的实现除了 Redis 还有什么?

  • zk 分布式锁实现原理了解吗?不了解,了解服务注册与发现原理

  • zk 服务注册与发现

  • 算法:复杂链表的复制

  • 服务分组怎么搞(还可以靠标签解决)

二面:

  • 自我介绍

  • 解释一下Tomcat的运行机制

  • 计网HTTP原理

  • 虚拟内存存在的意义/设计原理

  • Redis 存储缓存比起 Mysql 有什么区别,能用 Redis 存储数据库数据吗

  • 缓存与硬盘的优点缺点比较,为什么需要缓存

  • 项目介绍

  • 针对项目:

    • 如何优化

    • 测试效果如何

    • Redis 分布式锁怎么使用

    • 除了Redis实现分布式锁,还知道其他的分布式锁实现方式吗: ZK分布式锁实现/基于Mysql的分布式锁实现

    • 设计的线程池运行策略是怎样的

    • 线程池线程数如何设计

    • 为什么没有任务执行的线程要关闭 : 答线程上下文切换会带来损耗

    • 线程上下文为什么会带来损耗 : 讲了用户态和内核态的切换

  • 有没有玩过游戏

  • 英雄联盟的寻路算法要怎么设计:动态规划/深搜/广搜

  • 如何优化:

    • 缓存存储经常寻路的路径,下次寻路直接查出

    • 动态规划计算,使用多个线程并行计算结果,最后选出最短的那一条路径

  • 反问

总监面(挂,此面是感觉最冤大头的,问的问题奇奇怪怪,唉):

  • C 语言:一个mian函数,执行的第一行就出错了(在中括号的那一行,还没执行响应的代码就出错了,段错误)是什么原因导致的。如何处理

  • socket():客户端每次发1024字节,循环发十次,服务端socket() read 的时候读多少个字节

  • 一致性哈希:一致性哈希的原理,好处:答上来了;为什么要使用一致性哈希:懵,语塞

  • 微服务的认识与理解

  • 为什么不能单体应用而要使用微服务

  • 平时如何学习的?

  • 讲讲对 MVC 这个框架的理解

  • 一道智力题:A,B两个人分别持有一样的牌:3/4/5/对6/对7/对8。单牌只能吃单牌,对牌只能吃对牌,不能拆牌下。A先下牌,问一定能赢吗?

————————————

 

 

华为:

一面:

  • 自我介绍

  • 项目相关

    • 线程安全实现方式

    • Redis 分布式锁如何实现

    • Nginx负载均衡原理、所选负载策略

    • Nginx能否感知消息队列宕机

    • 如果服务器宕机怎办,一致性哈希可以进行处理

    • 一致性哈希的优点,能解决什么问题。机器数量高度可拓展,宕机的时候数据迁移量少

    • 如果让你设计哈希算法你会怎么设计。答:取模;反问:那机器数量改变怎么办,模数不是又得改了。其实是因为没答到点。其实得答按机器数量取模

  • 思考题:

    • 微博几十亿条数据,要实时展示出评论前10条的数据,怎么快速查询

    • 哈希再哈希,哈希到对应机器上面时使用键值对进行获取

    • 那修改的时候呢?如何提高效率

  • 算法题:

    • O(n)时间复杂度找出数组中的TopK元素:使用快速排序的思想进行查找,排序一部分数据就行,不需要排序全部

 

二面:

  • 自我介绍

  • Java并发相关

    • 线程安全实现方式

    • volatile 实现原理

    • synchronized 实现原理/比起可重入锁的区别

    • 线程池的实现方式

    • 线程池的核心参数如何设计

  • 计算机网络相关知识:TCP、UDP等

  • 操作系统相关:

    • 虚拟内存

    • 如何查看占用CPU较多的原因

  • JVM 部分:

    • 分代情况

    • Java的内存管理策略

    • 年轻代中的划分情况/比例

    • 年轻代怎样会升级到老年代/如何设置升级年龄

    • 复制回收算法是怎样的

  • 算法题:

    • 两个排序好的数组,找出其中位数,要求时间复杂度O(m或n):可以使用折半查找的方法进行查询

 

腾讯微保:

一面:

  • 自我介绍

  • 项目介绍

  • Java基础,计网基础,操作系统基础

  • 算法题:

    • 股票买如卖出各一次,求利益最大的方案

二面:

  • 自我介绍

  • 项目介绍

  • 对保险行业的了解

  • 反问

 

Bigo:

一面:

  • 自我介绍

  • Java并发相关

    • 线程安全实现方式

synchronized同步关键字或者加锁方法

  • volatile 实现原理
  • synchronized 实现原理/比起可重入锁的区别
  • 线程池的实现方式

任务队列, 线程数组

  • 线程池的核心参数如何设计

工作线程数,最大线程数,阻塞队列,拒绝策略

  • ThreadLocal 的底层实现与使用方法
  • 数据库相关:Mysql

    • Mysql 索引实现原理

    • InnoDB/MyISAM 之间的区别:从索引实现,数据存放位置,适用场景的方面讲

    • SELECT COUNT(*) 哪一个引擎更快,为什么

    • a,b联合索引,查询条件为a/为b/为a AND b 走不走索引

    • 如何查看慢查询出现的情况: 打开慢查询日志进行查看

    • 如何查看某条慢查询语句执行时占用的CPU/内存/耗时等情况: 这个没了解过

  • 计算机网络相关:

    • TIME_WAIT/CLOSE_WAIT 如何解决

  • 操作系统相关:

    • 虚拟内存

    • 如何查看占用CPU较多的原因

      • 查看线程pid

      • 接下去就不会了,只会如何排查占用内存较多的方法

  • 项目相关:

    • 项目介绍

    • Redis 分布式锁如何实现

    • Redis 缓存存放什么数据/使用什么数据格式存储

    • Redis 是单机部署的吗

    • 测试情况如何

  • JVM 部分:

    • 分代情况

    • 垃圾回收策略

    • 年轻代中的划分情况/比例

    • 年轻代怎样会升级到老年代/如何设置升级年龄

    • 复制回收算法是怎样的

二面:

  • 自我介绍

  • 手撕字符串转数字

  • 手撕判断矩阵是否是数独

  • TCP 三次握手,各个状态与传递参数

  • JVM 内存模型(运行时内存)

  • 介绍一下几种 GC 收集器

  • CMS 的具体垃圾收集策略是怎样的

 

  • 死锁出现的条件

互斥条件

请求与保持

不可剥夺

循环等待

  • Java 加锁的方法:synchronized 、AQS 、CAS

synchronized 同步关键字

CAS 比较并交换

AQS

  • ABA 是什么问题,如何解决

 

  • 有哪几种线程池

四种线程池

  • JVM 参数调优如何设置

三面:

  • 自我介绍

  • 说说实习的时候做了什么

  • 分布式锁怎么实现

  • Redis 事务了解吗,怎么处理

  • RPC 的实现原理

RPC(Remote Procedure Call)即远程过程调用,允许一台计算机调用另一台计算机上的程序得到结果,而代码中不需要做额外的编程,就像在本地调用一样。

现在互联网应用的量级越来越大,单台计算机的能力有限,需要借助可扩展的计算机集群来完成,分布式的应用可以借助RPC来完成机器之间的调用。

  • Zookeeper 的 Watch 机制了解吗

  • Dubbo 的序列化框架

  • 服务注册发现怎么做的

  • Redis sortSet 底层实现是如何

跳跃表

  • sortSet 的查询,写入和删除时间复杂度分别是多少

log(N)

  • AOP 如何实现的

面向切面编程

  • GIT 如何进行版本回退

  • 大数据有没有了解

  • 回去要学习什么?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值