Java面试前需要了解的东西

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 一、前言只有光头才能变强回顾前面:广州三本找Java实习经历上一篇写了自己面试的经历和一些在面试的时候遇到的题目(笔试题和面试题)。我在面试前针对Java基础也花了不少的时间,期间也将自己写过的博文粗略地刷了一遍,同时也在网上找了不少比较好的资料(部分是没看完的)。

一、前言

只有光头才能变强

回顾前面:

上一篇写了自己面试的经历和一些在面试的时候遇到的题目(笔试题和面试题)。

我在面试前针对Java基础也花了不少的时间,期间也将自己写过的博文粗略地刷了一遍,同时也在网上找了不少比较好的资料(部分是没看完的)。在这里给大家分享一下~~~

这是我刷完自己写过的笔记写的一篇文章导航,针对于PC端的:https://zhongfucheng.bitcron.com/post/shou-ji/pcduan-wen-zhang-dao-hang比较重要的知识点也画了思维导图,后面新发的文章也会补充上去的。

可能会感兴趣的资料:

二、在学习的时候整理的面试题

之前在学习或者整理知识点的时候也喜欢去找找面试题看,以下是我个人整理的面试题:

2.1集合

  1. ArrayList和Vector的区别
  2. HashMap和Hashtable的区别
  3. List和Map的区别
  4. Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()?
  5. Collection和Collections的区别
  6. 说出ArrayList,LinkedList的存储性能和特性
  7. Enumeration和Iterator接口的区别
  8. ListIterator有什么特点
  9. 并发集合类是什么?
  10. Java中HashMap的key值要是为类对象则该类需要满足什么条件?
  11. ArrayList集合加入1万条数据,应该怎么提高效率
  12. 与Java集合框架相关的有哪些最好的实践

答案:

2.2Servlet+Tomcat面试题

  1. Tomcat的缺省端口是多少,怎么修改
  2. Tomcat 有哪几种Connector 运行模式(优化)?
  3. Tomcat有几种部署方式
  4. Servlet生命周期
  5. get方式和post方式有何区别
  6. doGet与doPost方法的两个参数是什么
  7. 获取页面的元素的值有几种方式,分别说一下
  8. request.getAttribute()和request.getParameter()区别
  9. forward和redirect的区别
  10. tomcat容器是如何创建servlet类实例?用到了什么原理
  11. 什么是cookie?Session和cookie有什么区别?
  12. Servlet安全性问题

答案:

2.3JSP面试题

  1. jsp静态包含和动态包含的区别
  2. jsp有哪些内置对象?作用分别是什么?
  3. jsp和servlet的区别、共同点、各自应用的范围?
  4. 属性作用域范围
  5. 写出5种JSTL常用标签
  6. 写一个自定义标签要继承什么类
  7. JSP是如何被执行的?执行效率比SERVLET低吗?
  8. 如何避免jsp页面自动生成session对象?
  9. jsp的缺点?
  10. 说出Servlet和CGI的区别?
  11. 简述JSP的设计模式。

答案:

2.4JDBC

  1. JDBC操作数据库的步骤 ?
  2. JDBC中的Statement 和PreparedStatement,CallableStatement的区别?
  3. JDBC中大数据量的分页解决方法?
  4. 说说数据库连接池工作原理和实现方案?
  5. Java中如何进行事务的处理?
  6. 写出一段JDBC连接本机MySQL数据库的代码
  7. JDBC是如何实现Java程序和JDBC驱动的松耦合的?
  8. execute,executeQuery,executeUpdate的区别是什么?
  9. JDBC的脏读是什么?哪种数据库隔离级别能防止脏读?
  10. 什么是幻读,哪种隔离级别可以防止幻读?
  11. JDBC的DriverManager是用来做什么的?
  12. JDBC的ResultSet是什么?
  13. 有哪些不同的ResultSet?
  14. JDBC的DataSource是什么,有什么好处
  15. JDBC中存在哪些不同类型的锁?
  16. java.util.Date和java.sql.Date有什么区别?
  17. 如果java.sql.SQLException: No suitable driver found该怎么办?
  18. JDBC的RowSet是什么,有哪些不同的RowSet?
  19. 什么是JDBC的最佳实践?

