JAVA最全面的一条自学路线

  1. 第四阶段:JavaWeb内容:前端三剑客(HTML,css,javaScript)、XML、Tomcat、Servlet、HTTP、九大内置对象、JSP、EL、JSTL、Filter、Listener、Jquery、Ajax、JSON、Redis、Maven、BootStrap

  2. 第五阶段:基本框架SSM内容:Spring、SpringMVC、MyBatis

  3. 第六阶段:高级框架内容:Spring Boot、Git、Spring Security、Linux、Spring Cloud

  4. 学习差异:

  5. 有基础(在学校学了一些,自己捣鼓过):1/2小阶段会出现,觉得学的慢,每天学的东西少这些症状

  6. 无基础(不爱打电脑游戏,不了解计算机,不是理工科出身):每天学习东西多,

对比有基础的同学感觉自己很差,感觉自己跟不上或不太适合学编程.

三、java完整版学习路线

================================================================================

Java必备基础


(学习建议必学)

| Java基础 | 知识 | 学习程度 | 学习要求 | 建议 |

| — | — | — | — | — |

| Java中的数据类型 | 熟练 | 基本类型和引用类型 | 面试会考,工作会用 | |

| 常量 | 熟练 | 常量的使用 | 工作会用 | |

| 变量的定义 | 熟练 | 变量的定义和使用 | 工作会用 | |

| 代码书写规范 | 精通 | 命名规范要求 | 工作会用 | |

| 数据类型之间转换 | 先熟悉

(到时候可以百度) | Java基本数据类型之间的转换 | 工作会用 | |

| 运算符操作 | 熟练 | 掌握运算符 | 工作会用 | |

| if语句 | 熟练 | 掌握流程控制语句 | 工作会用 | |

| switch | 熟练 | 掌握流程控制语句 | 工作会用 | |

| for循环与增强for | 熟练 | 掌握各种循环语句的区别和应用、循环跳转、嵌套循环 | 工作会用 | |

| while循环 | 熟练 | | 工作会用 | |

| do…while循环 | 熟练 | | 工作会用 | |

| 数组 | 熟练 | 数组初始化, 数组下标访问元素, 数组结构(面试会问),排序算法(笔试会考) | 工作会用,面试会考 | |

| Java内存机制 | 熟悉 | 了解内存区域划分(面试会问) | 面试会考,理解 | |

| 方法 | 熟练 | 方法形参参数,方法实参参数,方法返回值,方法定义,方法调用,方法重载,方法参数基本类型,方法参数引用类型 | 工作会用 | |

| Debug | 熟练必会 | 断点调试的使用,该技术是程序员的筷子,没有筷子就没法吃饭 | 工作会用,必会 | |

Java必备面向对象编程思想


(学习建议必学)

| Java面向对象 | 知识 | 学习程度 | 学习要求 | 个人观点 |

| — | — | — | — | — |

| 类和对象 | 熟练 | 明白类的定义,对象的定义,初始化对象,对象的操作 | 工作会用(编程基点) | |

|

面向对象特性 | 熟练 | 面向对象思想

、封装,继承,多态如:类和对象、封装思想、继承和类、多态 | 工作会用 | |

| 抽象类 | 熟练 | 抽象类和普通类的区别,如:abstract关键字、抽象和实例化理论知识、子类继承父类访问权限 | 工作会用,面试会考 | |

| 成员变量 | 精通 | 含义和使用,如:对象的属性是成员变量、成员方法get\set | 工作会用 | |

| 局部变量 | 精通 | 定义和理解含义,如:形参、方法体内定义、作用域等 | 工作会用 | |

| this关键字 | 精通 | This关键字的含义是什么?如:自己当作参数传递、this指的是含义一定要理解 | 工作会用 | |

| 构造方法 | 精通 | 明白构造方法的几个创建方式,如:多个构造函数方法、继承类构造方法 | 工作会用 | |

| super关键字 | 精通 | 会使用super和明白含义如:访问父类的属性、访问父类的函数、访问父类的构造函数 | 工作会用 | |

| 重写 | 精通 | 重写的定义和操作使用、重写要注意的事项、重载和重写区别 | 工作会用 | |

| 子类 | 精通 | 子类继承关系、创建对象时分配内存问题、final关键字 | 工作会用 | |

| 父类 | 精通 | 类继承关系、构造函数、super关键字、object类 | 工作会用 | |

| 接口 | 精通 | 接口定义和类的区别、接口和抽象类区别、interface掌握使用、与extends区别、implements 使用 | 工作会用 | |

| 内部类 | 精通 | 定义内部类方式、成员内部类、内部类访问权限、局部内部类 | 工作会用 | |

| 匿名内部类 | 精通 | 匿名内部类定义实操,如:匿名内部类需要的条件 | 工作会用 | |

| 包装类 | 精通 | 基本类型对应的包装类如:Integer、Short、Byte、Long、Float、Character、Boolean、Double、低级向高级自动转换,高级向低级强制转换) | 工作会用 | |

| 拆箱和装箱 | 精通 | 数据类型转换之间转换如:低级向高级自动转换,高级向低级强制转换)、什么时候会引发装箱和拆箱 、Object | 工作会用 | |

| 泛型 | 精通 | 泛型的本质、泛型通配符、泛型类、泛型接口、泛型方法 | 工作会用 | |

| 静态(变量和类) | 熟练 | 静态变量跟实例变量、静态变量与类关系、静态方法跟实例方法、静态方法与重写、静态方法问类中的静态成员跟静态方法与访问类中的实例变量跟实例方法区别 | 工作会用 | |

必备常用操作API


(学习建议必学)

| 常用操作API | String类 | 熟练(面试喜欢问) | 一定要多练构造函数,工作中经常操作字符串,

