这篇写了很久,原以为两三天搞定,结果整理下来差不多七天了,全文有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开发介绍
-
DOS常用命令
-
JVM、JRE、JDK之间的关系
-
Java开发环境的搭建:安装JDK,配置环境变量
-
Java入门程序(Java的开发流程)
-
Java的注释,标识符、标识符的命名规范
-
Java基本数据类型
-
变量和常量的定义及初始化
-
Java的运算符
-
运算符的优先级
-
Java分支语句之if…else
-
循环的嵌套
-
方法的定义
-
方法的形参和实参
-
方法的递归调用
二、Java数组
-
Java 数组的定义
-
Java 数组的声明
-
数组的优势与局限
-
数组的遍历访问(普通循环,增强for循环)
-
数组元素的顺序查找
-
数组元素的冒泡法排序
-
Arrays工具类的使用
-
二维数组
三、Java面向对象
-
面向对象设计思想
-
面向对象的分析与设计
-
Java与面向对象
-
类中成员变量的定义与意义
-
构造方法的定义和调用
-
面向对象的封装特性
-
局部变量和成员变量的作用域问题
-
静态属性、静态方法、静态代码块
-
面向对象的继承特性
-
继承中构造方法的细节
-
面向对象的多态特性
-
抽象方法与抽象类
-
接口
四、异常
-
异常的概念
-
异常的分类
-
异常的理解
-
常见异常介绍
-
运行时异常
-
编译时异常
-
运行和编译异常区别
-
异常的处理方式之捕获异常
-
异常的处理方式之抛出异常
-
异常的处理方式之断点调试
-
断点调试之引导运行步骤
-
自定义异常
-
异常关键字处理
-
关键字执行流程
-
异常总结
五、集合
-
集合的概念和作用
-
集合和数组的区别
-
集合框架体系介绍
-
集合框架之Collection接口
-
ArrayList和LinkedList的方法使用
-
ArrayList和LinkedList各自的工作原理分析原理分析
-
使用多种方式遍历集合
-
HashSet和LinkedHashSet各自的工作原理分析
-
集合框架之Map接口
-
泛型的使用
-
Collections工具类的使用
六、IO流
-
File类的作用
-
File类中常用方法的使用介绍
-
使用File类操作文件和文件夹
-
相对路径和绝对路径的介绍
-
IO流的概念和工作原理
-
IO流的分类
-
文件流的使用
-
转换流的使用
-
缓冲流的使用
-
对象流的使用
-
内存流的使用
-
使用不同的流实现文件内容的拷贝
七、多线程
-
进程和线程的介绍
-
进程和线程之间的区别与联系
-
线程实现方式之继承自Thread类
-
线程实现方式之实现Runnable接口
-
线程实现方式之线程池
-
线程的生命周期
-
线程中常用方法的使用
END
第二阶段:JavaWeb
JavaWeb课程内容涉及:HTML5课程、CSS3、JavaScript、MySQL使用、JDBC连接池、Servlet、JSP、AJAX、jQuery、Bootstrap。
一、HTML5
-
html概述
-
html基本标签
-
图片标签
-
超链接标签
-
表格标签
-
无序列表标签
-
有序列表标签
-
定义列表标签
-
div标签
-
语义化标签
-
表单标签
二、CSS3
-
CSS3简介和用途
-
CSS3书写规范
-
CSS3基本语法
-
CSS3三种使用方式
-
标签选择器
-
Id选择器
-
Class选择器
-
属性选择器
-
层次选择器
-
文字、文本属性
-
背景、列表属性
-
尺寸、显示、轮廓属性
-
浮动、定位属性
-
盒子模型
-
CSS3高级属性
三、JavaScript
-
JavaScript概述
-
JavaScript发展史
-
JavaScript组成
-
数据类型
-
运算符
-
分支语句
-
循环语句
-
系统函数、自定义函数、匿名函数
-
常见事件
-
数组、字符串、日期对象
-
正则表达式
-
BOM对象:window、history、location
-
DOM概念
-
DOM操作:创建、修改内容、删除
-
Css样式操作
### 四、MySQL使用 或oracle数据库
-
数据库简介
-
MySQL的安装与使用
-
MySQL客户端和服务器配置
-
用户权限管理
-
DDL创建数据库和表
-
约束与外键
-
DML实现添加、修改、删除数据
-
聚合函数、日期函数等
-
DQL简单查询
-
排序、分组、筛选
-
多表查询
-
子查询
-
in和exists关键字
-
分页查询
-
Mysql SQL语句优化介绍
6
五、JDBC连接池
-
JDBC概述
-
JDBC使用步骤
-
Connection、Statement、ResultSet接口
-
使用JDBC 完成数据库DML操作
-
PreparedStatement对象
-
大数据的操作
-
批量处理与元数据
-
事务处理
-
隔离级别
-
自定义连接池
-
DBCP、C3p0连接池
-
DBUtis工具类
-
QueryRunner
-
自定义结果集处理
-
连接池知识总结
六、Servlet
-
Tomcat与Eclipse的集成开发
-
什么是Servlet
-
Servlet的进化史
-
Servlet的优化过程
-
Servlet中应用的多线程概念
-
Servlet接收客户端请求信息
-
Servlet响应客户端信息
-
Servlet的生命周期
-
重定向写法
-
转发写法
-
转发和重定向区别
-
HttpServletRequest获取中文乱码问题
-
HttpServletResponse响应中文乱码问题
-
Servlet路径映射问题
-
Servlet多路径映射
七、JSP
-
什么是JSP
-
JSP的内置对象
-
透析JSP的本质
-
JSTL+EL
-
MVC介绍
-
分层的重要性
-
Web工程中事务实现
-
Session的使用
-
Cookie的使用
-
web工程中连接池的使用
-
实现用户的自动登录
-
文件的上传、下载
-
过滤器、 监听器
-
反射、注解、泛型
-
综合案例练习
八、AJAX
-
Ajax技术背景
-
Ajax技术的理解
-
XMLHttpRequest使用步骤
-
XMLHttpRequest GET/POST的区别
-
同步请求&异步请求
-
同步请求&异步请求的区别
-
Ajax获取不同的返回值类型
-
Ajax使用原生JavaScript和Jquery的区别
-
Ajax响应状态处理
-
JSON语法
-
Java JSON 解析
-
Java JSON 生成
-
Java JSON 第三方工具快速解析
-
JavaScript JSON转换
-
Jquery JSON转换
END
Java框架课程
Java框架课程内容涉及:Spring、Spring MVC、MyBatis、SVN、Git、Maven、SpringBoot
一、Spring
-
框架原理介绍
-
框架环境搭建
-
快速入门
-
创建Bean的方式及实现原理
-
Bean种类
-
Bean生命周期
-
Bean的作用域
-
Bean的注值方式
-
整合Junit测试
-
注解装配Bean
-
注解装配Bean
-
AOP思想、原理解剖
-
AOP底层JDK动态代理
14.AOP编程
- AspectJ介绍及实现AOP开发
16.事务
- Web项目集成Spring
二、Spring MVC
-
Spring MVC 概述
-
使用 @RequestMapping映射请求
-
请求处理方法签名概述
-
处理方法签名详细说明
-
使用 HttpMessageConverter
-
处理模型数据
-
数据绑定流程剖析
-
数据格式化
-
数据校验
-
视图和视图解析器
-
处理方法的数据绑定
-
视图和视图解析器
-
文件上传下载
-
JSON处理
-
拦截器
三、MyBatis
-
MyBatis数据框架介绍
-
MyBatis对比Hibernate框架
-
MyBatis配置、查询数据
-
MyBatis全局配置文件
-
MyBatis全局配置文件元素详细介绍
-
Mapper映射文件
-
MyBatis两种开发方式
-
MyBatis中别名配置
-
MyBatis # 和 $ 拼接参数区别
-
关联查询,动态sql
-
MyBatis缓存机制、整合ehcache
-
MyBatis二级缓存处理
-
MyBatis、Spring、SpringMVC整合
-
分页插件
-
MyBatis逆向工程
四、SVN 和git
-
SVN简介
-
SVN和Git对比
-
SVN服务器搭建
-
SVN创建仓库
-
SVN创建用户以及分配权限
-
SVN签出、提交、更新
-
Eclipse整合svn插件
-
Idea整合svn插件
-
使用SVN更新提交
-
SVN仓库分析
-
SVN协同修改&冲突解决
-
SVN代码整合注意事项
-
SVN权限管理
-
SVN数据回滚
-
TortoiseSVN
五、Maven
-
Maven环境搭建
-
Maven构建项目
-
Maven本地仓库配置
-
Maven中央仓库配置
-
Maven基本概念
-
Maven基本命令介绍
-
Maven于Eclipse整合
-
Maven于Idea整合
-
Maven创建web工程
-
pom.xml、依赖管理
-
坐标、依赖、生命周期等
-
Eclipse下的Maven使用
-
Maven中 继承、聚合
-
Maven构建SSH/SSM应用
-
自动部署、持续集成、持续部署
六、部分
项目开发
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)]
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持,需要更多资料的同学可以评论私信我,记得一键三连哦谢谢大家
转载:https://blog.csdn.net/weixin_55932383/article/details/115794470