10.20 一天面完三面

技术面

一面自我介绍,二面无

简要介绍项目以及项目过程中遇到的问题

项目拓展问题

  1. Redis和MySQL缓存一致性问题和解决策略(旁路缓存 / 延时双删)

  2. Redis键删除策略(定时、惰性),策略的特点和优劣(定时内存友好,惰性CPU友好)

  3. 项目用到的Redis数据结构(继续深入介绍项目)

  4. 场景:存储一件商品的信息,最适用的Redis数据结构(Hash)

  5. 缓存采用Redis的原因(内存型、速度快),如何判断比直接使用SQL查询快(AOP拦截方法进行比较)

  6. WebFilter在项目中的使用,如何检查请求数据以及检查的原因(doFilter的request参数、检查SQL敏感语句)

  7. MyBatis防止SQL注入的机制(#{}占位符),XML映射文件对应DAO接口的工作原理(全类型+接口名作为key映射对应由XML标签解析得到的MappedStatement并执行对应SQL语句)

  8. 上面说的是执行SQL语句时的工作原理,说下对接收SQL返回值的原理的了解(不太清楚,说了动态代理和拦截器,面试官说很接近)

  9. 项目中访问远程接口时使用的数据序列化传输方式(JSON)

  10. 对Dubbo的了解以及大概说说RPC的架构(特别感谢声哥的RPC项目对我的秋招项目的启发)

  11. Netty框架出现的原因(封装NIO方便编码)及其优势(基于NIO相比较传统BIO效率高、利用责任链机制实现扩展性),Netty的线程模型(主从多线程,Boss,Worker)

  12. 项目中的信道复用如何实现(存储Channel到Map作为缓存,创建连接时判断服务IP端口和序列化方式是否一致)

  13. 了解的序列化方式,展开描述Protobuf如何使用(message定义以及protoc编译等)以及与JSON的区别(可读性、序列化速度和空间占用)

  14. 项目中Zookeeper集群的部署情况和起到的作用(注册中心,引入服务声明的方式)

Java集合和数据结构

  1. HashMap底层数据结构
  2. 除链地址法以外解决Hash冲突的其他方法(开放定址、再哈希、公共溢出区,引入ThreadLocalMap的线性探测)
  3. 红黑树的特点(根节点黑、叶子节点为NIL且黑色、从根节点到叶子节点黑色节点数量一致、红色节点不能与红色节点相邻),使用红黑树的原因和优势(插入速度较快且能保证O(logn)),与AVL树的比较(AVL树要求左右子树高度差不超过1)
  4. Entry数组是否可以用链表替代(引入Hash算法,如何定位数组下标,2倍扩容原因等)
  5. 提到数组支持随机访问,深入到底层地址是如何获取到的(数组起始地址+下标偏移量)
  6. PriorityQueue底层数据结构(堆)
  7. 堆的特性(大根堆小根堆),本质属于哪种树(完全二叉树)
  8. 堆插入和删除的时间复杂度,O(logn)的话为什么不选择其他树
  9. 队列的实现方式(提到链表,还提了LeetCode算法题用两个栈去实现)
  10. 两个栈去实现队列效率差的原因
  11. 链表实现队列时入队出队的时间复杂度,O(1)是如何做到的(队头队尾指针)
  12. 栈的实现方式(数组、链表)

Java并发和操作系统

  1. 进程和Java线程的状态(创建、运行、就绪、阻塞、等待、超时等待、终止)
  2. 如何查看Java进程中线程的状态(例如查看是否死锁,使用jps,jstack命令)
  3. 如何确定线程池线程数(CPU密集型N+1,IO密集型>2N)
  4. 死锁的概念,死锁的必要条件(互斥、请求与保持、不可抢占、循环等待),大概描述下可能造成死锁的场景
  5. 描述下如何实现两个线程交替进行操作(wait/notify,Condition)
  6. sleep和wait的区别

Java基础

  1. 面向对象编程的原则(不太理解想问的是哪方面知识,说了封装、继承、多态,以及private修饰类的域、getter/setter等)
  2. static修饰符的作用(声明类变量和类方法),场景:类中存在static修饰的HashMap引用,某个实例对引用内容进行修改时对其他实例可能造成的影响(对所有实例可见)

计算机网络

  1. HTTP协议所在的层(应用),以及HTTP请求的过程在每一层用到的协议(TCP,IP等)
  2. 内网通过交换机访问外网的过程,如何得知交换机的MAC地址,ARP的流程(广播和缓存)

MySQL

  1. MySQL索引的数据结构(B+树),索引什么情况下失效(模糊查询、函数、运算符、OR、范围查询、联合索引未最左匹配)
  2. 查询语句出现慢查询时的排查和优化(EXPLAIN(Type:没用上索引,Extra:文件排序),慢查询日志,SHOW PROFILE(是否出现临时表),数据量过多(分库分表),并发量较大(主从复制、读写分离))
  3. MySQL事务的概念和作用(ACID),事务隔离级别(引入InnoDB默认隔离级别可重复读和MVCC)
  4. 场景:一段业务代码分为四个步骤:查询1万条数据,筛选出20条,插入表,提交日志。可以只在插入表添加事务吗?可以整段业务代码添加事务吗?性能方面的影响如何体现?

以上这些面试题的参考答案已经整理好了,需要的朋友可以关注微信公众号:Java团长,回复“去哪”获取~ 

HR面

  1. HR介绍公司部门架构,培养制度,询问意向部门
  2. 常规HR面问题

没有记录面试问题,基本凭印象,有些问题可能没有记住......

去哪儿网北京Java开发一、二、HR面全部通过相关推荐

  1. 【vue】二、vue2仿去哪儿网app——首页开发

    文章目录 二.vue2仿去哪儿网app--首页开发 Ⅰ 页面结构 Ⅱ 开发笔记及注意点 1.公共样式抽取 2.路径 --> 绝对路径 3.用padding-bottom实现固定宽高比 4.保证内 ...

  2. Vue 实例实战之 Vue webpack 仿去哪儿网App页面开发(应用中的几个页面简单实现)

    Vue 实例实战之 Vue webpack 仿去哪儿网App页面开发(应用中的几个页面简单实现) 目录 Vue 实例实战之 Vue webpack 仿去哪儿网App页面开发(应用中的几个页面简单实现) ...

  3. 华为Java开发一面二面 附笔试(OD)

    华为Java开发一面二面(OD)4.3 面试的是1-3年工作经验的岗位 一面:45min     主要是问项目和平时用到的一些工具之类的,因为我写的比较少,所以基本上都是问的springboot和sp ...

  4. 六十五、完成Vue项目去哪儿网App首页开发(来源:慕课网)

    2020/10/21. 周三.今天又是奋斗的一天. @Author:Runsen @Date:2020/10/21 写在前面:我是「Runsen」,热爱技术.热爱开源.热爱编程.技术是开源的.知识是共 ...

  5. 记京东Java开发实习生二面

    京东Java开发实习生二面已挂,心情虽然失落,但是还是要在这里做一点作结,以便日后做些参考.让每一次失败都变的有意义! 面试流程 这次面试的流程比较简洁,首先问了两道技术问题,然后面试官对于我的简历中 ...

  6. java服务器访问接口提示network error_北京JAVA开发三年,拿到美团35K的offer面试心得...

    前言 长文干货提示,文章为大家完整记录了一位在北京做了3年的JAVA开发的朋友,如何通过美团的面试及拿到35K的offer.全篇内容由全程电话录音再手打腾稿,原创手打不易,请记得三连支持! 文章末尾有 ...

  7. 金网安泰JAVA开发工程师面经

    时间:2016.8.5 本来我一直是投数据挖掘算法岗的,但是有些公司不招这方面的,我就打算去尝试尝试开发岗位.(由于本人编程能力太差,没有底气去面大公司的JAVA开发) 下午做了两个多小时的地铁才从学 ...

  8. 从零搭建一个java开发环境: 二、下载安装mysql数据库

    前言 这是从零搭建一个java开发环境的第二篇,这篇文章将介绍mysql数据库的下载安装.在关系型数据库中,使用较多的是mysql和oracle,我自己用一般装mysql.oracle占用内存太大,自 ...

  9. 【Vue项目】二、去哪儿网APP——首页开发

    首页开发中的重难点 重点思想:页面组件化 页面组件化下的组件引入及使用 flex:1 使用iconfont图标 使用vue-awesome-swiper实现轮播效果 实现带有分页器的轮播 实现有分页效 ...

最新文章

  1. matlab--常微分方程的数值解(ODE-s)
  2. 在线rss阅读聚合器lilina-0.7安装笔记
  3. python中global 和 nonlocal 的作用域
  4. Android Studio Problems
  5. [html] html5点击返回键怎样不让它返回上一页
  6. 你的密码安全吗?——索尼事件的教训
  7. java skip函数_【Java必修课】图说Stream中的skip()和limit()方法及组合使用
  8. django连接mysql自动同步生成数据表
  9. python 基础知识复习巩固
  10. 最近做了个【51单片机积木式图形化中文编程软件/c语言代码生成器/电路仿真】
  11. 推荐几个正经网站,让你的数据结构和算法学习事半功倍!
  12. 矩阵乘法,矩阵中各元素对应相乘及其梯度计算;
  13. Day43[20180716]_Spark SQL(二)
  14. 基础知识之————直方图
  15. android 8 奕骆,为耐而生的手机 Innos奕骆D6000评测
  16. 庄懂的技术美术入门课(美术向)——01~02学习笔记
  17. 转变:从SQL技术栈到图技术栈
  18. 三星手机虚拟定位服务器,三星量产企业服务器用3.2TB NVMe SSD
  19. 关于碰撞过程中的质量守恒问题
  20. android ifw 启动广告,应用控制器清爽无广告版-应用控制器官方最新版v1.9.5 免费版-腾牛安卓网...

热门文章

  1. 网上订餐系统设计与实现(JSP+SSM+MySQL)
  2. Python psutil cpu_percent调用说明
  3. python获取本地时间_Python实例讲解 -- 获取本地时间日期(日期计算)
  4. 新手敲代码经常犯的低级错误(持续更新ing)
  5. JavaScript高级程序设计学习笔记(三)
  6. 百度地图测距 java_java 百度地图判断两点距离1
  7. C语言 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数
  8. 手机qq表白代码大全可复制_街机游戏大全~手机版
  9. 手机QQ协议抓包教程
  10. 【松岩论道】一个道理说明股市人的发展不是靠江湖式的随机跳跃分析!