去哪儿网北京Java开发一、二、HR面全部通过
10.20 一天面完三面
技术面
一面自我介绍,二面无
简要介绍项目以及项目过程中遇到的问题
项目拓展问题
Redis和MySQL缓存一致性问题和解决策略(旁路缓存 / 延时双删)
Redis键删除策略(定时、惰性),策略的特点和优劣(定时内存友好,惰性CPU友好)
项目用到的Redis数据结构(继续深入介绍项目)
场景:存储一件商品的信息,最适用的Redis数据结构(Hash)
缓存采用Redis的原因(内存型、速度快),如何判断比直接使用SQL查询快(AOP拦截方法进行比较)
WebFilter在项目中的使用,如何检查请求数据以及检查的原因(doFilter的request参数、检查SQL敏感语句)
MyBatis防止SQL注入的机制(#{}占位符),XML映射文件对应DAO接口的工作原理(全类型+接口名作为key映射对应由XML标签解析得到的MappedStatement并执行对应SQL语句)
上面说的是执行SQL语句时的工作原理,说下对接收SQL返回值的原理的了解(不太清楚,说了动态代理和拦截器,面试官说很接近)
项目中访问远程接口时使用的数据序列化传输方式(JSON)
对Dubbo的了解以及大概说说RPC的架构(特别感谢声哥的RPC项目对我的秋招项目的启发)
Netty框架出现的原因(封装NIO方便编码)及其优势(基于NIO相比较传统BIO效率高、利用责任链机制实现扩展性),Netty的线程模型(主从多线程,Boss,Worker)
项目中的信道复用如何实现(存储Channel到Map作为缓存,创建连接时判断服务IP端口和序列化方式是否一致)
了解的序列化方式,展开描述Protobuf如何使用(message定义以及protoc编译等)以及与JSON的区别(可读性、序列化速度和空间占用)
- 项目中Zookeeper集群的部署情况和起到的作用(注册中心,引入服务声明的方式)
Java集合和数据结构
- HashMap底层数据结构
- 除链地址法以外解决Hash冲突的其他方法(开放定址、再哈希、公共溢出区,引入ThreadLocalMap的线性探测)
- 红黑树的特点(根节点黑、叶子节点为NIL且黑色、从根节点到叶子节点黑色节点数量一致、红色节点不能与红色节点相邻),使用红黑树的原因和优势(插入速度较快且能保证O(logn)),与AVL树的比较(AVL树要求左右子树高度差不超过1)
- Entry数组是否可以用链表替代(引入Hash算法,如何定位数组下标,2倍扩容原因等)
- 提到数组支持随机访问,深入到底层地址是如何获取到的(数组起始地址+下标偏移量)
- PriorityQueue底层数据结构(堆)
- 堆的特性(大根堆小根堆),本质属于哪种树(完全二叉树)
- 堆插入和删除的时间复杂度,O(logn)的话为什么不选择其他树
- 队列的实现方式(提到链表,还提了LeetCode算法题用两个栈去实现)
- 两个栈去实现队列效率差的原因
- 链表实现队列时入队出队的时间复杂度,O(1)是如何做到的(队头队尾指针)
- 栈的实现方式(数组、链表)
Java并发和操作系统
- 进程和Java线程的状态(创建、运行、就绪、阻塞、等待、超时等待、终止)
- 如何查看Java进程中线程的状态(例如查看是否死锁,使用jps,jstack命令)
- 如何确定线程池线程数(CPU密集型N+1,IO密集型>2N)
- 死锁的概念,死锁的必要条件(互斥、请求与保持、不可抢占、循环等待),大概描述下可能造成死锁的场景
- 描述下如何实现两个线程交替进行操作(wait/notify,Condition)
- sleep和wait的区别
Java基础
- 面向对象编程的原则(不太理解想问的是哪方面知识,说了封装、继承、多态,以及private修饰类的域、getter/setter等)
- static修饰符的作用(声明类变量和类方法),场景:类中存在static修饰的HashMap引用,某个实例对引用内容进行修改时对其他实例可能造成的影响(对所有实例可见)
计算机网络
- HTTP协议所在的层(应用),以及HTTP请求的过程在每一层用到的协议(TCP,IP等)
- 内网通过交换机访问外网的过程,如何得知交换机的MAC地址,ARP的流程(广播和缓存)
MySQL
- MySQL索引的数据结构(B+树),索引什么情况下失效(模糊查询、函数、运算符、OR、范围查询、联合索引未最左匹配)
- 查询语句出现慢查询时的排查和优化(EXPLAIN(Type:没用上索引,Extra:文件排序),慢查询日志,SHOW PROFILE(是否出现临时表),数据量过多(分库分表),并发量较大(主从复制、读写分离))
- MySQL事务的概念和作用(ACID),事务隔离级别(引入InnoDB默认隔离级别可重复读和MVCC)
- 场景:一段业务代码分为四个步骤:查询1万条数据,筛选出20条,插入表,提交日志。可以只在插入表添加事务吗?可以整段业务代码添加事务吗?性能方面的影响如何体现?
以上这些面试题的参考答案已经整理好了,需要的朋友可以关注微信公众号:Java团长,回复“去哪”获取~
HR面
- HR介绍公司部门架构,培养制度,询问意向部门
- 常规HR面问题
没有记录面试问题,基本凭印象,有些问题可能没有记住......
去哪儿网北京Java开发一、二、HR面全部通过相关推荐
- 【vue】二、vue2仿去哪儿网app——首页开发
文章目录 二.vue2仿去哪儿网app--首页开发 Ⅰ 页面结构 Ⅱ 开发笔记及注意点 1.公共样式抽取 2.路径 --> 绝对路径 3.用padding-bottom实现固定宽高比 4.保证内 ...
- Vue 实例实战之 Vue webpack 仿去哪儿网App页面开发(应用中的几个页面简单实现)
Vue 实例实战之 Vue webpack 仿去哪儿网App页面开发(应用中的几个页面简单实现) 目录 Vue 实例实战之 Vue webpack 仿去哪儿网App页面开发(应用中的几个页面简单实现) ...
- 华为Java开发一面二面 附笔试(OD)
华为Java开发一面二面(OD)4.3 面试的是1-3年工作经验的岗位 一面:45min 主要是问项目和平时用到的一些工具之类的,因为我写的比较少,所以基本上都是问的springboot和sp ...
- 六十五、完成Vue项目去哪儿网App首页开发(来源:慕课网)
2020/10/21. 周三.今天又是奋斗的一天. @Author:Runsen @Date:2020/10/21 写在前面:我是「Runsen」,热爱技术.热爱开源.热爱编程.技术是开源的.知识是共 ...
- 记京东Java开发实习生二面
京东Java开发实习生二面已挂,心情虽然失落,但是还是要在这里做一点作结,以便日后做些参考.让每一次失败都变的有意义! 面试流程 这次面试的流程比较简洁,首先问了两道技术问题,然后面试官对于我的简历中 ...
- java服务器访问接口提示network error_北京JAVA开发三年,拿到美团35K的offer面试心得...
前言 长文干货提示,文章为大家完整记录了一位在北京做了3年的JAVA开发的朋友,如何通过美团的面试及拿到35K的offer.全篇内容由全程电话录音再手打腾稿,原创手打不易,请记得三连支持! 文章末尾有 ...
- 金网安泰JAVA开发工程师面经
时间:2016.8.5 本来我一直是投数据挖掘算法岗的,但是有些公司不招这方面的,我就打算去尝试尝试开发岗位.(由于本人编程能力太差,没有底气去面大公司的JAVA开发) 下午做了两个多小时的地铁才从学 ...
- 从零搭建一个java开发环境: 二、下载安装mysql数据库
前言 这是从零搭建一个java开发环境的第二篇,这篇文章将介绍mysql数据库的下载安装.在关系型数据库中,使用较多的是mysql和oracle,我自己用一般装mysql.oracle占用内存太大,自 ...
- 【Vue项目】二、去哪儿网APP——首页开发
首页开发中的重难点 重点思想:页面组件化 页面组件化下的组件引入及使用 flex:1 使用iconfont图标 使用vue-awesome-swiper实现轮播效果 实现带有分页器的轮播 实现有分页效 ...
最新文章
- matlab--常微分方程的数值解(ODE-s)
- 在线rss阅读聚合器lilina-0.7安装笔记
- python中global 和 nonlocal 的作用域
- Android Studio Problems
- [html] html5点击返回键怎样不让它返回上一页
- 你的密码安全吗?——索尼事件的教训
- java skip函数_【Java必修课】图说Stream中的skip()和limit()方法及组合使用
- django连接mysql自动同步生成数据表
- python 基础知识复习巩固
- 最近做了个【51单片机积木式图形化中文编程软件/c语言代码生成器/电路仿真】
- 推荐几个正经网站,让你的数据结构和算法学习事半功倍!
- 矩阵乘法,矩阵中各元素对应相乘及其梯度计算;
- Day43[20180716]_Spark SQL(二)
- 基础知识之————直方图
- android 8 奕骆,为耐而生的手机 Innos奕骆D6000评测
- 庄懂的技术美术入门课(美术向)——01~02学习笔记
- 转变:从SQL技术栈到图技术栈
- 三星手机虚拟定位服务器,三星量产企业服务器用3.2TB NVMe SSD
- 关于碰撞过程中的质量守恒问题
- android ifw 启动广告,应用控制器清爽无广告版-应用控制器官方最新版v1.9.5 免费版-腾牛安卓网...
热门文章
- 网上订餐系统设计与实现(JSP+SSM+MySQL)
- Python psutil cpu_percent调用说明
- python获取本地时间_Python实例讲解 -- 获取本地时间日期(日期计算)
- 新手敲代码经常犯的低级错误(持续更新ing)
- JavaScript高级程序设计学习笔记(三)
- 百度地图测距 java_java 百度地图判断两点距离1
- C语言 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数
- 手机qq表白代码大全可复制_街机游戏大全~手机版
- 手机QQ协议抓包教程
- 【松岩论道】一个道理说明股市人的发展不是靠江湖式的随机跳跃分析!