面试刷题11-8

【用友】一面(8.22)(电话)复盘(24min)

  1. 自我介绍

  2. 当前在校情况

  3. 项目情况

  4. 设计模式

  5. IO相关 socket、tomcat、Netty、dubbo

  6. MySQl 引擎之间的区别,索引原理

  7. redis缓存

  8. ES 搜索引擎

  9. 性能监控的日志

  10. 线程安全

  11. AOP

  12. 泛型 作用、原理

【瓜子二手车】 一面 (9.5)(视屏) (1小时)

  1. 让我发简历

  2. 自我介绍

  3. 项目

  4. springAOP、IoC 对应的应用

  5. Redis 的基本数据类型

string , hash ,list,set,zset 

  1. 线程和进程的区别

  2. 线程池,默认的几种

固定大小

无上限

只有一个

  1. 自定义的线程池的实现

  2. MySQl 的索引

  3. 联合索引

  4. Spring注解@Resource和@Autowired区别对比

  5. 事务隔离级别RR的 事务并发 操作结果------

四个隔离级别

  1. 算法题:大数相加,入参两个字符串,表示大数

【瓜子二手车】 二面 (9.5)(视频) (1小时)

  1. HashMap

  2. 扩容机制

  3. 怎么获得一个线程安全的list

collections

  1. 线程进程的区别

  2. cookie 和 session 的区别

  3. get 和 post 的区别

  4. 内存波动出现的原因

  5. http 链接的耗时点在哪

  6. https 加密方式

  7. 年轻代和老年代的区别与各自的回收策略

  8. 算法题:leetcode 160 找两个链表重合的头结点双重校验的单例模式

    补充:一面完了说我表现一般般,不到半小时hr打电话过来约的二面,休息了不到一小时就开始了二面,二面总体比一面的表现好,一面带点压力成分。后来接到邮件说我技术面通过了,让我等下一步通知,等了快一个月没通知,不过无所谓了,东哥已经抛出橄榄枝了(date:10.14)

 

【京东】一面 (9.2)(电话)复盘(30min)

面试官在现场(北京泰富酒店),我没去成现场,电话里面声音很乱,但是交流总体还算顺利。

  1. 自我介绍

  2. 项目介绍

  3. 介绍spring,知道啥说啥(AOP、IoC、MVC。。。balabala)

  4. 设计模式,知道啥说啥(主要从框架中涉及的和JDK中涉及的举例说)

  5. JVM(就是背书)

  6. MySQL索引什么时候用,需要注意啥

  7. redis 能用来干嘛,基本数据类型

  8. springboot用过么(大概介绍,特点,应用)

  9. 分布式锁(几种实现方式)

  10. 自己开发用到了spring中的什么技术(返回去讲3)

  11. MQ的了解(说自己对消息中间件的理解)

【京东】二面(9.4下午六点多) (电话)复盘(37min)一个天津老哥面的我,天津电话打来的,不是北京,有点意外,好说话,贼能唠

  1. 一面问你什么了

  2. 有啥答得不好的么

  3. 为啥出差,我没遇到过还有出差的学生(本来现场面试,我申请远程的原因,实验室项目谈需求...偶尔也会替老师去参会)

  4. 多线程和锁

  5. 分布式锁和锁区别,什么时候用,怎么考虑的

  6. 线程,进程的区别(我讲了一次排错经历,从定位进程到定位线程,到定位代码。然鹅他就想听操作系统层面的理解,背书...)

  7. 线程是不是越多越好,设置数量的考虑(有公式、也有经验值,说啥都OK)

随着线程增多,上下文开销切换变大

  1. 分布式锁的实现手段有哪些

  2. 服务部署线上出现偶发性错误,这种情况怎么办

  3. 自己的项目对安全和性能的考虑有哪些

  4. 除了编程的优化,还能做哪些性能方面的优化(我说的数据库索引、网站架构上的相关优化设计,其他我没说,他没再问)

  5. C# 和 Java 语言的区别和优劣

  6. 未来的职业规划(听完我的,他讲了讲自己...)

  7. 北京亦庄和天津的生活环境

  8. 一面对我的评价(说一面官对我评价挺不错)

  9. 有什么问题

  10. 最后建议我去现场面试。这里确实建议大家现场面试,一个是现场面的难度比远程明显低一些(个人感觉),二是显得自己有诚意,公司都喜欢这样的人,有优势。

 

