春节过后,时光飞逝,到现在更是眨眼间国庆节都过了,2021年已经过了一大半的时光了,不知道各位读者朋友们在飞逝的时光中有没有找到一份自己如意的工作,或是还在接着上一份工作在原地踏步。我有幸在上个月通过腾讯的面试,并顺利拿下了Offer 。

不过可不是一次通过,是面试了两次,没错 就是两次,第一次投的是阿里云,面试当中前两面倒是没出问题,可到了第三面 面试官扯出了spring 我尽然支支吾吾半天还没说出他所问的一半,直接被吊打。结果大家可想而知了。第二是面试的是腾讯,让我没想到的是面试官小胖子居然也问到了spring,还好通过上一次的失败经验把没啃透的知识点又狂啃了一遍。而我的回答面试官还比较满意,成功通过面试,顺利拿下Offer,下面分享一波我的面经和一些学习方面的看法和见解:

腾讯4面拿offer(面试题)

以下着重整理了一些阿里云4面的核心面试题,难度对我来说还是挺大的,不过好在自己回答得还算合理,所以也算是顺利通过了。

  • String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的?

  • Vector,ArrayList,LinkedList的区别是什么?

  • HashTable,HashMap,TreeMap区别?

  • Tomcat,Apache,JBoss的区别?

  • GET,POST区别?

  • Session,Cookie区别

  • Servlet的生命周期

  • HTTP 报文包含内容

  • Statement与PreparedStatement的区别,什么是SQL注入,如何防止SQL注入

  • sendRedirect,foward区别

  • 关于JAVA内存模型,一个对象(两个属性,四个方法)实例化100次,现在内存中的存储状态,几个对象,几个属性,几个方法。

  • 谈谈Hibernate的理解,一级和二级缓存的作用,在项目中Hibernate都是怎么使用缓存的。

  • 反射讲一讲,主要是概念,都在哪需要反射机制,反射的性能,如何优化

  • 谈谈Hibernate与Ibatis的区别,哪个性能会更高一些

  • 对Spring的理解,项目中都用什么?怎么用的?对IOC、和AOP的理解及实现原理

  • 线程同步,并发操作怎么控制

  • 描述struts的工作流程

  • 腾讯核心面试题答案:


被Spring吊打系列(点击此处获取文档完整版

01 腾讯Spring相关面试题

  • 什么是Spring?

  • 使用Spring框架的好处是什么?

  • 核心容器(应用上下文) 模块。

  • BeanFactory – BeanFactory 实现举例。

  • 解释对象/关系映射集成模块。

  • 解释WEB 模块。

  • Spring配置文件

  • 什么是Spring IOC 容器?

  • ApplicationContext通常的实现是什么?

  • Bean 工厂和 Application contexts 有什么区别?

  • 一个Spring的应用看起来象什么?

  • 什么是Spring的依赖注入?

  • 有哪些不同类型的IOC(依赖注入)方式?

  • 哪种依赖注入方式你建议使用,构造器注入,还是 Setter方法注入?

02 Spring相关面试训练题

由于Spring相关的面试训练题的题量比较多,一共有100道题,文章篇幅有限,所以只展示了25道题

  • 什么是 Spring 框架

  • 列举一些重要的Spring模块?

  • @RestController vs @Controller

  • 谈谈自己对于 Spring IoC 和 AOP 的理解

  • Spring AOP 和 AspectJ AOP 有什么区别?

  • Spring 中的 bean 的作用域有哪些?

  • Spring中的Bean是线程安全的嘛?

  • @Component 和 @Bean 的区别是什么?

  • 将一个类声明为Spring的 bean 的注解有哪些?

  • Spring 中的 bean 生命周期?

  • 谈一下SpringMVC 工作原理

  • Spring 管理事务的方式有几种?

  • Spring 事务中的隔离级别有哪几种?

  • Spring 事务中哪几种事务传播行为?

  • 那BeanFactory又是什么?

  • 那你再详细说一下这个BeanDefinition是什么?

  • BeanFactory和ApplicationContext有什么区别?

  • 如果想在初始化前修改bean的属性,如何实现?

  • 这个自定义的BeanFactoryPostProcessor是如何自动调用的?

  • 如果想在bean被初始化时进行拦截,进行额外初始化操作,如何实现?

  • 在Spring容器初始化的过程中,所有定义的bean都会被初始化吗?

  • 有看过Spring中bean初始化的源码吗?

  • 什么是Spring beans?

  • 一个 Spring Bean 定义 包含什么?

  • 如何给Spring 容器提供配置元数据?

  • 你怎样定义类的作用域?

  • 解释Spring支持的几种bean的作用域。

  • 哪些是重要的bean生命周期方法? 你能重载它们吗?

  • 什么是Spring的内部bean?

  • 什么是基于Java的Spring注解配置? 给一些注解的例子

  • 什么是基于注解的容器配置?

  • 怎样开启注解装配?

  • 在Spring框架中如何更有效地使用JDBC?

  • Spring对DAO的支持

  • 使用Spring通过什么方式访问Hibernate?

  • Spring支持的ORM

  • 如何通过HibernateDaoSupport将Spring和Hibernate结合起来?

  • ......

  • Spring训练专题答案:


03 Spring实战系列

关于Spring实战系列,一定要着重标记,因为面试对于实战要求也是有一定水准的,尤其是大厂,非常考察实战经验和思考。那么缺乏实战经验的朋友该如何提高这方面的能力呢?实际上平时多看一些实战相关的文档资料,是能够加深自己的印象,能够有一定的收获。关于Spring实战系列,也特意整理了以下文档,包括SpringBoot实战核心技术、SpringCloud微服务架构实战以及Spring源码深度解析三个方面,希望能够对各位有所帮助。

  • SpringBoot实战-核心技术

这份文档由一线架构师亲自整理,文档内梳理了SpringBoot整个项目实战过程,分要点清楚详细的分析了整个核心技术的知识内容,能够让你快速熟悉且掌握。



  • SpringCloud微服务架构实战

  • Spring源码深度解析

面试过大厂的人应该都深有体会,面试官总是会问问你“读过源码吗?”,关于源码这个问题,确实很多人感到苦恼,实际上只要肯花心思,活学活用,也没有什么知识是掌握不了的。这份Spring源码深度解析文档,内容主要分为两大部分,分别是:①核心实现;②企业应用。这两个部分又分了更详细的章节来讲解,快速读懂Spring源码,真的很有必要!

Java架构进阶系列:开源框架+性能优化+分布式+微服务架构

进阶架构师,是很多Java程序员的目标,但这个目标的实现是漫长的,是辛苦的,是需要耗费大量时间和精力的,要通过不断的学习,提升自己,才能够让自己快速成长。关于架构师,很多人不清楚到底应该怎么学习,实际上架构进阶,只要记住一个词——“系统”。这样说就意味着,系统性地学习是很有必要,那么学习什么样的知识内容呢?

关于Java架构进阶系列,我也特意整理了以下知识文档,包括:开源框架(Spring+SpringMVC+MyBatis)、性能优化(sql优化+JVM参数调优+Java代码性能优化)、分布式(Redis+MQ+Nginx+Kafka+ZK+MongoDB)、微服务架构(Dubbo+Spring Boot+Spring Cloud)。


合集(截图)



「JVM调优使用总结」为例

最后

总结到这里就快结束了

人生在勤,不索何获!

所以,如果你给自己设立了目标,那就要朝着这个方面努力前进,别让自己松懈!也祝读者朋友们Offer拿不断,升职加薪常伴你。