charAt、substring、compareTo、equals、concat、indexOf、toUpperCase、replace、split等方法, | 面试会考,工作会用 |

| — | — | — | — | — |

| StringBuilder类 | 熟悉 | 实操Append、toString、setCharAt、insert、delete等方法 | 工作会用,面试会问 | |

| StringBuffer类 | 熟悉 | 了解StringBuffer类内存分配,String与StringBuffer的区别,append、deleteCharAt、insert、reverse、setCharAt、replace、substring等方法 | 工作会用(偶尔),面试会问 | |

| Math类 | 精通 | Math类的常用方法abs、ceil、random、 | 工作会用(偶尔) | |

| System类 | 熟悉 | System类及其常用方法2个 | 工作会用(偶尔) | |

| Object类 | 精通 | Object类的toString()和equals()方法等4个 | 工作会用 | |

| Arrays类 | 熟练 | Arrays类及其常用方法4个 | 工作会用 | |

| 日期Date类 | 精通 | 日期Date类型及其常用方法和日期格式化3个 | 工作会用 | |

| 日历Calendar类 | 熟悉 | 日历Calendar类的常用方法2个 | 工作会用(偶尔) | |

Java必备集合


(学习建议必学)

| 集合 | Collection | 熟练 | List集合、Set集合、Map集合。方法:add、clear、remove、removeAll、isEmpty、iterator、hasNext、size、toArray | 工作会用、面试会问 |

| — | — | — | — | — |

| Collections工具类 | 熟练 | 方法:reverse、sort、swap、max、copy | 面试会考,工作会用 | |

| List | 精通 | 底层数据结构,效率问题,实现类:ArrayList、Vector、LinkedList。方法add、get、listIterator、hasPrevious、remove、set、asList | 工作会用,面试会考 | |

| Set | 熟练 | 底层数据、排序问题、保证元素的唯一性问题、二叉树、HashSet、TreeSet、compareTo方法、 | 工作会用(偶尔),面试会考 | |

| Map | 精通 | 数据结构。实现类HashMap、TreeMap、LinkedHashMap、Hashtable。方法put、get、remove、clear | 工作会用,面试会考 | |

| 集合算法 | 熟悉 | 排序、洗牌、搜索、常规数据操作、构成、找极值 | 面试会考 | |

| 集合数据结构 | 熟悉 | 动态数组\哈希表

\链表\红黑树\二叉树 | 面试会考 | |

必备异常知识


(学习建议必学)

| 异常 | 处理异常的方式 | 熟练 | 概述, 默认处理异常的方式 | 工作会用,面试会考 |

| — | — | — | — | — |

| try…catch | 熟练 | 程序为什么会终止、异常的类型、代码执行 | 工作会用,面试会考 | |

| throws | 熟练 | throws 异常声明 | 工作会用,面试会考 | |

| Throw | 熟练 | 抛出一个异常 | 工作会用,面试会考 | |

| Finally | 熟悉 | 用在try/catch语句中顺序 | 面试会考 | |

| Final | 熟练 | 使用和理论如:修饰类、修饰方法、修饰变量、final和static | 工作会用,面试会考 | |

| 异常的作用 | 精通 | 编写出来的程序更加健壮 | 面试会考 | |

必备常用io流


(学习建议必学)

| io流 | File类 | 熟悉 | 操纵对象和常用方法toString、compareTo、equals、createTempFile、createTempFile、setReadOnly、mkdir、delete、createNewFile、isFile、exists、getPath、getParentFile、getName | 工作会用(偶尔),面试问得少 |

| — | — | — | — | — |

| IO流的概述 | 熟练 | Java.io 包几乎包含了所有操作输入、输出需要的类、基本类型、对象、本地化字符集等等。还需要熟悉这些对象(BufferReader\InputStreamReader\FileReader\StirngReader\FilterReader\BufferedWriter/OutputStreamWriter\FileWriter\StringWriter\FilterWriter\Reader\Writer\InptStream\FileInputStream\FilterputStream\OjectInputStream\BuffereInputStream\DataInptStream\OjectOutputStream) | 工作会用(偶尔),面试问得少 | |

| 字节流 | 熟练 | FIleInputStream、FileOutputStream、InputStream、OutputStream | 工作会用(偶尔),面试问得少 | |

| 缓冲流 | 熟练 | BufferedInputStream、BufferedReader、BufferedOutputStream、BufferedWriter | 工作会用(偶尔),面试问得少 | |

| 字符流 | 熟练 | Reader、Writer、FileReader、FileWriter | 工作会用(偶尔),面试问得少) | |

| 输入输出流 | 熟练 | Reader、InputStream、Writer、OutputStream | 工作会用(偶尔),面试问得少 | |

| 转换流 | 熟练 | InputStreamReader、outputStreamWriter | 工作会用(偶尔),面试问得少 | |

| 打印流 | 熟悉 | printStream、printWriter | 工作会用(偶尔),面试问得少 | |

| 对象流 | 熟悉 | ObjectprintStream、ObjectprintWriter | 工作会用(偶尔),面试问得少 | |

| 管道流 | 熟悉 | PipedInputStream、PipedOutputStream | 工作会用(偶尔),面试问得少 | |

| 对象序列化 | 精通 | 什么是序列化与反序列化?怎么进行序列化?OjectInputStream\OjectOutputStream | 工作会用,面试问 | |

必备反射知识


(学习建议必学)

| 反射 | 反射的理论 | 反射是一种强大的工具\反射机制\类的加载、连接、初始化\反射的源头 Class\ 泛型和Class类 | 熟悉 | 面试会问(偶尔),学习框架会用 |

| — | — | — | — | — |

| 类的加载过程 | 类的加载、连接、初始化 | 熟悉 | 面试会问(偶尔) | |