答案:

2.5数据库

  1. 什么是存储过程?有哪些优缺点?
  2. 三个范式是什么
  3. 什么是视图?以及视图的使用场景有哪些?
  4. drop、delete与truncate分别在什么场景之下使用?
  5. 索引是什么?有什么作用以及优缺点?
  6. 什么是事务?
  7. 数据库的乐观锁和悲观锁是什么?
  8. 超键、候选键、主键、外键分别是什么?
  9. SQL 约束有哪几种?
  10. 数据库运行于哪种状态下可以防止数据的丢失?
  11. Mysql存储引擎
  12. MyIASM和Innodb两种引擎所使用的索引的数据结构是什么?
  13. varchar和char的区别
  14. mysql有关权限的表都有哪几个
  15. 数据表损坏的修复方式有哪些?
  16. MySQL中InnoDB引擎的行锁是通过加在什么上完成
  17. 数据库优化的思路
  18. Oracle和Mysql的区别

答案:

2.6HTTP

  1. Http与Https的区别:
  2. 什么是Http协议无状态协议?怎么解决Http协议无状态协议?
  3. URI和URL的区别
  4. 常用的HTTP方法有哪些?
  5. HTTP请求报文与响应报文格式
  6. HTTPS工作原理
  7. 一次完整的HTTP请求所经历的步骤
  8. 常见的HTTP相应状态码
  9. HTTP1.1版本新特性
  10. HTTP优化方案

答案:

2.7XML+JSON

  1. 什么是JSON和XML
  2. JSON与XML区别是什么? 有什么共同点
  3. JSON、XML解析有那些方式?
  4. XML和JSON优缺点
  5. XPath 是什么
  6. XML 命名空间是什么?它为什么很重要
  7. DOM 和 和 SAX 解析器有什么区别
  8. XSLT 是什么?

答案:

2.8过滤器和监听器面试题

  1. 监听器有哪些作用和用法?
  2. 过滤器有哪些作用和用法?
  3. web.xml 的作用?
  4. Servlet 3中的异步处理指的是什么?

答案:

2.9AJAX

  1. 什么是AJAX,为什么要使用Ajax
  2. AJAX应用和传统Web应用有什么不同?
  3. 请介绍一下XMLhttprequest对象
  4. 介绍一下XMLHttpRequest对象的常用方法和属性
  5. Ajax的实现流程是怎样的?
  6. AJAX请求总共有多少种CALLBACK
  7. XMLHttpRequest对象在IE和Firefox中创建方式有没有不同。
  8. AJAX有哪些有点和缺点?
  9. 请解释一下 JavaScript 的同源策略。
  10. 阐述一下异步加载JS。
  11. 如何解决跨域问题?
  12. Ajax 解决浏览器缓存问题?

答案:

2.10Hibernate

  1. Hibernate工作原理及为什么要用?
  2. Hibernate是如何延迟加载(懒加载)?
  3. Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系)
  4. hibernate的三种状态之间如何转换
  5. 比较hibernate的三种检索策略优缺点
  6. hibernate都支持哪些缓存策略
  7. hibernate里面的sorted collection 和ordered collection有什么区别
  8. 说下Hibernate的缓存机制
  9. Hibernate的查询方式有几种
  10. 如何优化Hibernate?
  11. 谈谈Hibernate中inverse的作用
  12. JDBC hibernate 和 ibatis 的区别
  13. 在数据库中条件查询速度很慢的时候,如何优化?
  14. 什么是SessionFactory,她是线程安全么
  15. get和load区别
  16. persist和save的区别
  17. merge的含义
  18. 主键生成策略有哪些
  19. 简述hibernate中getCurrentSession和openSession区别
  20. Hibernate中的命名SQL查询指的是什么?
  21. 可不可以将Hibernate的实体类定义为final类?

