一年工做经验跳槽京东Java开发工程师社招经历

前期准备:

肯定好本身目标后,须要针对目标制定攻坚计划,确保顺利拿下城池。java


看一眼面试京东java开发工程师要求mysql

职位描述:web

工做职责:面试

一、独立完成中大型项目的系统分析、设计,并可以完成核心代码的编写,确保技术方案可以按计划要求,高质量的完成;redis

二、具备必定的技术架构思惟,确保设计的技术方案、开发的代码有较高性能、质量保障、扩展性、前瞻性;算法

三、对技术有较强的钻研及学习精神,可以深刻了解开源技术、现有系统技术等相关技术原理,出现问题时可以经过较强的技术手段较好的解决问题;sql

四、针对新人、普通开发人员进行有效辅导,帮助其快速成长。docker


任职要求:数据库

一、大型互联网公司3年以上核心架构经验,熟悉互联网快速迭代开发的模式,能化繁为简;后端

二、经常使用技术框架如Spring,Ibatis,Netty等有源码级研究者优先;

三、熟悉分布式系统的设计和应用,熟悉分布式、缓存、消息等机制;能对分布式经常使用技术进行合理应用,解决问题;

四、精通JVM底层原理,熟悉Tomcat运行机制,有源码经验者优先,性能调优掌握多线程及高性能的设计与编码及性能调优;有高并发应用开发经验;

五、有大数据(hadoop,hive,sqoop,hbase,spark,solr)相关经验者优先;

六、学习能力强,适应能力好;具有耐心、细心的品质;

七、对互联网应用开发的最新潮流有关注,喜欢去看及尝试最新的技术,追求编写优雅的代码,从技术趋势和思路上能影响技术团队

八、有财务、税务、财资等相关业务系统开发经验者优先


综上:须要有中大型项目经验,三年以上的核心架构经验,最主要的是须要精通Jvm底层原理等Java底层原理源码的理解与使用,恩,精通 精通 是精通


计划:

Java底层基础

准备跳槽时已经从别人社招面经知道了每轮技术面都会问及算法,JVM等等。这一块练习的比较少,像JVM这种就更是接触的不多,所以系统复习的时候这块花费的时间表比较多,因此天天的LeetCode是必不可少的,想在短短几周内刷完基本是不可能的,所以我主要按照类型去刷,还有就是须要一些视频辅助,讲Jvm的视频在各大视频网站不在少数,但真的能讲的让人通俗易懂的没发现几个,我也是找了很久才发现一位UP主发视频,讲的很不错(具体是谁就很少说了),听了两堂课一会儿感受全回来了,感受在对JVM的理解上获得升华,


组件、容器、数据库

复习的都是一些比较基础常见的组件和后端架构设计,像Mysql、Oracle、redis、docker、zookeeper、Tomcat等等。数据库的话主要复习分库分表、sql优化、读写分离、锁另外就是Redis的一些使用场景,微服务、分布式架构就准备CAP理论、BASE理论、限流、熔断、一致性问题等等


必选项:项目(重中之重)

.没有参加过开源项目,工做中的项目也平平凡凡,拿的出手的少之又少,因此说必须找亮点,扬长避短

好比我在项目中用过Quartz 、消息队列、用docker部署过项目熟悉使用docker,能够向面试官展现出本身具备必定的架构能力。

再好比你修改过一条sql从原来要跑30s到如今的10秒

而后就是能够说一些项目中比较复杂的模块,能够不用是你作的,可是必定得搞清楚模块的功能快并能能够熟练度讲出来


京东一面:

0.项目介绍

1. ArrayList,Vector,LinkedList 的存储性能和特性?

2.forward 和redirect 的区别?

3. Java 反射机制的做用

4. Servlet 建立过程及生命周期Servlet 在容器中运行时, 其实例的建立及销毁等是由容器进行控制。

5. 用 sql 语句分页(mysql/oracle)

6.J2EE J 是什么意思? 2 是什么意思 EE 是什么意思? Struts 的拦截器你是怎么作的,

是独立开发的,可以独立开发的到。而后问有哪几种拦截?

7. 简单介绍下 java ? Spring 的AOP,IOC 的讲述对 struts2 的了解, 1,2 的比较 xml的了解 J2ee 的webserviced 的协议?

8. 如何释放过分使用的 undo 表空间

9. 数据库里面游标,索引是怎么用的? 在 oracle 数据库中,用get 和load 方法这 2个方法来查没有的数据那么分别会反馈什么样的结果?

10. 写一段把本地文件 formfile 拷贝到本地文件tofile 的程序


二面:

1. 多线程、同步实现方法?

2. 适配器模式与桥梁模式的区别

3. 开发中都用到了哪些设计模式 ?用在什么场合?

4. 栈帧中的动态连接中存储的是什么?还有其余思路么?

5. 堆为何要分红新生代、老年代?比例为何是1:2?

6. This指针是什么时候赋值的?

7. 虚拟机栈须要GC么?为何?

8. 本地方法栈必定存在么?若是不是什么时候存在?

9. Jvm是用C++实现的,C++生成的对象默认是在navite method,怎么放到Jvm堆上的

10. MySQL事务的四个隔离级别? 四个级别的区别,而后说了每一个级别可能产生的问题


三面:

1. 问项目

2. 虚拟机栈、本地方法栈是同一个栈么?若是不是为何要这么设计?

3. –Xss、-X:ThreadStackSize、-XX:VMThreadStackSIze的区别?

4. –XX:NewRatio=4是什么意思?新生代占堆内存的比例是多少?

5. JVM加载class 文件原理?

6. Tomcat 的class 加载的优先顺序?

7. J2EE访问速度慢,怎么样优化?

8. 线程共享区域随虚拟机的启动/关闭而建立/销毁?

9. JVM运行时内存?


总结:

其实大厂面试也没有什么不一样,一样的题目只是问的比普通公司更加的深刻,每每一个问题能够延伸到十几个问题,一层一层全是坑,可是有针对性的去复习仍是能达到事半功倍的效果,想进大厂必须把底层学好并且还要学精能触类旁通,这样才会让面试官另眼相看。

相关文章
相关标签/搜索