飞道的博客

2021最适合Java程序员学习路线,面经和面试题1000道

357人阅读  评论(0)

这篇写了很久,原以为两三天搞定,结果整理下来差不多七天了,全文有Java学习路线,123+HR面面经和1000道最常见的面试题(1000道)话不多说直接上干货

一门永不过时的编程语言——Java 编程开发。

Java编程语言占比:

据官方数据统计,在全球编程语言工程师的数量上,Java编程语言以1000万的程序员数量位居首位。 而且很多软件的开发都离不开Java编程,因此其程序员的数量最多。而在以Java编程为核心的开发领域中,javaEE程序员的需求量10年来一直居于首位!

Java工程师就业:

1.通过各大招聘网站统计,全国海量公司都在招聘Java开发工程师

2.北京Java开发工程师平均薪资,即16788元

3.全国Java开发薪资前三:北京 上海 广州

Java学习路线

Java基础课程

Java基础课程内容涉及:Java开发介绍、Java数组、Java面向对象、常用基础类、集合、IO流、多线程、异常、反射。

一:Java开发介绍

  1. DOS常用命令

  2. JVM、JRE、JDK之间的关系

  3. Java开发环境的搭建:安装JDK,配置环境变量

  4. Java入门程序(Java的开发流程)

  5. Java的注释,标识符、标识符的命名规范

  6. Java基本数据类型

  7. 变量和常量的定义及初始化

  8. Java的运算符

  9. 运算符的优先级

  10. Java分支语句之if…else

  11. 循环的嵌套

  12. 方法的定义

  13. 方法的形参和实参

  14. 方法的递归调用

二、Java数组

  1. Java 数组的定义

  2. Java 数组的声明

  3. 数组的优势与局限

  4. 数组的遍历访问(普通循环,增强for循环)

  5. 数组元素的顺序查找

  6. 数组元素的冒泡法排序

  7. Arrays工具类的使用

  8. 二维数组

三、Java面向对象

  1. 面向对象设计思想

  2. 面向对象的分析与设计

  3. Java与面向对象

  4. 类中成员变量的定义与意义

  5. 构造方法的定义和调用

  6. 面向对象的封装特性

  7. 局部变量和成员变量的作用域问题

  8. 静态属性、静态方法、静态代码块

  9. 面向对象的继承特性

  10. 继承中构造方法的细节

  11. 面向对象的多态特性

  12. 抽象方法与抽象类

  13. 接口

四、异常

  1. 异常的概念

  2. 异常的分类

  3. 异常的理解

  4. 常见异常介绍

  5. 运行时异常

  6. 编译时异常

  7. 运行和编译异常区别

  8. 异常的处理方式之捕获异常

  9. 异常的处理方式之抛出异常

  10. 异常的处理方式之断点调试

  11. 断点调试之引导运行步骤

  12. 自定义异常

  13. 异常关键字处理

  14. 关键字执行流程

  15. 异常总结

五、集合

  1. 集合的概念和作用

  2. 集合和数组的区别

  3. 集合框架体系介绍

  4. 集合框架之Collection接口

  5. ArrayList和LinkedList的方法使用

  6. ArrayList和LinkedList各自的工作原理分析原理分析

  7. 使用多种方式遍历集合

  8. HashSet和LinkedHashSet各自的工作原理分析

  9. 集合框架之Map接口

  10. 泛型的使用

  11. Collections工具类的使用

六、IO流

  1. File类的作用

  2. File类中常用方法的使用介绍

  3. 使用File类操作文件和文件夹

  4. 相对路径和绝对路径的介绍

  5. IO流的概念和工作原理

  6. IO流的分类

  7. 文件流的使用

  8. 转换流的使用

  9. 缓冲流的使用

  10. 对象流的使用

  11. 内存流的使用

  12. 使用不同的流实现文件内容的拷贝

七、多线程

  1. 进程和线程的介绍

  2. 进程和线程之间的区别与联系

  3. 线程实现方式之继承自Thread类

  4. 线程实现方式之实现Runnable接口

  5. 线程实现方式之线程池

  6. 线程的生命周期

  7. 线程中常用方法的使用

END

第二阶段:JavaWeb

JavaWeb课程内容涉及:HTML5课程、CSS3、JavaScript、MySQL使用、JDBC连接池、Servlet、JSP、AJAX、jQuery、Bootstrap。

一、HTML5

  1. html概述

  2. html基本标签

  3. 图片标签

  4. 超链接标签

  5. 表格标签

  6. 无序列表标签

  7. 有序列表标签

  8. 定义列表标签

  9. div标签

  10. 语义化标签

  11. 表单标签