答案:

2.11Mybatis

  1. {}和${}的区别是什么?

  2. 当实体类中的属性名和表中的字段名不一样 ,怎么办 ?
  3. 如何获取自动生成的(主)键值?
  4. 在mapper中如何传递多个参数?
  5. Mybatis动态sql是做什么的?都有哪些动态sql?能简述一下动态sql的执行原理不?
  6. Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复?
  7. 为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?
  8. 通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗?
  9. Mybatis比IBatis比较大的几个改进是什么
  10. 接口绑定有几种实现方式,分别是怎么实现的?
  11. Mybatis是如何进行分页的?分页插件的原理是什么?
  12. 简述Mybatis的插件运行原理,以及如何编写一个插件
  13. Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?
  14. Mybatis都有哪些Executor执行器?它们之间的区别是什么?
  15. MyBatis与Hibernate有哪些不同?

答案:

三、网上优质的面试题

以下基本都是我看过,或者没看完的优质面试题博文(也有部分没有看,但觉得不错的面试题)~~~

3.1有答案的面试题

一、优质面试题整理---1:

二、优质面试题整理---2(里边有7个部分的):

三、优质面试题整理---3:

四、优质面试题整理---4:

五、优质面试题整理---5:

六、优质面试题整理---6(牛客网120题):

七、优质面试题整理---7:

3.2没有答案的面试题

此部分大多数没有答案的,但都是比较优质的面试题

推荐一:

推荐二:

推荐三:

四、除面试题之外还要了解的地方

互联网校招指南:

程序员简历:

三方协议究竟是什么?(我之前看完,个人简单总结一下:如果你不是非常确定毕业前留在某间公司,就不要着急签第三方!【我是非专业人员,这方面得多自己考虑,以上是我的个人对三方协议的理解】)

简历投递平台(我投递过的):

  • BOSS直聘
  • 前程无忧
  • 实习憎

优质的面经+资料:

五、总结

网上的资源还是多呀,上面基本都是我在逛博客,找资料的时候积累收藏起来的。当然了,网上的资源很多很多,如果你也收藏了自认为比较好的资源,不妨在评论区分享出来一起学习学习~~

这些网上这么多的面试题也不可能全部看完,根据自己的情况来看吧。看面试题也是校验自己是否真正理解了这个知识点,也很有可能会有新的收获。

最后,祝在找工作的朋友们能找到一份心仪的工作,在工作的朋友们能够加薪,在读书的朋友们学业进步哈~~

如果文章有错的地方欢迎指正,大家互相交流。习惯在微信看技术文章,想要获取更多的Java资源的同学,可以关注微信公众号:Java3y。为了大家方便,刚新建了一下qq群:742919422,大家也可以去交流交流。谢谢支持了!希望能多介绍给其他有需要的朋友

文章的目录导航

