2020秋招Java面试题
- Java框架
- 专业理论知识
-
- 计算机网络
- 数据库
- 数据结构与算法(主要靠刷算法题)
- Linux常用命令
- Java基础(题目太多了,Java程序员面试宝典基础部分总结的蛮好的)
总结一下可能会问到的题目,这篇博客就当做笔记了,主要是汇总了别的博主们的总结,对于我不熟悉的题目会给出在后续博客中给出答案。Java基础都比较熟悉了,所以放最后面
Java框架
1. Spring的核心特性是什么?Spring优点?
2. spring框架中需要引用哪些jar包,以及这些jar包的用途
3. 理解AOP、IoC的基本原理;
4. AOP的一些场景应用;
5. spring注入的几种方式
6. Spring容器的加载顺序?
7. spring如何实现事务管理的
8. Spring中Bean的作用域有哪些
9. 请介绍一下bean的生命周期
10. Spring中自动装配的方式有哪些
11. @Resource 和 @Autowired 区别?分别用在什么场景?
12. 静态代理和动态代理的区别?
13. Hibernate和mybatis的区别?
14. mybatis是如何工作的?
15. 对ajax的理解
16. session和cookie的区别和联系,session的生命周期,多个服务部署时session管理
17. 简述Springmvc的流程;
18. spring中beanFactory和ApplicationContext的联系和区别
19. Springmvc和Springboot有什么区别?
20. Springboot为什么配置简单?(即它自动做了什么操作才能简化程序员的操作)
21. 持久层设计要考虑的问题有哪些?请谈一下你用过的持久层框架都有哪些?
专业理论知识
计算机网络
- TCP三次握手过程、参数;
- TCP四次挥手过程、参数;
- TCP和UDP的区别?应用场景有何不同?
- TCP阻塞控制;
- OSI七层模型、各层所用到的协议;
- 一些常见协议的原理:ARP、ICMP、FTP等(TCP UDP更不用说啦,一定要了解)
数据库
- 数据库有哪些索引?原理是什么?
- 索引有什么作用?有什么特点(索引的优缺点,什么字段上建立索引)
- 索引为什么用B+树?
- B+树和B-树有什么区别?
- mysql中MyISAM和InnoDB的区别?
- 事务的四大特性(常考)
- 数据库隔离级别及各自能解决的问题
- 数据库优化的一些策略;
- 增删改查要熟悉,随时可能提一个需求让你写一个SQL语句;
- 数据库索引:聚集索引和非聚集索引的区别?
- 数据库的视图和索引都有什么特点,有什么区别?
- 高并发处理的理解
- 数据库连接池作用
数据结构与算法(主要靠刷算法题)
- 冒泡排序、快速排序…各排序算法对比
https://blog.csdn.net//article/details/90695046
- 二分查找
- 索引使用的是哪种数据结构实现
- 循环队列的相关条件和公式: 队尾指针是rear,队头是front,循环队列的长度为m
队空:rear == front
队满:(rear + 1) % m == front
当前队列长度:(rear - front + m)% m
入队列:(rear + 1)% m
出队列:(front + 1)% m
Linux常用命令
到处都是46个常考Linux面试题,随便参考一个吧
https://www.cnblogs.com/passzhang/p/8552757.html
Java基础(题目太多了,Java程序员面试宝典基础部分总结的蛮好的)
- 面向对象的特性?(封装继承多态)如何体现出来?
- 重载和重写有什么区别?
- 集合类有哪些?(常考)
- Set和List、Map的区别;
- ArrayList、Linkedlist、Vector区别?(常考,建议看下底层实现代码)
- ArrayList如何扩容?(常考)
- Map下Hashmap、TreeMap的区别?
- TreeMap底层是什么?红黑树还是二叉树?
- Map、List下哪些类是线程安全的?(常考)
- Hashmap的扩容机制;
- Hashmap如何解决哈希冲突?与HashTable有何不同?
- 正则表达式;(服务端岗位常考)
- 接口跟抽象类的区别?
- Java可以多继承吗?
- JVM垃圾回收机制;(常考)
- Java中是值传递还是引用传递?
- Java中锁机制;
- Lock的底层怎么实现的?源码怎么写的?
- sychronized的底层实现?
- sychronized修饰静态方法和修饰普通方法有什么区别?
- 异常类有哪些实现类、子类?
- 多线程中如何保证线程安全?
- 多线程有哪些常见的线程安全的类?
- 如何开启一个线程?
- get请求和post请求有什么区别?
- 反射的原理?
- ClassLoader和Class.forName()这两个有什么区别?(反射源码的考察)
- NIO这一块有什么了解?
- 谈谈堆和栈的区别
- 谈谈你所了解的设计模式,并简单描述其特点和用法,或简单写一个某某设计模式!
- HTTP基本的状态码
- 监听器、过滤器、拦截器、servlet的区别
web.xml 的加载顺序是:context- param -> listener -> filter -> servlet
监听器(listener):
在request、session、application三个对象创建消亡或者往其中增/删/改属性时自动执行指定代码的功能组件。
生命周期:随web应用的启动而启动,只初始化一次,随web应用的停止而销毁。
作用:做一些初始化的内容添加工作、设置一些基本的内容、比如一些参数或者是一些固定的对象等等。
过滤器(filter):
拦截请求,filter能够在一个请求到达控制层之前预处理用户请求,也可以在离开控制层时处理http 响应,进行一些设置以及逻辑判断,然后再传入servlet或者struts的 action进行业务逻辑,基于函数回调。
生命周期:它是随你的web应用启动而启动的,只初始化一次,以后就可以拦截相关请求,只有当你的web应用停止或重新部署的时候才销毁。
作用:a.对请求或响应(Request、Response)统一设置统一编码,简化操作;b.进行逻辑判断,如用户是否已经登陆、有没有权限访问该页面等等工作。c.过滤掉非法url
拦截器(interceptor):
拦截器是在面向切面编程中应用的,基于JAVA的反射机制,在一个业务逻辑(某个方法) 前、后调用另一个方法。
servlet:
servlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层。
- 当在浏览器输入一个网址,所要经过的全部在过程,请详细描述
- 类加载的过程?类加载器有哪些?为什么使用双亲委派模式
- 接口和抽象类的区别是什么?
- 什么是值传递和引用传递?
- Java的内存模型以及GC算法
- Java堆的结构是什么样子的?什么是堆中的永久代(Perm Gen space)
- 串行(serial)收集器和吞吐量(throughput)收集器的区别是什么?
- 在Java中,对象什么时候可以被垃圾回收?
- JVM的永久代中会发生垃圾回收么?
- Serial 与 Parallel GC之间的不同之处?
- Java 中 WeakReference 与 SoftReference的区别?
- 动态代理的两种方式,以及区别
- .Java内存泄露的问题调查定位
- 什么是迭代器(Iterator)?Iterator和ListIterator的区别是什么?
- 快速失败(fail-fast)和安全失败(fail-safe)的区别是什么?
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