二、CSS3

  1. CSS3简介和用途

  2. CSS3书写规范

  3. CSS3基本语法

  4. CSS3三种使用方式

  5. 标签选择器

  6. Id选择器

  7. Class选择器

  8. 属性选择器

  9. 层次选择器

  10. 文字、文本属性

  11. 背景、列表属性

  12. 尺寸、显示、轮廓属性

  13. 浮动、定位属性

  14. 盒子模型

  15. CSS3高级属性

三、JavaScript

  1. JavaScript概述

  2. JavaScript发展史

  3. JavaScript组成

  4. 数据类型

  5. 运算符

  6. 分支语句

  7. 循环语句

  8. 系统函数、自定义函数、匿名函数

  9. 常见事件

  10. 数组、字符串、日期对象

  11. 正则表达式

  12. BOM对象:window、history、location

  13. DOM概念

  14. DOM操作:创建、修改内容、删除

  15. Css样式操作

### 四、MySQL使用  或oracle数据库

  1. 数据库简介

  2. MySQL的安装与使用

  3. MySQL客户端和服务器配置

  4. 用户权限管理

  5. DDL创建数据库和表

  6. 约束与外键

  7. DML实现添加、修改、删除数据

  8. 聚合函数、日期函数等

  9. DQL简单查询

  10. 排序、分组、筛选

  11. 多表查询

  12. 子查询

  13. in和exists关键字

  14. 分页查询

  15. Mysql SQL语句优化介绍

6

五、JDBC连接池

  1. JDBC概述

  2. JDBC使用步骤

  3. Connection、Statement、ResultSet接口

  4. 使用JDBC 完成数据库DML操作

  5. PreparedStatement对象

  6. 大数据的操作

  7. 批量处理与元数据

  8. 事务处理

  9. 隔离级别

  10. 自定义连接池

  11. DBCP、C3p0连接池

  12. DBUtis工具类

  13. QueryRunner

  14. 自定义结果集处理

  15. 连接池知识总结

六、Servlet

  1. Tomcat与Eclipse的集成开发

  2. 什么是Servlet

  3. Servlet的进化史

  4. Servlet的优化过程

  5. Servlet中应用的多线程概念

  6. Servlet接收客户端请求信息

  7. Servlet响应客户端信息

  8. Servlet的生命周期

  9. 重定向写法

  10. 转发写法

  11. 转发和重定向区别

  12. HttpServletRequest获取中文乱码问题

  13. HttpServletResponse响应中文乱码问题

  14. Servlet路径映射问题

  15. Servlet多路径映射

七、JSP

  1. 什么是JSP

  2. JSP的内置对象

  3. 透析JSP的本质

  4. JSTL+EL

  5. MVC介绍

  6. 分层的重要性

  7. Web工程中事务实现

  8. Session的使用

  9. Cookie的使用

  10. web工程中连接池的使用

  11. 实现用户的自动登录

  12. 文件的上传、下载

  13. 过滤器、 监听器

  14. 反射、注解、泛型

  15. 综合案例练习

八、AJAX

  1. Ajax技术背景

  2. Ajax技术的理解

  3. XMLHttpRequest使用步骤

  4. XMLHttpRequest GET/POST的区别

  5. 同步请求&异步请求

  6. 同步请求&异步请求的区别

  7. Ajax获取不同的返回值类型

  8. Ajax使用原生JavaScript和Jquery的区别

  9. Ajax响应状态处理

  10. JSON语法

  11. Java JSON 解析

  12. Java JSON 生成

  13. Java JSON 第三方工具快速解析

  14. JavaScript JSON转换

  15. Jquery JSON转换

END

Java框架课程

Java框架课程内容涉及:Spring、Spring MVC、MyBatis、SVN、Git、Maven、SpringBoot

一、Spring

  1. 框架原理介绍

  2. 框架环境搭建

  3. 快速入门

  4. 创建Bean的方式及实现原理

  5. Bean种类

  6. Bean生命周期

  7. Bean的作用域

  8. Bean的注值方式

  9. 整合Junit测试

  10. 注解装配Bean

  11. 注解装配Bean

  12. AOP思想、原理解剖

  13. AOP底层JDK动态代理

14.AOP编程

  1. AspectJ介绍及实现AOP开发

16.事务

  1. Web项目集成Spring

二、Spring MVC

  1. Spring MVC 概述

  2. 使用 @RequestMapping映射请求

  3. 请求处理方法签名概述

  4. 处理方法签名详细说明

  5. 使用 HttpMessageConverter

  6. 处理模型数据

  7. 数据绑定流程剖析

  8. 数据格式化

  9. 数据校验

  10. 视图和视图解析器

  11. 处理方法的数据绑定

  12. 视图和视图解析器

  13. 文件上传下载

  14. JSON处理

  15. 拦截器