【百度】 提前批 一面(电话)复盘-基础平台研发(87min)(8.3上午)

  1. 自我介绍

  2. 项目介绍

  3. 数据库索引结构,以及对比

  4. 插入两个算法面试,第一个就很硬,dp,网上有类型题应该,给两个数组date[] price[] 一个是出行日期,一个是三种票的票价,票类型1天的、7天的、30天的。算最小代价,这个还行,在两次提示下基本完成了。

    补充:leetcode上面的原题 middle难度

  5. 第二个是无向图节点被感染的问题,给定一个无向图,节点连接关系用一个二维数组表示,1为相连,0为不相连,再给一个一维数组,存放被感染的节点,问题是将哪个节点从被感染状态变为正常状态对整个无向图的危害可以进行最大程度降低,返回该节点。(你懵逼么?懵逼就对了)我当时是没理解,大致给出一个思路。他给的答案是通过连通分量什么的、、、

    补充:leetcode上面的原题 hard难度

  6. 下马威完了,开始java基础 hashmap

  7. 红黑树

  8. 各种内部类 哪儿见过 怎么用

  9. 熟悉那个数据库 mysql 开始怼 InnoDB

  10. MVCC

  11. 隔离级别

  12. 并发事务存在的问题

  13. 范式(他说这个最重要,然而我是有印象但没说全,他有纠正)

  14. 怼操作系统。线程、协程、纤程、进程分别说下

  15. cpu调度说下

  16. 银行家算法介绍

  17. 应用在哪里,现在还有应用么,为什么

  18. tcp、udp介绍

  19. 常见的路由选择协议,介绍一下怎么做,优缺点(没看过)

  20. MSS 和 MTU 介绍,有啥不同

  21. tcp怎么保证可靠性

  22. udp 传送的一组数据中丢了一个咋办(我说的可靠udp,他说答偏了)

  23. 每层协议都干嘛了,数据格式怎样的

  24. 还有一堆缩写 记不住 说不出来 给大家一个参考地址(https://blog.csdn.net/yaopeng_2005/article/details/7064869)这里都基本指出来了,但是具体的介绍还得另外去查找学习

  25. 有啥问题(部门职责,基础环境啥的,云平台的扩展什么...)

  • 【Note:面试时间太久了,面完都快脱力了,吃了午饭回来水房洗衣服时候都吐了,真吐了...难受。面试官还是可以的,不会的都给讲,需要的地方会给提示,引导型面试】

【百度】 正式批 一面 (9.20) 现场 (1小时)

  • 面试以前面试官先做了一个自我介绍,是一位12年毕业的亲师兄,比较幸运,态度非常好,百度的面试总体感觉很亲民。

  1. 自我介绍

  2. 项目介绍

  3. 项目中的自己做的数据库表的重构思路以及具体实现

  4. 权限的实现

  5. 日志的实现,出发点和实现原理

  6. 计算机网络【重点问】,访问百度的整个流程从地址栏输入开始

  7. 提高访问速度的方式

  8. 缓存机制如何实现(没答好)

  9. 三次握手、四次挥手,过程及原因

  10. 一次建立连接可以发送多少数据,一次请求还是多次

  11. http长短链接如何实现

  12. Dos攻击中的 SYN泛洪 怎么解决(没答好)

  13. Linux命令 查看分区大小以及使用情况

  14. top中的负载情况,top中的主要关注信息有哪些,都代表什么

  15. 项目中的使用过滤器实现的功能

  16. 算法题:单链表中有环,怎么查出来

补充:面试结束有加面试官微信,一是通知后续安排,二是帮师兄做一个部门的招聘宣传,这里可以再提一下部门百度-智能云通用技术服务部,包含运维研发工程师和基础平台研发工程师两个职位,我是后者。

【百度】 正式批 二面 (9.21) 现场 (1小时)

  • 面试前他先自我介绍,面试官态度很好,整体面试体验属于整个秋招前三。提了一下我笔试成绩最高,他印象很深,这个面试属于部门直招,昨天一面是统招再分配。balabala...

  1. 项目介绍

  2. 项目中自己做的亮点

  3. 课题方向,以及创新点(what?我不是开发么)

  4. 结束陌生技术或者陌生的领域如何学习,学习方法和如何寻找资料

  5. 平时用知网还是什么(google学术,不小心说了大实话,没说百度学术!gg思密达...)

  6. 要不问问计网和操作系统?(别问了吧,一面除了写代码全程问计网和操作系统)

  7. hibernate 和mybatis 区别

  8. 算法题,当着我的面,打开leetcode找了一个题让我写,无序数组找第k大的元素,要求时间复杂度O(n)。代码写完优化了两遍,一个题写了三遍,写了快二十分钟。

  9. 有啥问题(有实习要求么?试用期要求是什么?晋升机制?面试官说他当年如何面试的,还说自己三面阿里balabala反正秀了一波...)

 

 

【百度】 正式批 三面 (9.24) 现场 (1小时)

  1. 学校情况

  2. 为啥考研

  3. 当初学校有没有保研资格

  4. 本科的课程情况

  5. 自己学的比较好的课程

  6. 第二学位的情况,以及第二学位的课程

  7. 前面面试的体验如何,自我评价一下

  8. 本科的数据结构讲一下都学了啥

  9. 研究生的课程包含哪些

  10. 项目情况

  11. 技术选型的依据

  12. 新的项目如何进行技术选型,考虑的因素有什么

  13. 自己在项目中做的一些亮点

  14. 自己的一些SQL优化的经历

  15. 情景:网络上图片的传送以及视频数据的传输情况

  16. 情景:宿舍里面两个人传文件的速度慢,你会考虑怎么排查

  17. 打点日志的出发点以及具体实现

  18. 用户登录和权限控制怎么实现

  19. 自动化的脚本攻击和SQL注入的问题解决

  20. 自己平时有哪些爱好,都做些什么

  21. 有啥问题要问的

【阿里】一面(电话)复盘(29min) 阿里集团-新零售技术事业群-供应链平台事业部的研发工程师JAVA职位

  1. 介绍项目

  2. bean的生命周期

  3. beanFactory 和 factoryBean(这里回答的不好)

  4. HashMap

  5. B+树

  6. MySQL搜索引擎 InnoDB MyISAM

  7. MySQL中的索引

  8. MySQL中的乐观锁

  9. 链表有环,数学原理

  10. 字符串切割了解么 (不知道指什么~~~)

  11. 数组中找无重复的数字,其他出现两次

  12. 用random5()实现random7() (我说的映射,偏了,正确的思路是用前面的小范围构造大于等于后面的大范围,超出部分递归random)

【阿里】二面(电话)复盘(58min)

Note:最开始投的是校招内推,可是被内推到实习岗位,后来实习内推又变成了正式批的面试。本来约好上午面试,面试官因为特殊情况推迟了两次时间。下午一点多才开始,不过面试官态度极其好

  1. 闲聊说今天迟到了,怎么样的

  2. 细说项目,负责什么,做了什么

  3. session 和 cookie 的区别

  4. 怎么保持登录状态

  5. 扫码登录实现流程 自己设计

  6. 注入的接口有两个实现类,会怎样

  7. bean如何被注入的

  8. 项目中AOP怎么用

  9. AOP实现原理

  10. 静态代理怎么实现

  11. 慢查询怎么解决的

  12. 索引结构

  13. 事务

  14. ACID

  15. 隔离级别

  16. 为啥会出现幻读

  17. 怎么解决

  18. 间隙锁怎么实现的

  19. springboot 怎么点一下 application 就跑起来了?干什么了 怎么加载的

  20. redis

  21. dubbo

  22. NIO 原理

  23. 为啥四次挥手

  24. TCP消息可以保证传送成功的手段

  25. synchronized 优化过程 jdk1.6后 jvm层面

  26. happens-before

  27. synchronized 不同使用 区别

 

  1. 可见性干了个什么

让主内存的数据失效,强制从工作内存拷贝

【太多了,想不起来了,总的来说就是除了集合没问(ps:集合一面问过了...),其他问遍了。面完以后面试官WX上和我说,给你过了,但是还有很多需要加强的】.

【阿里】三面(视频coding&&电话)复盘(50min)

  1. 在线编程【是一个多线程、生产者-消费者问题】

  2. 自我介绍

  3. 项目情况

  4. 面试情况

  5. 简历投递情况以及意向

【阿里】四面(电话面)【交叉面】复盘(39min)

  1. 自我介绍

  2. 项目情况

  3. 你们怎么做的技术选型

  4. 你做的模块怎么做的技术选型

  5. spring中的设计模式

  6. JDK中的设计模式

  7. tomcat中使用了JDK的哪些技术(感觉出我不知道,安慰我说属于开放性的题)

  8. 自己如何实现MVC

  9. 如何实现单点登录

  10. java基础:

    • ThreadLocal

    • hashMap && concurrentHashMap

    • hashSet

  11. RPC

  12. 序列化

  13. MongoDB实现原理,为何用它

  14. 项目中遇到的问题,如何解决

  15. 有哪些优化的点,怎么优化

  16. redis 分布式锁

  17. 其他分布式锁的实现

  18. 其他非关系型数据库有哪些,你怎么选

  19. 你有啥问题(建议:多看看分布式吧)

 

总结

面试了 知乎/快看漫画/快手/头条 四家公司,拿到了其中两家offer

感觉面试难度整体比校招简单一些,可能是由于有正式项目经历了,基础知识问的少了些

感觉行情不大好,不过好好准备还是能得到心仪的 offer

二年没面试了,突然出去面试会很紧张,可以先找一个公司试试手,如果拿到了 offer 会极大的增加自信心

项目经历

这个地方我写的不是很好,因为参与的项目大都已经稳定,更多的是维护工作和业务修改。

要写最能体现能力的项目,如果只是简单参与了一个厉害的项目,但是你能说的清楚,有信心不被面试官问住,我觉的可以写上。

因为很多面试官看完我的项目后,觉得没啥可问的,让我自己选择一个最熟悉或有啥可讲的项目,不局限于简历。

基础知识

面试的知识点大都还是问简历上提到的,如果自己没接触过的,感觉也没必要特意去学习。

缓存一致性问题

数据先写 redis?还是先写 MySQL? 写入失败怎么办? redis 或者 MySQL 挂掉怎么办?

自己没准备好,多次提问总是能问住我。。。

场景设计题

有 10g 的文件,里面是 ip-访问次数 格式的数据(同一个ip 可能随机出现多次),给你1g内存,让你按访问次数倒排

发微博 @朋友的时候,优先显示最近@的十位朋友,怎么实现

top K问题?

 

MySQL

索引的数据结构

B+数

b+tree 基础知识

b+tree 与 b-tree 的区别,为啥要用 b+tree

简述通过索引查找数据的过程(非主键索引呢?)

delete 与 truncate drop

事务隔离级别,MySQL 默认的隔离级别

读未提交

读提交

可重读

串行化    MySQL默认

 

Kafka

Kafka 可以保证数据不丢失吗?如果保证的

Kafka 可以保证 Exactly-once-semantics 吗?如何实现的?

topic/broker/consumer/producer/consumer group 各个概念的含义及相互之间的关系

 

 

Redis

基本数据类型

持久化的方式

RDB 快照和AOF

内存淘汰策略

LRU, LFU

使用场景

JVM

简述 G1,可预测停顿时间,是怎么做到的?

遇到过线上事故吗? 怎么查问题,怎么解决?

简述内存运行时数据区

多线程

j.u.c

lock synchronized volatile 的区别

简单了解内存屏障

可以实现禁止指令重排功能

读写锁

AQS 好像简单提了下

解释下 dcl

为啥要用线程池,线程池的参数含义

避免创建线程开销,统一管理分配线程任务

集合框架

hashmap

ConcurrentHashMap

ElasticSearch

一次检索请求的流程

倒排索引

Shard 和 Replicas 的含义

Segment 文件会一直增加吗?

为什么 ElasticSearch 是近实时的?

网络编程

tcp/ip 协议

https 是啥?

nio 是啥?

分布式锁

zk 与 redis 分别是怎样实现的,区别与适用场景

算法

手写归并排序。 两个有序数组合并。

一个二维数组,每一列的数字从左往右增大,每一行从上往下增大,求一个指定的数字在这个数组中的位置。

一个二叉搜索树,找出某两个节点的公共祖先。

给出两个链表的头结点,找出这两个链表的交点。


 

面前初略的了解了下该单位,应该是做第三方支付金融相关的系统。

要求掌握的技术栈:

服务器,中间件,数据库,缓存及存储方案,线上运维等;熟练掌握主流开发JAVA开发框架,如SpringMVC、Dubbo、SpringBoot及SpringCloud等开源框架

 

 

一面主要还是以“基础”为主

  1. 寒暄认识介绍(略)
  2. 如何把一段逗号分隔的字符串转换成一个数组?---

split 

  1. try语句块中有一个return语句,那么紧跟在这个try后的finally{}代码会不会被执行,是return之后还是之前执行?

会,在return之后执行,会把return的结果保存

  1. String和StringBuffer、StringBuilder的区别
  2. Arraylist和LinkedList异同
  3. ArrayList与Vector区别
  4. HashMap底层实现--------JDK1.8前后有差异
  5. 创建线程的几种方式。----new Thread(){}.start()   new Thread(new Runnable{}).start()
  6. sleep和wait方法的区别
  7. 线程池的工作原理和几个重要参数?
  8. Java容器,同步容器和并发容器?
  9. JDK1.8采用的红黑树特性,以及采用红黑树的理由而不采用AVL和B树的原因?

树的高度少,更少的IO次数

  1. synchronized和java.util.concurrent.locks.Lock的比较。
  2. AtomicInteger原理,为什么要用CAS而不是synchronized?

高效

  1. 银行的后端如果出现多人想一个账户大钱的情况,会碰到什么问题?-------------站在后台程序员的角度相当于对数据库的同一个记录更新,并发写操作……进行阐述……

 

二面以框架产品对项目的应用为主

  1. springmvc处理请求的流程?
  2. spring的IOC AOP相关原理
  3. 数据库索引,底层的实现,B树索引的引入
  4. Mysql主从同步的实现原理,如何应用B+树
  5. 数据库的乐观锁、悲观锁------金融产品系统的常客吧,刚好他们公司也在用。悲观锁就是断定一定会发生并发控制下的冲突,每次获取数据做操作时都会上锁,屏蔽一切影响数据完整性的操作。乐观锁就是断定不会有冲突,只在提交时检查数据完整性。
  6. NoSQL数据库,以及MongDB和Redis使用场景?
  7. 分布式锁
  8. 分布式全局唯一ID的实现------------主要从UUID、数据库主键自增、多实例步长自增、Redis生成方案……阐述它们的优缺点,和面试官闲聊的时候,面试官聊了下雪花算法(个人是不太了解)……
  9. 集群监控所要注意的技术栈指标,如何优化等------
  10. 上亿级的数据,会面临哪些技术瓶颈挑战,如何解决?------
  11. SpringBoot、SpringCloudy项目中的应用------
  12. 谈谈项目中的项目优化从哪些方面入手?--------
  13. RPC框架原理,dubbo的作用?-------RPC翻译过来就是远程过程调用,阐述下不同的机器中服务调用……。dubbo就是应用而生的一款RPC开源框架,面向SOA(面向服务的架构)分布式架构,提供负载均衡,服务降级……
  14. 阐述下dubbo的架构?----------------服务提供,服务消费,注册中心,监控中心,服务运行容器……画个草图出来最好。
  15. 阐述dubbo的工作原理?--------
  16. Dubbo负载均衡策略--------

HR寒暄……(略)

 

总结:

个人感觉面试官的问题零散,技术栈的连贯性比较少……

简历定点投岗的时候除了对自己的技术栈亮点要写上外,最好对岗位的要求技术栈也做个前提的准备,这样才能胸有成竹。

 

 

 

一、简历:

  1. 个人基本信息(姓名、性别、意向职位和意向城市、学历联系方式)要简洁清晰
  2. 教育背景,倒叙(博、硕、本),成绩好的在这里可以来个topX,学校211/985的话标记出来。
  3. 项目经验尽量包含时间、名称、上线的项目给个链接出来最好、两三句的项目描述、项目使用的技术、你在项目中担任的角色或者负责的模块。
  4. 实习经历、高质量大赛或者论文,我这两项没有,但这两个一定是加分项。
  5. 专业技术,罗列自己会的技术就行,千万别写错了!!!要规范,别java、mysql,人家是Java、MySQL,其他的也是一样的意思。
  6. 获奖经历,简写就行,很牛的大赛或者专利软著的可以标识出来。
  7. 自我评价,三句左右就差不多了。

注意:简历上任何一块体现技术的地方自己都要吃透,可以讲明白,不会的技术不要往简历上面写,别给自己挖坑~要诚实

二、面试:

  1. 自我介绍,一套是技术面的、一套是hr面试的。一个自我介绍中夹带项目和技术的简述,hr是更侧重介绍自己基本情况和意向,可以略微提及项目技术,不必多说。

  2. 项目准备要充分,大多数的面试中很看重你在项目中做了什么,以及你对自己使用的技术的理解,需要提前准备的关于项目的问题(其实提前准备的过程也是自己消化吸收的过程,虽然这些东西都可以准备,但是依然在面试会让面试官一眼看穿你的水平以及项目的水平):

    1) 项目整体内容,项目架构,技术选型(原因)

    2) 你负责的模块,如何实现,涉及的具体技术(功能点---技术点,自己有清晰的理解)

    3) 你做的亮点

    4) 你遇到的难点,项目中的痛点,如何考虑的,如何解决的

  3. 技术面主要就是两大块,项目或者实习相关,和基础知识,基础知识又包括开发技术和算法题。开发技术每个人的情况不同,但是都要做到有广度和有深度,这决定你能不能通过和通过后的评级(白菜、sp、ssp)。算法题就刷剑指offer和leetcode,能掌握多少掌握多少,撞到原题的概率七八成。不是原题也是类型题,给你提供解题思路,让你在面试中有的聊,这很重要。

三、学习:

  1. Java基础(这里也包括计算机网络、操作系统、Linux、数据结构),我大概是从去年(2018)这时候(11月左右)有空就看看,期间寒假基本没看,还有俩月弄小论文。自己一般是做牛客上面的基础题,一天20道左右,会去看看讨论区的总结。

  2. 算法题,做剑指offer、leetcode

  3. 主要看的书 《深入理解Java虚拟机》太重要了,起码看两遍,面试场场用得上;《大型网站技术架构》结合项目,也提供架构的优化思路,可以让项目更有聊头;《深入分析JavaWeb技术内幕》加深对网站架构的理解,同上一本的意义差不多;《阿里巴巴Java开发手册》灵活运用里面点不仅对开发有帮助,对面试也有帮助;《redis设计与实现(第二版)》讲redis缓存很通透的一本;《Java高并发程序设计》大厂面试一般不都绕不开并发相关问题。面试前以及面试中我就看了以上这些书,相关内容不一定非得看书学习,给大家一个参照。

  4. 技术博客和网上一些知识点总结,自己也会看一看,知道学了哪些、还差什么。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值