| 类加载器 | 加载器 ClassLoader | 熟悉 | 工作会用(偶尔) | |

| 反射知识 | Reflection。反射获取的各种方法和属性如下:getConstructor(Class[] params) 、getConstructors() 、getDeclaredConstructor(Class[] params) 、getDeclaredConstructors() 、getField(String name)、 getDeclaredField(String name)、getFields()、getDeclaredFields()、 getMethods() 、getMethod(String name, Class[] params)、getDeclaredMethod(String name, Class[] params) 、getDeclaredMethods()。获取Class类的对象、 | 必备(框架学习要用) | 学习会用,工作会用(偶尔) | |

| 动态代理 | Proxy 和 InvocationHandler | | 学习会用 | |

| 获取 Class 实例的四种方式 | 《Person.class;》《Person p = new Person();

Class clazz3 = p.getClass();》《Class.forName(className);》《ClassLoader classLoader = this.getClass().getClassLoader();

Class clazz5 = classLoader.loadClass(className);》 | 熟悉 | 学习会用,工作会用(偶尔) | |

注解知识


(学习建议必学)

| 注解 | ### 理论知识 | ### Annotation语法、定义、应用、属性、元注解、注解与反射 | 熟悉 | 工作会用 |

| — | — | — | — | — |

| 自定义注解 | 熟练 | 学会自己写一个注解出来 | 工作会用(偶尔) | |

| 实操 | 亲手自定义注解 | 实操 | 工作会用 | |

| 元注解 | @Repeatable、@Inherited 、@Target、@Documented、@Retention | 熟悉 | 工作会用 | |

| 预置的注解 | @Override

、@SafeVarargs、@Deprecated

、@SuppressWarnings

、@FunctionalInterface | 熟练 | 工作会用 | |

JUC必备多线程


(个人建议juc熟悉为主,不用学得特别深,但是可以用心学好CAS算法和锁装逼最牛,面试官都服你的技术,这是秘密,标注蓝色用点心学)

| 线程 | # 进程和线程的理论 | 是并发编程中很常用的工具类,线程池,异步 IO 和轻量级任务框架都有涉足\原子性

\线程按序交替\线程八锁\调度\线程的安全问题\ 线程的生命周期\线程优先级 | 理解 | 面试会问 |

| — | — | — | — | — |

| 实现多线程 | 实现多线程四种方式1、继承Thread类\2、实现Runnable接口\3、实现Callable接口\4、使用ExecutorService、Callable、Future实现 | 熟练 | 面试必问 | |

| # 同步代码块 | # synchronized实操和理论 | 熟练 | 工作会用、面试会问 | |

| Lock 同步锁 | 和synchronized区别、ReentrantLock.lock(),ReentrantLock.tryLock(),

ReentrantLock.tryLock(long timeout,TimeUnit unit), | 熟练 | 面试会问\工作会用 | |

| volatile 关键字 | 内存模型中的可见性、原子性和有序性\Volatile原理 | 理解 | 面试会问 | |

| CAS算法、原子变量 | CAS算法incrementAndGet、compareAndSet、compareAndSwapInt、Atomic.cmpxchg、compareAndSwapInt.native | 原子变量AtomicInteger\AtomicReference\FieldUpdater\ABA问题与解决 | 理解 | 面试会问 |

| ConcurrentHashMap 锁 | 线程安全与不安全、数据结构、锁分段 | 熟练 | 面试会问 | |

| CountDownLatch | 工具类的主要犯法CountDownLatch(int count)、countDown()、await()、getCount()

、await(long timeout, TimeUnit unit) | 熟练 | 面试会问 | |

| Callable | Callable接口的实现实操 | 熟练 | 面试必问 | |

| ReadWriteLock 读写锁 | 熟练 | 熟练 | 面试必问 | |

| 线程池 | newCachedThreadPool、newFixedThreadPool、newSingleThreadExecutor | 熟练 | 面试必问 | |

| 线程八锁 | 1. 两个普通同步方法,两个线程,标准打印, 打印?\2. 新增 Thread.sleep() 给 getOne() ,打印?\3. 新增普通方法 getThree() , 打印?\4. 两个普通同步方法,两个 Number 对象,打印?\5. 修改 getOne() 为静态同步方法,打印?\6. 修改两个方法均为静态同步方法,一个 Number 对象?\7. 一个静态同步方法,一个非静态同步方法,两个 Number 对象?\8. 两个静态同步方法,两个 Number 对象? | 熟练 | 面试必问 | |

| 线程调度 | 抢占式调度\协同式调度 | 熟练 | 面试必问 | |

网络编程


(学习建议实操一遍为主,这玩意就是个理解概念但是又不得不重视)

| 网络编程 | 理论知识 | IP\协议\网络协议\HTTP协议\UDP协议\TCP协议\常见网络协议\URL\域名\端口\OSI参考模型\三次握手\常用协议 | 熟练 | 工作会用 |

| — | — | — | — | — |

| UDP协议 | {发送

-DatagramSocket、DatagramPacket对象、Socket发送、释放}{接收-DatagramSocket、DatagramPacket、接受数据、解析数据包对象、释放} | 实操过 | 面试会问(偶尔) | |

| TCP协议 | {发送-ServerSocket 、server.accept()、获取客户端的输出流、输出数据 、关闭释放}{接收-Socket 、InputStream 、接收到数据、数据输出 、关闭释放} | 实操过 | 面试会问(偶尔) | |

| Soket通讯 | 熟悉 | 明白原理和理论 | 工作会用(偶尔) | |

| OSI | 物理层\数据链路层\网络层\传输层\会话层和表示层\应用层 | 熟悉 | 学习会用 | |

HTML


(学习建议必学会)

