京东提前批 Java 123面, 分享攒运气和人品

注意点: 声音尽量大一点, 说话清晰, 有条理地慢慢地说(语速适中)
一个问题, 知道多少就说多少, 越多越好, 尽量让自己引导面试官
(记住, 不知道就是不知道哦, 不要乱说!)

33分钟
1. 自我介绍(项目经历, 技术背景)
闲聊(聊大学和项目)
竟然问了我是研究生吗?(额, 我是个二本学校的, 都不好意思跟面试官说学校名)
2. 技术问题
(Spring + 数据结构)
1) HashMap存储结构, put方法做哪些操作
HashMap的存储方式是哈希表,那么什么是哈希表,其实就是数组+链表。HashMap初始数组长度为16。数组的每个元素都保存着链表头的地址(或者为null),在向HashMap中put(key,value)的时候,先使用hash算法计算哈希值,然后再和数组的长度减一做与运算。计算出此键值对应该保存到数组的那个位置上,如果此位置没有元素,意思就是链表的头结点为null,那么就新建一个node结点,把key,value以及next保存。
2) 有很大的数组, 找出其中最大的K个数 (最小堆, 比较过程)
堆实际上是一棵完全二叉树(数组实现)
大根堆,每次把大的放在后面,得到升序序列

3) AOP实现原理
反射+动态***模式

接下来又是闲聊时间(聊实习)
3. 技术分享
Dubbo
SpringBoot
服务注册
底层 -> 容器

考虑业务场景

这是简历评估面, 看来是的, 加油!
约周六下午两点
考察基本功
基础
比如, 对Java语言的了解程度, 网络知识, OS, 数据库, 设计模式
能写Bug较少的代码, 逻辑性强

二面
时间: 44分钟
1. 自我介绍
2. 简历上项目介绍和实习介绍
3. Java里用过哪些集合框架
4. 设计模式知道哪些? 能手写代码吗? (除了单例之外)
5. Java内存模型
6. GC算法
Minor GC和Full GC区别

程序计数器:线程私有。是一块较小的内存,是当前线程所执行的字节码的行号指示器。是Java虚拟机规范中唯一没有规定OOM(OutOfMemoryError)的区域。
Java栈:线程私有。生命周期和线程相同。是Java方法执行的内存模型。执行每个方法都会创建一个栈帧,用于存储局部变量和操作数(对象引用)。局部变量所需要的内存空间大小在编译期间完成分配。所以栈帧的大小不会改变。存在两种异常情况:若线程请求深度大于栈的深度,抛StackOverflowError。若栈在动态扩展时无法请求足够内存,抛OOM。
Java堆:所有线程共享。虚拟机启动时创建。存放对象实力和数组。所占内存最大。分为新生代(Young区),老年代(Old区)。新生代分Eden区,Servior区。Servior区又分为From space区和To Space区。Eden区和Servior区的内存比为8:1。 当扩展内存大于可用内存,抛OOM。
方法区:所有线程共享。用于存储已被虚拟机加载的类信息、常量、静态变量等数据。又称为非堆(Non – Heap)。方法区又称“永久代”。GC很少在这个区域进行,但不代表不会回收。这个区域回收目标主要是针对常量池的回收和对类型的卸载。当内存申请大于实际可用内存,抛OOM。
本地方法栈:线程私有。与Java栈类似,但是不是为Java方法(字节码)服务,而是为本地非Java方法服务。也会抛StackOverflowError和OOM。

7. 怎样判断一个对象的存活周期长短
分代
8. SpringMVC工作流程
1、前端控制器DispatcherServlet(不需要程序员开发)
作用接收请求,响应结果,相当于转发器,***处理器。
有了DispatcherServlet减少了其它组件之间的耦合度。

2、处理器映射器HandlerMapping(不需要程序员开发)
作用:根据请求的url查找Handler

3、处理器适配器HandlerAdapter
作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler
4、处理器Handler(需要程序员开发, 类似代码中写的Controller)
注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler
返回ModelAndView

5、视图解析器View resolver(不需要程序员开发)
作用:进行视图解析,根据逻辑视图名解析成真正的视图(view)
返回View

6、视图View(需要程序员开发, jsp)
View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf...)
填充模型数据