三、MyBatis

  1. MyBatis数据框架介绍

  2. MyBatis对比Hibernate框架

  3. MyBatis配置、查询数据

  4. MyBatis全局配置文件

  5. MyBatis全局配置文件元素详细介绍

  6. Mapper映射文件

  7. MyBatis两种开发方式

  8. MyBatis中别名配置

  9. MyBatis # 和 $ 拼接参数区别

  10. 关联查询,动态sql

  11. MyBatis缓存机制、整合ehcache

  12. MyBatis二级缓存处理

  13. MyBatis、Spring、SpringMVC整合

  14. 分页插件

  15. MyBatis逆向工程

四、SVN   和git

  1. SVN简介

  2. SVN和Git对比

  3. SVN服务器搭建

  4. SVN创建仓库

  5. SVN创建用户以及分配权限

  6. SVN签出、提交、更新

  7. Eclipse整合svn插件

  8. Idea整合svn插件

  9. 使用SVN更新提交

  10. SVN仓库分析

  11. SVN协同修改&冲突解决

  12. SVN代码整合注意事项

  13. SVN权限管理

  14. SVN数据回滚

  15. TortoiseSVN

五、Maven

  1. Maven环境搭建

  2. Maven构建项目

  3. Maven本地仓库配置

  4. Maven中央仓库配置

  5. Maven基本概念

  6. Maven基本命令介绍

  7. Maven于Eclipse整合

  8. Maven于Idea整合

  9. Maven创建web工程

  10. pom.xml、依赖管理

  11. 坐标、依赖、生命周期等

  12. Eclipse下的Maven使用

  13. Maven中 继承、聚合

  14. Maven构建SSH/SSM应用

  15. 自动部署、持续集成、持续部署

六、部分

项目开发

123+HR面面经

背景

软件工程大三在读,面试后台开发,去年8月开始准备,刷题 + 看书 + 视频+培训

项目:做了一个分布式的销售系统(主要是为了用一用SpringCloud的组件之类的),顺便实现了一下主从复制,负载均衡什么的,可以说是一个大杂烩的Demo

部门:ieg 腾讯游戏

  • 3.29 更新 一二三面
  • 4.2 更新 hr面 许愿offer
  • 4.9 更新 已oc,拒了字节和阿里,腾讯冲冲冲

3.11 一面(40分钟)

技术

  • 自我介绍
  • 两个数组,单个数组数据不重复,怎么找重复元素?说说思路就好
  • 冒泡排序说一说?插入排序说一说?
  • 你简历上写有一直刷题,给我看看你leetcode主页呗
  • 你项目上的主从复制怎么实现的?
  • 你怎么保证主从数据一致性?
  • 如果出现了某种原因数据不一致了怎么办?
  • 你用redis做缓存,那有没有考虑过性能的问题?
  • 读写分离怎么实现的?
  • Map线程安全吗?
  • 堆栈的区别说一说
  • 用过啥数据结构呀?(这里说了数组、链表、栈、集合、队列)
  • 为啥不用树?(说平时业务用树比较少,但是刷题刷过很多)
  • 设计模式了解吗?工厂模式说一说?
  • 单例模式呢?
  • Linux用过吗?怎么查询24小时内修改过的文件?
  • 你是哪里人?(唠嗑环节)

反问

  • 是哪个部门啊?(ieg,具体部门当时有点惊讶ieg没注意听5555)
  • 听说IEG用C++比较多,但我用的是Java,我需要补充一些什么知识?(了解一下go)

3.20 二面(30分钟)

技术

  • 自我介绍
  • 项目架构是怎么样的?
  • 负载均衡怎么实现的?有什么用?
  • 计算机的内存是怎么存在的?
  • 局部变量和全局变量在内存中有什么区别?
  • 索引的类型有几种?
  • 聚簇索引细说一下吧
  • 哈希索引和聚簇索引有什么区别?
  • 使用上呢,这两个使用上有什么区别?(当时没答上来,觉得是要从优化那块去说)
  • 三次握手
  • 三次握手为什么是三次,两次四次行不行?
  • Linux常用命令,说三个吧
  • top命令能不能说一说
  • 我想查端口占用情况用什么命令?

算法 (全都是说思路就好)

  • 反转链表
  • 倒序输出链表
  • 二叉树前序遍历
  • 二叉树后序遍历