更多的文章可往: 文章的目录导航
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
安全 架构师 Java
Java大厂面试高频:Collection 和 Collections 到底咋回答?
Java中的`Collection`和`Collections`是两个容易混淆的概念。`Collection`是集合框架的根接口,定义了集合的基本操作方法,如添加、删除等;而`Collections`是一个工具类,提供了操作集合的静态方法,如排序、查找、同步化等。简单来说,`Collection`关注数据结构,`Collections`则提供功能增强。通过小王的面试经历,我们可以更好地理解这两者的区别及其在实际开发中的应用。希望这篇文章能帮助你掌握这个经典面试题。
101 4
|
6月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
184 2
|
2月前
|
缓存 安全 Java
java面试-基础语法与面向对象
本文介绍了 Java 编程中的几个核心概念。首先,详细区分了方法重载与重写的定义、发生阶段及规则;其次,分析了 `==` 与 `equals` 的区别,强调了基本类型和引用类型的比较方式;接着,对比了 `String`、`StringBuilder` 和 `StringBuffer` 的特性,包括线程安全性和性能差异;最后,讲解了 Java 异常机制,包括自定义异常的实现以及常见非检查异常的类型。这些内容对理解 Java 面向对象编程和实际开发问题解决具有重要意义。
|
4月前
|
Java 程序员
Java社招面试中的高频考点:Callable、Future与FutureTask详解
大家好,我是小米。本文主要讲解Java多线程编程中的三个重要概念:Callable、Future和FutureTask。它们在实际开发中帮助我们更灵活、高效地处理多线程任务,尤其适合社招面试场景。通过 Callable 可以定义有返回值且可能抛出异常的任务;Future 用于获取任务结果并提供取消和检查状态的功能;FutureTask 则结合了两者的优势,既可执行任务又可获取结果。掌握这些知识不仅能提升你的编程能力,还能让你在面试中脱颖而出。文中结合实例详细介绍了这三个概念的使用方法及其区别与联系。希望对大家有所帮助!
268 60
|
3月前
|
Java 程序员 开发者
Java社招面试题:一个线程运行时发生异常会怎样?
大家好,我是小米。今天分享一个经典的 Java 面试题:线程运行时发生异常,程序会怎样处理?此问题考察 Java 线程和异常处理机制的理解。线程发生异常,默认会导致线程终止,但可以通过 try-catch 捕获并处理,避免影响其他线程。未捕获的异常可通过 Thread.UncaughtExceptionHandler 处理。线程池中的异常会被自动处理,不影响任务执行。希望这篇文章能帮助你深入理解 Java 线程异常处理机制,为面试做好准备。如果你觉得有帮助,欢迎收藏、转发!
216 14
|
3月前
|
安全 Java 程序员
Java 面试必问!线程构造方法和静态块的执行线程到底是谁?
大家好,我是小米。今天聊聊Java多线程面试题:线程类的构造方法和静态块是由哪个线程调用的?构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节有助于掌握Java多线程机制。下期再见! 简介: 本文通过一个常见的Java多线程面试题,详细讲解了线程类的构造方法和静态块是由哪个线程调用的。构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节对掌握Java多线程编程至关重要。
90 13
|
4月前
|
算法 安全 Java
Java线程调度揭秘:从算法到策略,让你面试稳赢!
在社招面试中,关于线程调度和同步的相关问题常常让人感到棘手。今天,我们将深入解析Java中的线程调度算法、调度策略,探讨线程调度器、时间分片的工作原理,并带你了解常见的线程同步方法。让我们一起破解这些面试难题,提升你的Java并发编程技能!
159 16
|
4月前
|
Java 程序员 调度
Java 高级面试技巧:yield() 与 sleep() 方法的使用场景和区别
本文详细解析了 Java 中 `Thread` 类的 `yield()` 和 `sleep()` 方法,解释了它们的作用、区别及为什么是静态方法。`yield()` 让当前线程释放 CPU 时间片,给其他同等优先级线程运行机会,但不保证暂停;`sleep()` 则让线程进入休眠状态,指定时间后继续执行。两者都是静态方法,因为它们影响线程调度机制而非单一线程行为。这些知识点在面试中常被提及,掌握它们有助于更好地应对多线程编程问题。
190 9
|
4月前
|
安全 Java 程序员
Java面试必问!run() 和 start() 方法到底有啥区别?
在多线程编程中,run和 start方法常常让开发者感到困惑。为什么调用 start 才能启动线程,而直接调用 run只是普通方法调用?这篇文章将通过一个简单的例子,详细解析这两者的区别,帮助你在面试中脱颖而出,理解多线程背后的机制和原理。
145 12
|
4月前
|
监控 Dubbo Java
Java Dubbo 面试题
Java Dubbo相关基础面试题

热门文章

最新文章