| HTML | 理论 | HTML、HTML发展、W3C、格式<标签名 属性名=‘属性值’ 属性名=‘属性值’ …/> | 最好到熟练,到时候不求人 | 工作会用 |

| — | — | — | — | — |

| 常用标签 | 、

、、、、、

|

CSS


(学习建议必学)

| CSS | 理论知识 | 继承性和层叠性、权重计算、内联标签与块标签基础理论 | 熟练 | 学习会用 |

| — | — | — | — | — |

| 选择器 | 类别选择器、标签选择器、ID选择器、后代选择器、子选择器、伪类选择器、通用选择器、群组选择器等 | 熟悉 | 工作会用 | |

| Css样式 | [内部](http://www.so.com/s?q=内部&ie=utf-8&src=internal_wenda_recommend_textn" \t “https://wenda.so.com/q/_blank)样式,行内样式和[外部样式](http://www.so.com/s?q=外部样式表&ie=utf-8&src=internal_wenda_recommend_textn” \t "https://wenda.so.com/q/_blank) | 熟练 | 工作会用 | |

| 边框 | border-style(none\dotted\dashed\solid

ridge\inset\double\outset\groove) | 熟练 | 工作会用 | |

| 列表 | ul {list-style-type : square} | 熟练 | 工作会用 | |

| 鼠标效果 | Cursor(crosshair

\help\wait) | 熟练 | 工作会用 | |

| 浮动float | float(left\right\none\inherit) | 熟练 | 工作会用 | |

| 定位 | Position([static](https://www.runoob.com/css/css-positioning.html" \l “position-static)[relative](https://www.runoob.com/css/css-positioning.html” \l “position-relative)[fixed](https://www.runoob.com/css/css-positioning.html” \l “position-fixed)[absolute](https://www.runoob.com/css/css-positioning.html” \l “position-absolute)[sticky](https://www.runoob.com/css/css-positioning.html” \l "position-sticky)) | 熟练 | 工作会用 | |

| 文本排版 | 实操 | 熟练 | 工作会用 | |

| 文本颜色 | Color(#… …) | 熟练 | 工作会用 | |

| 字体样式 | Serif 字体\Sans-serif 字体\Monospace 字体\Cursive 字体\Fantasy 字体 | 熟练 | 工作会用 | |

| 选择器 | 熟练 | 熟练 | 工作会用 | |

| CSS优先级 | CSS[样式](http://www.so.com/s?q=样式&ie=utf-8&src=internal_wenda_recommend_textn" \t “https://wenda.so.com/q/_blank)在[浏览器](http://www.so.com/s?q=浏览器&ie=utf-8&src=internal_wenda_recommend_textn” \t "https://wenda.so.com/q/_blank)中被解析的先后顺序理论要清晰 | 熟练 | 工作会用 | |

| 背景颜色、背景图片与列表样式 | background-color、background-image

、list-style-type | 熟练 | 工作会用 | |

| CSS盒模型 | 盒子模型与布局 | 熟练 | 工作会用 | |

| float浮动 | float浮动属性、浮动的意义、清除浮动的方法 | 熟练 | 工作会用 | |

| background | background系列属性、css精灵 | 熟练 | 工作会用工作会用 | |

| 超级链接 | 超级链接的伪类、导航条 | 熟练 | 工作会用 | |

| DIV+CSS布局 | 浮动

、常规流式布局、定位布局 | 熟练 | 工作会用 | |

JavaScript


(学习建议必学)

| js | 基本语法 | Js类型、运算符、控制语句、数组、函数、对象、函数的使用 | 熟练 | 工作会用 |

| — | — | — | — | — |

| 流程控制 | for\ if\switch | 跟java的流程控制一样 | 工作会用 | |

| 事件绑定/触发 | 事件绑定bind和两种触发trigger 1.分开触发;2.一次性触发多个。事件冒泡和捕获 | 熟练 | 工作会用 | |

| DOM操作 | getElementById、getElementsByName、getElementsByTagName、getElementsByClassName、getAttribute、setAttribute、createElement、createAttribute、createTextNode、createAttribute、appendChild、insertBefore、removeChild、chlidren、chilidNodes、parentNode、firstChild、lastChild、nextSibling 、previousSibling、innerHTML、innerText | 熟练 | 工作会用 | |

| NAN null nudefined | NAN null nudefined区别和理论 | 熟练 | 工作会用 | |

| json | json存储和传输数据的格式 | 熟练 | 工作会用 | |

| 三种使用范围 | 内联式、外联式、外链式 | 熟练 | 工作会用 | |

| 变量、常量 | var 变量名 = 值;

const 常量名 = 值; | 熟练 | 工作会用 | |

| 数据类型 | 基本类型、复合类型 | 熟练 | 工作会用 | |

| 数组 | var myArray=new Array();

var cars=[“a”,“b”,“c”]; | 熟练 | 工作会用 | |

| string类型 | new String(s);方法

{charAt()concat()fontsize()indexOf()search()sub()substr()valueOf()toString()} | 熟练 | 工作会用 | |

| 运算符 | 乘法*、加法+、赋值=、除法/、系数%、减法-、递加++、递减– | 熟练 | 工作会用 | |

| 注释 | 单行注释以 // 开头,

多行注释以/开头以 /结尾。 | 熟练 | 工作会用 | |

| 内置函数 | confirm()\eval()\alert()

isNaN()\parsetFloat(" “) \parseInt(” ")\prompt() | 熟练 | 工作会用 | |

| 自定义函数 | function fn(){} | 熟练 | 工作会用 | |

| DOM对象 | document实操 | 看上面DOM操作 | 工作会用 | |

| BOM对象 | windows实操 | 熟练 | 工作会用 | |

| 内置对象 | window对象、下拉对象 | 熟练 | 工作会用 | |

| 原型prototype | 原型理论、原型扩展、实例化 | 熟练 | 工作会用 | |

jQuery


(学习建议必学)

| jQuery | jQuery理论 | JavaScript类库、函数入口、选择器、事件、操作DOM对象

等 | 熟悉 | 工作会用 |

| — | — | — | — | — |

| 核心函数 | jQuery(),$(“.class”) | 精通 | 工作会用 | |

| jQuery选择器 | 元素选择器\属性选择器\CSS 选择器 | 精通 | 工作会用 | |

| jQuery文档处理 | 插入append、删除empty()、删除 remove()、复制clone()、替换replaceWith()、查找eq(index)、parent()、next() | 精通 | 工作会用 | |

| jQuery事件 | 基础事件、复合事件、事件冒泡、事件对象的属性 | 熟练 | 工作会用 | |

| jQuery遍历 | ( " l i " ) . e a c h ( f u n c t i o n ( ) a l e r t ( (“li”).each(function() alert( (“li”).each(function()alert((this).text())

}); | 熟练 | 工作会用 | |

| 函数入口 | ( f u n c t i o n ( ) ) ; < b r > < b r > (function(){ });

(function());<br><br>(document).ready(function(){ }); | 精通 | 工作会用 | |

| jQuery对象 | var person = new Object();

var person = {}; | 精通 | 工作会用 | |

| 选择器 | 表单选择器、基本选择器、层次选择器、内容过滤选择器、子元素过滤选择器、表单对象属性过滤选择器 | 精通 | 工作会用 | |

| 动画效果 | 显示和隐藏、淡入和淡出、 改变元素 | 熟练 | 工作会用 | |

| 操作DOM | css-dom、操作样式、查询、操作节点、操作属性、节点遍历 | 熟练 | 工作会用 | |

| 表单验证 | | 精通 | 工作会用 | |

| 常用方法 | data(),each()

serialize(),bind() | 熟练 | 工作会用 | |

| ztree | zTree(setting, [zTreeNodes]) | 熟练 | 工作会用 | |

Ajax


(学习建议必学)

| Ajax | 理论 | XMLHttpRequest\基本AJAX方法\同步&异步\JSON转换\跨域\JSON语法 | 熟悉 | 面试会问,工作会用 |

| — | — | — | — | — |

| Get请求 | Get实操 | 精通 | 工作会用 | |

| Post请求 | Post实操 | 精通 | 工作会用 | |

| 同步和异步 | async:false;

async:true | 实操精通 | 精通 | |

| XMLHttpRequest | 实操创建XMLHttpRequest对象使用 | 熟悉 | 工作会用(偶尔) | |

| 基本AJAX方法 | jQuery.ajax();$.ajax(); | 精通 | 精通 | |

| 底层$.ajax | 这是理论知识看看文章就可以了 | 熟悉 | 学习会用 | |

| JSON语法 | {属性名:属性值,属性名:属性值…} | 精通 | 工作会用 | |

| JSON转换 | JSON.stringify(jsonObj);JSON.stringify(jsonObj);

JSON.parse(jsonStr);$.parseJSON(jsonStr);

eval(“(” + jsonStr + “)”); | 精通 | 工作会用 | |

| Ajax跨域问题 | 这是100%遇到的问题,百度相关文章学习一下 | 熟悉 | 面试会问,工作会用 | |

XML


(学习建议熟悉,学习会用。工作少不了的配置文件,减轻学习压力以熟悉为主

,这一块什么技术含量的,只要实操dom解析xml两边就会了)

| XML | 结构 | XML文档结构 | 熟悉 | 学习和框架会用 |

| — | — | — | — | — |

| 语法 | XML基本语法 | 熟练 | 学习和框架会用 | |

| 解析xml | AX,DOM,dom4j,jdom,commons-digester | 熟悉 | 学习和框架会用 | |

| 节点操作 | 实操解析两遍就会了,SelectNodes方法使用 | 熟悉 | 学习和框架会用 | |

JDBC


(学习建议必学)

| JDBC | Connection类 | 获取数据库连接 | 熟练 | 学习会用 |

| — | — | — | — | — |

| DriverManager类 | 驱动原理 | 熟练 | 学习会用 | |

| Statement类 | 学会操作和原理 | 熟练 | 学习会用 | |

| ResultSet类 | 封装 | 熟练 | 学习会用 | |

| 增删改查 | 实现CRUD的操作 | 必须精通 | 学习会用,工作会用 | |

| PreparedStatement类 | 预处理对象实现CRUD(增删改查) | 熟练 | 学习会用 | |

| JDBC事务管理 | 事务机制 | 精通 | 学习会用,工作会用 | |

| 连接池 | druid连接池,c3p0连接池 | 熟练 | 学习会用,工作会用,面试会问 | |

| JDBCTemplate的使用 | 学会使用 | 熟练 | 工作会用(偶尔) | |

| DBUtils | 利用DBUtils编写通用 DAO | 熟练 | 学习会用,工作会用(偶尔) | |

| Map封装 | Map封装一条记录_Map和List封装多条记录 | 熟练 | 学习会用,工作会用 | |

| 分页 | 分页的实现 | 熟练 | 工作会用 | |

MySQL


(学习建议必学,标注蓝色的是重点)

| MySQL | 概念 | DDL、DML、DQL、DCL数据库软件,理论熟悉 | 熟练 | 面试会问 |

| — | — | — | — | — |

| insert | 数据的添加 | 精通 | 工作会用 | |

| delete | 数据的删除 | 精通 | 工作会用 | |

| update | 数据的修改 | 精通 | 工作会用 | |

| select | 查询(含分页,分组,排序,带函数,子查询等) | 精通 | 工作会用,面试会问 | |

| 多表关系 | 一对一、一对多、多对多 | 精通 | 工作会用 | |

| 三大范式 | 1确保每列的原子性,2确保表中的每列都和主键相关,3确保每列都和主键列直接相关,而不是间接相关 | 精通 | 工作会用,面试会问 | |

| 外键 | 建表时候添加外键、动态添加外键 | 熟练 | 工作会用 | |

| 数据库备份 | mysqldump工具备份,mysqlhotcopy工具备份,表的导出和导入、mysqlbinlog恢复数据 | 熟练 | 工作会用 | |

| 事务 | {事务的基本要素:原子性、一致性、隔离性、持久性}{事务的并发问题:脏读、不可重复读、幻读} | 精通 | 工作会用 | |

| select(增) | 数据的查询,分页,排序,分组,条件,外连接,内连接等等 | 精通 | 工作会用 | |

| 存储引擎 | MyIsam,innodb | 熟练 | 面试会问,工作会用 | |

| 锁 | 行锁,表锁,页面锁 | 熟练 | 面试会问,工作会用 | |

| 配置文件 | my.cnf | 熟练 | 面试会问(偶尔),工作会用 | |

| Mysql数据类型 | 数值型、浮点型、字符串类型、时间日期类型 | 精通 | 工作会用 | |

| 特殊查询 | 子查询、联合查询、自连接查询 | 精通 | 工作会用 | |

| 约束 | 主键约束primary key\外键约束foreign key\唯一约束unique\非空约束not null\默认值default | 精通 | 工作会用 | |

| 数学函数 | Ceil(),floor(),round(),truncate(),mod(),exp(),pi() | 精通 | 工作会用 | |

| 字符串函数 | UPPER(column | str)、CONCAT(column | str1, column | str2,…)、CONCAT_WS(separator,str1,str2,…)、SUBSTR(str,pos[,len])、LENGTH(str)、REPLACE(str, from_str, to_str)、REPEAT(str, count)、FORMAT(X,D[,locale])、RIGHT(str, len)、LEFT(str, len) |

| 时间函数 | now()、sysdate()、date_format(date,format)、 time_format(time,format)、str_to_date(str,format)、makdedate(year,dayofyear)、maketime(hour,minute,second)、sec_to_time(seconds)、time_to_sec(time)等等 | 精通 | 工作会用 | |

| 注释 | #,– | 精通 | 工作会用 | |

| 数据结构及算法 | B-Tree和B+Tree | 熟悉 | 面试会问 | |

Web服务器


(学习建议必学)

| Web | HTTP协议 | 熟练 | HTTP协议 | 工作会用 |

| — | — | — | — | — |

| Tomcat服务器 | Tomcat服务器搭建 | 熟练 | 工作会用 | |

| Tomcat配置 | Tomcat配置实操 | 熟练 | 工作会用 | |

| 目录结构 | Tomcat目录结构 | 熟练 | 工作会用 | |

| Tomcat端口配置 | 百度文章 | 熟练 | 工作会用 | |

| Tomcat启动&停止 | 实操 | 熟练 | 工作会用 | |

Servlet


(学习建议必学)

| Servlet | Servlet生命周期 | 熟悉 | 熟悉 | 面试会问 |

| — | — | — | — | — |

| 配置 | Servlet的XML配置和注解配置,ServletContext,ServletConfig | 熟悉 | 工作会用(偶尔),

面试会问 | |

| 请求&响应 | javax.servlet.http.HttpServletRequest;javax.servlet.http.HttpServletResponse; | 精通 | 工作会用 | |

| Request对象和Response对象 | HttpServletRequest对象和HttpServletResponse对象的API | 熟练 | 工作会用 | |

| 重定向&转发 | 请求转发(RequestDispatcher)的过程,重定向(sendRedirect)的工作原理。 | 精通 | 工作会用 | |

| 路径问题 | 相对路径与绝对路径,完全路径匹配、目录匹配、扩展名匹配 | 精通 | 学习会用,工作会用

工作会用 | |

| Filter | Filter原理、Filter生命周期\Filter链\ Filter乱码过滤\ Filter登录过滤\Filter权限过滤 | 精通 | 学习会用,工作会用 | |

| Listener | WEB中八大监听器\Listener原理\Listener监听 | 熟练 | 学习会用,工作会用 | |

| HTTP协议 | 网络应用层协议,规定了浏览器与web服务器之间如何

通信以及数据包的结构。回去复习网络编程知识点 | 熟练 | 学习会用 | |

| Servlet程序的多种实现 | 实现Servlet接口,继承GenericServlet类, 继承HttpServlet类 | 熟练 | 学习会用 | |

| 线程安全问题 | {ServletRequest对象和Session对象是线程安全的}{ServletContext和Application对象} | 熟练 | 面试会问 | |

| 日志组件 | log4j和logback | 熟练 | 工作会用 | |

| Servlet整合JDBC | 这是实操学习找视频学 | 熟练 | 学习会用 | |

JSP


(学习建议必学)

| JSP | 理论 | JSP原理 | 熟练 | |

| — | — | — | — | — |

| JSP语法 | <% … %>

<%= … %> | 熟练 | 工作会用 | |

| 九大对象 | request\Response\config

Application\session

Exception\page

Out\pageContext | 熟练 | 工作会用(理论),面试会问 | |

| EL表达式 | EL使用\ EL取值\ EL的11大隐含对象\ EL逻辑运算\EL函数库|精通 | 工作会用 | | |

| JSTL | JSTL核心标签库(通用、选择、循环)\ JSTL核心标签库(循环、URL)\JSTL函数标签库\自定义空标签\属性标签\体标签\函数\父标签 | 精通 | 工作会用 | |

| JSP组成元素 | 静态资源、JSP脚本片段、 表达式、 JSP声明、注释、指令、动作 | 熟悉 | 学习会用 | |

| JSP标准动作 | jsp:getProperty:从JavaBean中获取一个属性值; jsp:setProperty:设置一个JavaBean中的属性值; jsp:include:在JSP页面包含一个外在文件;jsp:useBean:定义jsp页面使用一个JavaBean实例; jsp:forward:把到达的请求转发另一个页面进行处理; jsp:param:用于传递参数值; jsp:plugin:用于指定在客户浏览器中插入插件的属性;jsp:params:用于向HTML页面的插件传递参数值;jsp:fallback:指定如何处理客户端不支持插件运行的情况; | 熟悉 | 学习会用,工作会用(偶尔) | |

| 域对象 | pageContext、request、session、application | 熟练 | 工作会用 | |

| 中文乱码 | 实操常见中文乱码问题的解决方法(百度) | 熟练 | 工作会用 | |

| JSP路径问题 | 解决JSP路径问题的方法(百度文章) | 熟悉 | 工作会用 | |

| MVC模式 | (模型-视图-控制器)模式一定要理解了,不理解重新找视频学习直到理解,不理解无法进行下一个技术学习 | 精通 | 学习会用,工作会用 | |

| JSP分页 | JSP中分页的实现 | 熟悉 | 学习会用 | |

文件上传和下载


(学习建议熟悉和理解为主)

| 文件上传和下载 | 文件上传原理 | 熟悉 | 熟悉 | 学习会用 |

| — | — | — | — | — |

| commons-io&commons-fileupload | 实操 | 熟悉 | 工作会用 | |

| 文件上传参数控制 | 实操 | 熟悉 | 工作会用 | |

| 浏览器兼容性问题 | 文件下载中文乱码&浏览器兼容 | 熟悉 | 工作会用 | |

| 文件下载原理 | 百度文章熟悉一下 | 熟悉 | 学习会用 | |

| 文件下载响应头 | 实操 | 熟悉 | 工作会用 | |

| 文件下载中文乱码&浏览器兼容性 | 实操 | 熟悉 | 工作会用 | |

Maven


(学习建议熟练实操为主)

| Maven | Maven构建&自动化构建 | 实操 | 熟悉 | 熟悉 |

| — | — | — | — | — |

| 本地仓库&中央仓库 | 远程仓库、本地仓库、私服 | 熟练 | 工作会用 | |

| 常用命令 | {mvn archetype:create}{mvn archetype:generate}{mvn compile}{mvn test-compile}{mvn test}{mvn site}{mvn package}{mvn install}{mvn clean}{mvn idea:idea}{mvn -Dtest package}{mvn test-compile}{mvn jar:jar}{mvn dependency:list}{mvn deploy}{mvn clean install-U}{mvn source:jar}{mvn verify}等等 | 熟练 | 工作会用 | |

| 依赖管理 | 传递依赖发现、依赖范围、依赖关系管理、依赖冲突的解决,继承的关系,聚合的关系 | 熟练 | 工作会用,面试会问 | |

| 生命周期 | 验证、编译、测试、打包、验证、安装、部署 | 熟悉 | 面试会问 | |

| pom.xml | 熟练和实操 | 熟练 | 工作会用 | |

| 私服仓库 | 私服仓库搭建, 本地资源上传到私服,私服下载资源到本地 | 熟悉 | 工作会用 | |

| maven创建web工程 | mvn archetype:create

-DgroupId=packageName

-DartifactId=webappName

-DarchetypeArtifactId=maven-archetype-webapp | 熟悉 | 学习会用 | |

| idea下的maven使用 | 这个没啥说的就是熟练各个maven在idea上的按钮 | 熟练 | 工作会用 | |

| 继承&聚合 | 继承机制、在各个子工程中引用父工程 | 熟练 | 工作会用 | |

Mybatis


(学习建议必学)

| Mybatis | 理论 | 熟悉 | 熟悉 | 面试会问 |

| — | — | — | — | — |

| 全局配置文件 | 实操 | 熟练 | 面试会问,工作会用 | |

| Mapper文件 | sql编写,nameSpace作用域,扫描package方式 | | 面试会问,工作会用 | |

| 相关API | SqlSession

,SqlSessionFactoryBuilder,SqlSessionFactory | 熟悉 | 面试会问 | |

| 增删改查(含1:n和n:1) | Select\update\delete\insert | 精通 | 面试会问,工作会用 | |

| MyBatis结果集封装 | resultType的使用 | 精通 | 面试会问,工作会用(偶尔) | |

| 连接池 | 配置和实操 | 熟练 | 面试会问,工作会用 | |

| 事务 | 事务机制和实操 | 熟练 | 面试会问,工作会用 | |

| 动态sql | if、choose、where、trim、set、foreach、like和代码片断 | 精通 | 面试会问,工作会用 | |

| 表关系 | 一对一、一对多、多对多 | 精通 | 面试会问,工作会用 | |

| 延迟加载 | 理论知识和实际操作 | 熟练 | 面试会问,工作会用 | |

| 缓存机制 | 一二级缓存理论和实操 | 熟练 | 面试会问,工作会用 | |

| 别名 | 别名机制采用package的方式 | 精通 | 面试会问,工作会用 | |

| #{}和${} | 区别和实际应用 | 精通 | 面试会问,工作会用 | |

| 通用mapper | 通用mapper实操 | 熟练 | 工作会用 | |

| 分页插件 | PageHelper使用 | 熟练 | 工作会用 | |

| Mybatis-Plus | Mybatis-Plus实操 | 精通 | 工作会用 | |

| paramenterType | parameterType传递包装类型 | 精通 | 工作会用 | |

| ResultMap | resultMap的使用 | 精通 | 工作会用 | |

| 基于XML的CRUD | SqlMapConfig.xml配置 | 熟悉 | 工作会用 | |

| 基于注解的CRUD | MyBatis注解开发 | 精通 | 工作会用 | |

| SqlSession使用范围 | 对象SqlSessionFactory和SqlSession运用 | 熟悉 | 工作会用 | |

| 比较原始dao | mapper动态代理开发方式和原始开发比较 | 熟悉 | 工作会用 | |

| mapper配置 | resultMap、配置实现一对多关联查询 | 熟练 | 工作会用 | |

| Mybatis Plus | 主键策略和分布式id生成器、自动填充、乐观锁、分页插件、逻辑删除、性能分析插件、条件构造器 | 熟练 | 工作会用 | |

Spring


(学习建议必学)

| Spring | 理论 | 熟练 | 熟练(因为很重要) | 面试会问 |

| — | — | — | — | — |

| IOC/DI | IOC容器中Bean的生命周期方法、理解IOC控制反转和DI依赖注入的概念、 泛型依赖注入 | 熟练 | 面试会问,工作会用 | |

| 配置 | 自动装配\使用p命名空间的配置方法\scope作用域\ 使用外部属性文件\SpEL(字面量、引用Bean、属性和方法、SeEL支持的运算运算符号)、注解配置 | 熟悉 | 工作会用 | |

| AOP | 动态代理增强,AOP xlm配置,AOP 注解配置, | 精通 | 面试会问,工作会用 | |

| 声明式事务 | 声明式事务的配置 | 熟练 | 面试会问,工作会用 | |

| 集成mybatis | 实操 | 熟练 | 工作会用 | |

| 整合junit | 实操 | 熟悉 | 工作会用(偶尔) | |

SpringMVC


(学习建议必学)

| SpringMVC | 理论 | 熟悉 | 环境搭建,执行过程及原理 | 面试会问 |

| — | — | — | — | — |

| SpringMvc组件 | 熟练 | 1、前端控制器DispatcherServlet,2、处理器映射器HandlerMapping,3、处理器Handler,4、处理器适配器HandlerAdapter,5、视图解析器 View resolver,6、视图View(jsp,framemark) | 面试会问,工作排bug会用 | |

| 请求参数绑定 | 精通 | pojo类绑定,map绑定,String绑定,HttpSession绑定,HttpServletResponse绑定,HttpServletRequest绑定等等 | 工作会用,面试会问 | |

| 常用注解 | 精通 | 常用注解实操@Controller

,@RequestMapping,@Resource和@Autowired,@ModelAttribute和 @SessionAttributes,@PathVariable,@requestParam,@ResponseBody,@Repository

@Component | 工作会用,面试会问 | |

| 实操 | | 数据类型转换、数据格式化、数据校验、处理JSON,SpringMVC整合FastJSON | | |

| Restful风格 | 精通 | 实操 | 工作会用,面试会问 | |

| 实现文件上传 | 精通 | SpringMVC文件上传与下载 | 工作会用 | |

| 异常处理 | 精通 | 使用 @ ExceptionHandler 注解

实现 HandlerExceptionResolver 接口

使用 @controlleradvice 注解 | 工作会用,面试会问 | |

| SpringMvc中的拦截器 | 熟练 | 拦截器概述、自定义拦截器、

Interceptor拦截器,WebRequestInterceptor 接口,HandlerInterceptor接口 | 工作会用,面试会问 | |

| 校验框架 | 熟悉 | JSR 303、Hibernate Validator | | |

| 响应数据 | 精通 | String类型 ,void类型,ModelAndView ,forward 转发,redirect转发 | 工作会用,面试会问 | |

| SpringMvc实现异步 | 精通 | DeferredResult,Callable | 工作会用,面试会问 | |

| SpringMvc+Spring+Mybatis整合 | 精通 | SpringMvc+Spring+Mybatis整合实操 | 工作会用,面试会问 | |

SpringBoot


(学习建议必学)

| SpringBoot | 理论 | 熟悉 | 核心功能\SpringBoot的优势\依赖原理\自动配置原理\热部署\配置文件\SpringBoot缓存\SpringBoot异步任务\定时任务和邮件任务\SpringBoot安全框架 | 面试会问 |

| — | — | — | — | — |

| 自动配置 | 熟悉 | 实现自动配置原理 | 面试会问 | |

| SpringBoot

配置文件 | 熟练 | application.properties,

application.yml,

bootstrap.yml bootstrap.properties | 工作会用,面试会问 | |

| 映射方式 | 熟悉 | 映射文件方式和注解方式 | 工作会用 | |

| 事务 | 精通 | 实操@Transactional注解 | 工作会用 | |

| 实现RESTfull | 精通 | 实操Springboot开发RESTFul | 工作会用 | |

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

(学习建议必学)

| SpringBoot | 理论 | 熟悉 | 核心功能\SpringBoot的优势\依赖原理\自动配置原理\热部署\配置文件\SpringBoot缓存\SpringBoot异步任务\定时任务和邮件任务\SpringBoot安全框架 | 面试会问 |

| — | — | — | — | — |

| 自动配置 | 熟悉 | 实现自动配置原理 | 面试会问 | |

| SpringBoot

配置文件 | 熟练 | application.properties,

application.yml,

bootstrap.yml bootstrap.properties | 工作会用,面试会问 | |

| 映射方式 | 熟悉 | 映射文件方式和注解方式 | 工作会用 | |

| 事务 | 精通 | 实操@Transactional注解 | 工作会用 | |

| 实现RESTfull | 精通 | 实操Springboot开发RESTFul | 工作会用 | |

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-Ma1n97Gu-1714841317387)]

[外链图片转存中…(img-hGO3Rjc5-1714841317387)]

[外链图片转存中…(img-i9s6JDOS-1714841317388)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 18
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值