9. Spring AOP 实现原理, 大致讲一下, 反射里面具体的类是什么
Spring Bean加载流程
在Spring出现之前,是通过new 对象来实例化bean的
SpringIOC容器的本质
它就是一个map集合

1. 获取配置文件资源
2. 对获取的xml资源进行一定的处理检验
3. 处理包装资源
4. 解析处理包装过后的资源
5. 加载提取bean并注册(添加到beanDefinitionMap中)
Spring中xml配置Bean和注解配置区别, 顺序
Spring IoC容器可以自动装配(autowire)相互协作bean之间的关联关系
就是根据注解生成beanfactory的匹配规则
注解@autowired,将被注解的对象自动装配到当前类中,有点类似于setter
10. 数据结构: 讲思路 二叉树后序遍历实现(递归)
后序遍历按照“左孩子-右孩子-根结点”的顺序进行访问。
void PostOrder(TreeNode *root) { if(root == NULL) { return; 
    } 
    PostOrder(root->left); 
    PostOrder(root->right); cout << root->val; 
}
11. 你有什么要问我的呢?
========================================================

三面
时间比较长
1个多小时了
三面:
聊实习, 聊得很细吧, 大概有20多分钟
中间问了一个问题:
秒杀系统的实现, 讲思路
参考:

三个算法题, 其实还是比较简单的
大概10多分钟
最后, 随便问了几个问题吧

1. 看过哪些源码
2. 熟悉哪个JDK版本, 版本之间的差异(JDK8)
Lambda表达式
接口的默认方法和静态方法
匿名内部类访问外部变量(final)
3. 线程池
4. 数据库方面, 比如你是否会写SQL, 还有的话,
一些性能优化相关的吧, 当然肯定有索引
5. 你有什么要问我的呢

大致流程都是上周面的, 最后结果是挂了, 当然还是很有收获的.
可能自己在分布式和缓存, 或者消息队列上不是很熟悉,
而且项目也不是很复杂.
当然, 基础还是一定要打好的!
(二面的面试官说我基础不错, 其它是他问的问题, 我都知道, 哈哈! 所以, 面试还是需要运气的!)
继续好好复习吧, 机会是留给有准备的人的!

最后也写点心情杂记吧
最近, 又要实习, 又要看书看博客复习准备面试, 真心累啊!
而且在上海2号线附近上班, 不管什么时候, 地铁里人不是一般的多, 好挤啊!
希望早点能够在家乡找到不错的工作机会, 然后回学校好好休息下, 真正地去体验生活和学习的美好.
所以呢, 现在必须拿出行动啊! 加油!
- 2018.8.13

#提前批##京东##Java工程师##面经##内推##秋招#
全部评论
挂了居然。。。。
点赞 回复
分享
发布于 2018-08-14 15:48
为啥挂了呢QAQ
点赞 回复
分享
发布于 2018-08-13 21:35
联易融
校招火热招聘中
官网直投
已经收藏。图挂了
点赞 回复
分享
发布于 2018-08-13 21:37
大佬,实习的时候怎么面试的,能分享一下么🙋~
点赞 回复
分享
发布于 2018-08-13 21:39
这样都能挂!楼主投的什么部门?
点赞 回复
分享
发布于 2018-08-13 21:52
来自普通一本的仰望,简历都没过,沉到池子里了
点赞 回复
分享
发布于 2018-08-14 13:59
怎么知道挂了呢?hr通知了吗?
点赞 回复
分享
发布于 2018-08-14 17:10
只有我京东是电话面试么,我明明就在北京,结果下午直接电话过来面试我,也没有预约过。。。
点赞 回复
分享
发布于 2018-08-14 19:32
大佬,问下spring的ioc,Aop那些,你都看源码了?问的时候你怎么回答呀
点赞 回复
分享
发布于 2018-08-14 21:23
很棒了
点赞 回复
分享
发布于 2018-08-30 21:39
想看图
点赞 回复
分享
发布于 2018-09-05 00:21
棒棒的,来自一个普通二本的仰视
点赞 回复
分享
发布于 2018-09-09 21:13

相关推荐

16 223 评论
分享
牛客网
牛客企业服务