励元科技(扶贫项目,产品二维码溯源,当阿里乙方,区块链项目java部分外包,至少995)
当场笔试题,写完只看了算法题
- 写sql,单表,查找每门课都在80分以上的学生姓名
- 写出你认为合理的 MVC 包结构
- 字符串的全排列算法
- 写出单例以外的两种设计模式代码
面试
- 千万级数据表怎么可以查的快
- 聊项目是做什么的
- 你有什么想问的
叽里呱啦 (在线英语教育,代码从clojure 改成java,995)
基本都是照着简历上的内容提问
- 介绍自己
- (简历上有自制RPC框架)RPC是什么,流程是什么
- 在使用 RpcRequest 的时候有什么问题吗
- netty 源码看过吗
- spi 是什么,怎么用,实现原理
- nio 核心组件有什么
- spring ioc 说一下
- 循环依赖怎么解决
- 熟悉哪些设计模式,自制RPC框架里用了哪些
- HashMap 和 ConcurrentHashMap 区别
- ConcurrentHashMap 如何实现线程安全
- ConcurrentHashMap 扩容机制 (被我话锋一转改成 HashMap扩容机制)
- HashMap 数据结构
- 进程、线程区别
- JVM 运行时数据区划分
- 垃圾回收器有什么
- redis 数据结构有哪些
- redis 分布式锁怎么实现
- JDK 8 新特性有哪些
- 有什么想问的
二面电话面:
- 期望从新公司得到什么
- (简历上写主要负责搜索服务)solr 是怎么做高可用部署的,生产上有出过宕机吗
- 建索引的过程,集群是怎么同步数据的
- 重建索引后新数据可见的延时为什么不做成实时的
- 你对搜索服务做过什么技术方面的改进
- 你们用的分词工具是出于什么考虑选择的这一款
- 你们有技术层面的手段判断搜索结果是否准确吗
- 项目里有用到并发处理吗
- 使用countdownlatch 的时候要注意什么
- volatile 有什么作用,说出一个使用场景
- 两个线程对共享变量做 i++ 操作,用 volatile 修饰能保证结果正确吗,为什么
- 你自制的RPC 和市面上的在功能上有什么区别吗
- 自制的RPC 里,心跳和重连机制是怎么做的
- 项目里有用过 TheadLocal 吗,有遇到什么问题吗
- 有什么想问的
亿通国际股份 (国企,进出口岸电子平台)
手机上微信问卷做笔试题(没人看)
-
int 转 byte 如果值大于 byte 的范围,会出现什么现象
-
3*0.1 == 0.3 结果是什么,为什么
-
this() 和 super() 在构造函数中作用
-
String StringBuilder StringBuffer 区别
-
Servlet 生命周期
-
Http 请求和响应报文有哪几部分组成
-
描述 HttpServlet 容器响应web请求的流程
-
写出常见Http 状态码
-
如果提交任务时,线程池队列已满,会发生什么
-
wait() 和 sleep() 区别
-
写出线程安全的集合类
-
适配器模式和装饰器模式有什么区别
-
线程安全的单例模式
-
知道什么JVM 参数
-
用一条 Linux 命令查看所有 java 进程,用一条命令删除所有 java 进程
-
-
正向代理和反向代理的区别
-
redis 几种存储类型,对应什么场景
-
面试
- 系统架构图画一下
- 倒排索引、正排索引是什么
- 说几种负载均衡算法,海量机器下的负载均衡算法用什么好一些(面试官后来说是一致性hash)
- 一致性hash 自己实现过吗
- 当前部门构成和分工
- 公司业务是什么
- 觉得公司的代码有哪里不合理,怎么改进,评估工作量
- 对简历上哪一块最熟悉
- ArrayBlockingQueue 的阻塞机制
- 项目中哪里用到哪些并发工具,为什么要用
- 整个系统的瓶颈点知道在哪吗
- DB 的部署模式,怎么做读写分离的
- 看过哪些源码
- 有什么想问的
亿业科技(数字营销,十多年只做邮件代发转发服务,非互联网项目,.NET、java混合+webservice,少部分项目spring+hibernate)
- 部门几个人,分工
- 你负责什么东西
- 你们的 kafka 运用在什么场景
- 离职原因
- 数据库用的什么版本
- 只用数据库的基本功能还是有用到高级特性(索引优化、event?)
- 遇到最困难的事是什么,怎么解决
- 单表数据量大概有多少
- netty 的优缺点,底层实现了解吗
- http、 tcp协议底层,比如有些啥字段了解吗
- 有什么想问的
携程
一共三轮,两轮技术+一轮hr面,两个半小时
一面:
- 自我介绍
- 技术栈有哪些
- MQ 哪些场景用到
- kafka如何生产不丢失
- kafka的消费重复问题怎么办
- 如何设计幂等(要详细)
- zookeeper 哪些场景用到
- zk 数据结构
- 你们的zk 怎么部署的(集群)
- zk 写入时如果网络中断了,写入能成功吗,能保证一致性吗
- redis 哪些场景用到,用到哪些数据结构
- redis 数据结构有哪些
- 如果缓存的数据更新了,怎么处理(答得是写完库清掉缓存)
- 先写库,再清缓存有什么好处吗
- 数据库建索引你会考虑哪些方面
- 项目里用多线程吗
- 怎么建线程池
- JDK 的 Executors 几种线程池有什么问题
- synchronized 和 Lock 的区别
- JVM 内存模型
- 垃圾回收算法
- Spring IOC 注入方式有哪些
- 循环依赖怎么办
- 职业规划是什么
- 手写单例模式、树的遍历(方式任意)
- 手写算法,两个乱序数组合并为一个有序数组
二面(主要是结合项目内容):
- 自我介绍
- 工作里比较有挑战性的(搜索balabala)
- 搜索服务架构图
- 搜索的流程描述一下
- 做了哪些改进,性能和效果方面分别说说
- 服务的qps是多少,集群部署的硬件情况,响应时间多少
- 搜索的排序是怎么设计的
- 如果要对点击量作为排序的相关因子,你会怎么设计
- 怎么评判结果的好坏,如何量化你的搜索效果,引申到搜索量、点击量到下单的转化率等等
- 搜索引擎的打分一般是多少(解释不同的搜索请求之间没有横向比较的意义,分数只在一次请求里有参考意义,面试官似乎知道但还是问了一下)
- 算法题,一条街上有n家店在送礼品,用一个数组保存每家店的礼品价值,规定拿了一家店的礼品后,就不能拿它相邻的两家店的礼品,问可以拿到的礼品价值最大是多少(动态规划)
- 算法题,一个有序数组,可能存在重复的数据,用二分查找的方式找出目标数字第一次出现的位置。写完后问平均时间复杂度是多少(logn),最坏复杂度是多少(我的实现是O(n)),能不能让最坏复杂度也是 logn 呢(二分第一次找到目标后,后续仍然用二分的思想找第一次出现的位置,一开始我是用for往前遍历实现的)
hr面:
- 没什么特别的,实话实说就行,了解一下公司的薪酬体系等等
宝信软件 (宝武集团工业互联网研究院平台二所,做集团整体信息化)
一面:
- 大学里学过哪些编程相关的课
- 专业课排名如何
- 数组和链表的区别
- 如果要在内存临时存一些学生信息,用数组还是链表好
- set 和 stack 说一下
- hashmap 底层的数据结构
- hash 冲突怎么办
- hashmap 线程安全吗,有什么办法做到线程安全
- 线程安全怎么理解
- 调用类的静态方法是线程安全的吗
- 静态代码块执行的顺序
- throw 和 throws 的区别
- 遍历时对集合做删除操作要怎么做
- 描述一下单例的实现
- threadlocal 和 synchronized 说一下
- redirect 和 forward 区别
- 序列化你们什么场景用到
- synchronized 锁一个普通对象和锁一个class对象区别
- 如果要设计一个回调函数要怎么做(答的观察者模式,他说可以看看event包)
- 你们容器用的是tomcat吗,做过调优吗
- 数据库用的是什么,高可用是怎么设计的
- 为什么建索引查询就快
- 索引的底层结构是什么
- session 共享你们怎么做的(不用session用的token)
- token 你们是用什么存的
- redis 集群部署是谁做的
- 你们的搜索为什么不用百度的api
- 除了开发,你有设计过什么模块吗
二面:
- 写个单例,要求获取单例对象前已完成初始化
- 子父类关系中,静态代码块,非静态代码块,构造方法执行顺序
- set 存实体类,调用contains 时要注意什么
- 并发add 改示例代码使得结果一定正确
- volatile 能否保证线程安全,举例说明
- 代码找错
- 写一个缓存,要求并发安全,支持泛型,懒加载,最多存1W个缓存
- 多副本服务消费kafka同一份消息,如何保证只消费一次
- 如果你的方案和领导的冲突,你怎么办
- 你觉得自己性格如何
- 有什么想问的
三面:
- 听所长吹国企的好处
- 你在工作中遇到什么技术上的难题,怎么解决
- 查户口
- 通知薪资