当时觉得前面基础答得不好,后两题就想弥补一下,所以跟面试官说递归太简单了我说迭代思路吧。面试官后面也有说算法基础不错,很开心,嘿嘿

反问

  • 这是同个部门的二面吗?因为当时我是初试完了又变成初试,我以为是挂了又被捞了。。(是同部门二面)
    这次面试您觉得我需要补充哪里的知识?(算法功底很扎实,相比起来基础有点逊色了,多看看数据库的基础)
  • 工作地点在哪?(深圳南山)【这里面试官催我快点结束,我就没敢问了,其实我想问的是科兴还是腾大还是滨海hhhh】

3.29 三面(40分钟)

技术

  • 之前做过什么项目?
  • 联合索引有什么规则?
  • 最左匹配的原理是什么?(一开始没想到,面试官提示从底层考虑,秒想到B+树排序的原因,面试官说不错不错)

非技术

  • 你说你之前去找老师做项目,当时是怎么找的?
  • 在老师的项目组里你觉得你是怎么样的
  • 为什么要做一个分布式的项目
  • 为什么要做负载均衡?为什么主从复制?你是怎么想的?
  • 有没有面试别的公司?(回答了还投了字节)
  • 喜欢腾讯还是喜欢字节?(说腾讯面试的体验比字节好)
  • 那你前两面有啥感觉?(面试官这里是笑着说的,就开玩笑的那种感觉)
  • 家里同意来深圳吗?
  • 为啥不考研?
  • 生活中遇到过什么公平的事情?不公平的呢?
  • 大学里遇到过什么特别有挑战性的事情吗?技术非技术都可以说
  • 报高考志愿的时候有没有想过去更好的学校?
  • 描述一下你比较向往的工作状态

反问

  • 我可能需要一些时间去学习go(如果你能进来的话会有缓冲期的,你现在也可以看看go)
  • 如果有幸进去的话,会做什么(应该是上层应用,分布式啥啥啥的,跟你做的那个项目差不多)
  • 面试隔得有点久(最近有点忙,别着急,我加你微信,到时候有啥事直接找我)
  • 面试结束一刷新,流程到HR了,开心,嘻嘻

4.2 HR面

  • 自我介绍
  • 当时是出于什么样的心态去找老师做项目的?
  • 能给我描述一下当时你做这个项目也业务吗?
  • 看你还有一个自己做的开源项目,你当时是出于什么目的去做这个项目的?
  • 在做这个项目的过程中遇到过什么困难让你特别有印象的?
  • 这次实习面试你准备了多久?你是怎么准备的?
  • 前面三轮面试感受如何?能大概说一说吗?
  • 除了腾讯还有投其他的公司吗?对比一下感觉怎么样?
  • 对深圳感觉怎么样?
  • 老师的项目组带给你什么样的影响?
  • 你说你因为老师比较严肃所以导致在交流上说话会有点直白,那有对这方面做出改变吗?
  • 大概会实习多久?
  • 什么时候能来实习?

反问

  • 根据这次面试,您对我评价如何?(这个问题针对个人性比较强,就不写回答了)
  • 大概多久出结果?(预计3-5个工作日)

面试感受

  • 腾讯的面试真的是投的几家公司里感觉最好的了,体验特别特别棒。
  • 一面面试官有哪些我答的不太好的地方还会指出来修改
  • 二面面试官有个地方他觉得有问题还跟我讨论了一会
  • 三面面试官就是大叔叔,看出来我有点紧张,一直在开玩笑
  • HR面!面试的小姐姐真是太漂亮了!!

Java面试题(1000道)

从这份目录截图中就可以看到这份资料总结得非常全面,包含了当下面试最流行的几大技术点!

内容总览:

下面我就给大家展示当下最热门的知识点内容!

多线程高并发



JVM




Redis



MySQL优化



spring源码



SpringCloud



[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-06tCR53r-1618645013028)(https://upload-images.jianshu.io/upload_images/26143782-3db9c1ceac2373b3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XAYm9ouK-1618645013029)(https://upload-images.jianshu.io/upload_images/26143782-9a9426a61b865355.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cYPj2U3k-1618645013029)(https://upload-images.jianshu.io/upload_images/26143782-77a1389ecfea0876.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持,需要更多资料的同学可以评论私信我,记得一键三连哦谢谢大家

最新2021整理收集的一些高频面试题(都整理成文档),有很多干货,包含mysql,netty,spring,线程,spring cloud、jvm、源码、算法等详细讲解,也有详细的学习规划图,面试题整理等,需要获取这些内容的朋友请加Q君羊:673927155


转载:https://blog.csdn.net/weixin_55932383/article/details/115794470
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场