怎么学Java
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
话不多说,直接上干货:
第一阶段
- JavaSE编程基础
- DOS常用命令
- 安装JDK、设置环境变量
- DOS系统编译、执行Java程序
- Java的注释
- 标识符、标识符的命名规范
- Java 关键字
- Java的数据类型
- 变量的定义及初始化
- Java的运算符
- 表达式
- 转义字符
- 运算符的优先级
- 类型转换
- Java分支if…else
- 多重if、嵌套if
- Java switch
- Switch vs if
- Java循环 for、while 、doWhile
- 循环的嵌套
- break、continue、return
- 方法的定义
- 方法的形参和实参
- 无返回值的方法
- 有返回值的方法
- 方法的重载
- Java数组
- Java 数组的定义
- 数组的静态赋值
- 数组的动态赋值
- 数组单个元素的访问
- 数组的遍历访问
- 数组的增强for循环
- 数组的排序
- 数组的顺序查找
- 数组的二分法查找
- 命令行参数args的使用
- 可变参数的应用
- Arrays工具类的使用
- 二维数组的使用
- Java面向对象
- 面向对象的分析与设计
- 面向对象与面向过程的区别
- Java与面向对象
- 类的定义
- 对象的定义
- 类中成员变量及方法的定义
- 构造方法的定义和调用
- 构造方法的重载
- 面向对象的封装特性
- this调用属性、方法、构造方法
- 局部变量和成员变量的作用域问题
- static静态属性、方法、代码块
- 工具类的概念及工具类的制作
- super关键字的使用及理解
- Java中访问权限控制机制
- 继承中构造方法的细节
- 方法的重写
- equals及toString方法的正确理解
- Java中的包机制
- 抽象类,接口,多态
- 对象的转型
- final修饰类、属性、方法
- 抽象类,接口
- 多态机制
- 内部类
- 通过内部类制作性能检测工具
- Java的内存分析
- 常用基础类
- 常用数据类型的包装类
- String、StringBuffer、StringBuilder
- Date的使用
- SimpleDataFormate对日期和字符
串之间的转换处理 - Calendar日历类的使用
- Math常用方法
- Random类
- Runtime类
- System 类
- java8新特性
- 集合
- 集合框架体系介绍
- 集合框架与数组的对比
- 集合框架之Collection接口
- 集合框架之List接口
- ArrayList和LinkedList的使用
- 深入源码探究ArrayList和LinkedList
的工作原理 - 迭代器的工作原理
- 迭代器的使用
- 集合框架之Set
- HashSet和TreeSet的使用
- 深入源码探究HashSet和TreeSet
的工作原理 - HashMap和TreeMap的使用
- 分析Map和Set的之间的关系
- Collections工具类
- 异常处理
- Java的异常体系
- 异常的概念及分类
- 异常的处理方式
- 异常设计原则
- 自定义异常
- 线程和I/O
- I/O
- NIO
- 文件操作
- 多线程
- 线程池
- 同步
- 线程调度
- 多线程下载
- 网络http、socket
- 基于HTTP协议访问网络资源、XML解析
- 文件的下载
- ThreadLocal
- 项目
- FTP服务器、多人聊天服务器
第二阶段
- HTML5
- HTML的作用
- 全局标签
- 绝对路径与相对路径
- 常见标签
- 字符集
- 表单标签
- 布局指定的网页
- CSS3
- css声明类型
- 常见的各种属性
- 圆角属性:border-radius的使用
- 阴影属性:box-shadow的用法
- 背景属性扩展:多背景应用
- 新的颜色表示方式:HSLA色轮模式
- 浮动
- 完成自己的初级课页面实战
- Javascript
- JavaScript基本语法
- JavaScript数据类型
- JavaScript对象和常用对象
- history对象
- location对象
- bom对象
- 表单对象
- DOM对象
- window对象
- 常用事件
- 选项卡、幻灯片、贪吃蛇、
瀑布流各种特效
- MySQL使用
- Mysql数据库
- MySql命令行客户端的使用
- MySql图形化客户端的使用
- SQL语句介绍
- DDL
- DML
- DQL
- 多表的联合查询
- 子查询
- 排序、聚合、分组
- JDBC连接池
- JDBC的介绍
- 采用JDBC实现CRUD
- 采用PrepareStatement防止SQL注入,提高安全性
- Servlet
- Tomcat与eclipse的集成开发
- 什么是Servlet
- Servlet接收客户端请求信息
- Servlet响应客户端信息
- Servlet的生命周期
- 什么是JSP
- JSP的内置对象
- 透析JSP的本质
- JSTL+EL
- MVC介绍
- 分层的重要性
- Mysql的事务特性
- MySql的事务实现
- Session的使用
- Cookie的使用
- 实现系统的安全控制
- DBCP连接池的使用
- C3P0连接池的使用
- DBUils
- 实现用户的自动登录
- 文件的上传
- 文件的下载
- 过滤器解决编码问题
- 过滤器解决安全验证问题
- 监听器
- 反射、注解、泛型
- MVC
- 设计模式
- ORM原理
- 自定义框架
- ajax
- Ajax的工作原理
- JSON解析
- Ajax 数据格式(XML格式、HTML格式、JSON格式、各种格式对比)
- 使用 jQuery 实现 Ajax(load()方法、$.get()方法、$.post()方法、序列化、Ajax应用)
- 聊天室小实例
- jQuery
- jQuery选择器
- jQuery的常用事件
- 事件冒泡
- 事件委派
- jQuery中的动化
- 模拟操作
- jQuery综合实例
- BootStrap
- 响应式设计
- BootStrap安装
- Bootstrap 组件
- 进度条和列表组件
- BootStrap综合实例
- 项目
- 讲解项目开发流程
- 项目简介
- 项目功能演示
- 项目功能实现分析
- 数据库设计分析
- 项目架构设计分析
- 实现网站首页的商品展示
- 实现商品详情页面
- 实现购物车功能
- 实现我的订单管理
- 项目验收
第三阶段、云计算体系
- 框架和Maven
- 为什么用框架
- 流行的框架
- Maven概述
- 使用Maven的优势
- maven的一次构建
- 依赖管理
- 安装配置介绍.使用Maven核心概念介绍( 坐标、依赖、仓库、插件、生命周期等)
- Maven与第三方Elicpse整合及如何在Eclipse中使用Maven、Maven私服Nexus的安装使用
- 如何使用Maven构建Web应用
- 使用Maven构建SSH应用
- 使用Maven进行多模块和继承使用
- Hibernate5
- ORM思想
- hibernate5与JPA关系介绍
- hibernate.cfg.xml配置
- hbm.xml映射文件详解
- 主键生成策略 PO对象三种状态分析与切换
- hibernate5一级缓存分析与测试
- Hibernate5高级映射技术
- Hibernate5多表联合查询
- Hibernate5的性能优化
- hibernate4及hibernate3区别及新特性介绍
- JPA
- JPA 概述
- JPA 注解
- JPA 相关 API
- JPA 映射
- JPQL
- 二级缓存
- Spring 整合 JPA
- Struts2
- Struts2框架介绍
- 工作原理及架构分析
- 快速掌握Struts2开发模式
- Struts.xml详解
- 通配符的配置模式
- ActionContext及ServletActionContext使用
- 类型自动转换机制
- 多模块的开发模式
- 单文件上传
- 多文件上传
- 文件下载
- 拦截器的介绍
- 默认拦截器
- 自定义拦截器
- Token机制
- Spring4
- 框架原理介绍
- 框架环境搭建
- 快速入门
- 创建Bean的方式及实现原理
- Bean种类
- Bean生命周期
- Bean的作用域
- Bean的注值方式
- SpEL
- 整合Junit测试
- Web项目集成spring
- 注解装配Bean
- AOP思想
- AOP原理解剖
- 传统方式实现AOP开发
- AspectJ介绍及实现AOP开发
- SpringMVC
- Spring MVC 概述
- 使用 @RequestMapping映射请求
- 请求处理方法签名概述
- 处理方法签名详细说明
- 使用 HttpMessageConverter
- 处理模型数据
- 数据绑定流程剖析
- 数据转换
- 数据格式化
- 数据校验
- 视图和视图解析器
- 处理方法的数据绑定
- 博客、论坛项目整合和富文本编辑器
- 博客或论坛项目在面试中的意义
- 如何使用Maven构建框架开始写项目
- 业务流程
- 富文本编辑器整合
- 前后台的业务实现
- MyBatis
- 安装和配置MyBatis
- 使用映射语句
- 执行非查询语句
- 使用高级查询技术
- 事务
- 使用动态SQL
- 使用高速缓存提高性能
- MyBatis数据访问对象
- DAO使用进阶
- 项目整合
- 使用SSM整合博客或论坛项目
- 体现MyBatis的优越性
- 使用对比
- SpringData
- Spring Data 概述
- Repository
- CrudRepository
- PagingAndSortingRepository
- JpaRepository
- 条件查询
- 使用@Query自定义查询
- @Query 与 @Modifying 执行更新操作
- 索引参数与命名参数
- 用@Query来指定本地查询
- 为某一个 Repository 上添加自定义方法
- 所有的 Repository 都添加自实现的方法
- Redis、MongoDB(二选一)
- redis安装
- redis数据类型
- redis操作
- java操作redis
- redis写个带分页好友关系处理系统
- Linux平台安装MongDB
- MongDB插入、更新、删除、查询文档、MongoDB条件操作符
- MongoDB排序、索引、聚合、复制、分片
- MongoDB与java、MongoDB数据库引用
- java写一个MongoDB的操作
- SpringSecurity(二选一)
- 加强URL访问安全
- 登录到Web应用
- 验证用户
- 加强方法调用的安全
- 做出访问控制决策
- 处理视图中的安全性
- 处理领域对象安全性
- Shiro(二选一)
- 权限基础
- Shiro 概述
- Shiro 配置基础
- Permissions
- Authentication
- Authorization
- Role
- 编程授权
- Realm
- Realms的认证实现
- Realms的授权实现
- Spring 集成 Shiro
- Spring 集成 Shiro
- 基于注解的授权
- WebService
- WebService介绍
- WebService的应用场景
- WebService
- http协议
- RestFul规范
- postman使用
- spring 实现 RestFul
第四阶段
- 亿级并发架构演进架构演进特点大并发架构微服务
- Linux基础文件处理命令权限管理命令帮助命令文件搜索命令压缩解压命令命令使用技巧VIM使用软件包管理用户和用户组管理服务和进程基本网络设置云服务器搭建和使用
- 搭建tomcat环境在云服务器下搭建tomcat和MySQL服务器
- MySQL主从MySQL主从和binlog的配置
- MySQL主从nginx服务器的优势nginx服务器配置什么是反向代理什么是负载均衡负载均衡算法构建数十台服务器的负载均衡环境
- SSL证书配置为什么使用SSL证书RSA算法、DES算法Let’s Encrypt证书申请证书续期
- keepalived双活不间断服务的重要性keepalived原理OSI七层模型和TCP/IP四层模型配置keepalived服务
- MySQL高级ACID和MySQL的实现原理SQL优化技巧MySQL分区Explain分析
- memcachedMySQL引擎memcached优势memcached与Java配使用用memcached分布式处理
- elasticsearch为什么使用全文索引elasticsearch与solr的对对实时索引分布式elasticsearch写一个自己的搜索引擎
- ActiveMQ队列队列应用场景常用的队列服务器队列服务器的架设压力测试Java中使用队列服务器
- MyCat分库分表技术MyCat介绍分库分开技术讲解其他的数据库中间件配置与自动分表
- Rpc和Dubbo分布式服务框架简介Dubbo主要核心部件Dubbo-RPC基本功能Dubbo-高级功能远程方法调用软负载均衡及容错机制linux 上 Dubbo 的部署
- svn & git & Jenkins持续集成svn介绍svn服务器和客户搭建配置如何使用svn多人一起进行冲突解决git常用命令git的web hooks为什么要使用持续集成持续集成与git 的web hooks配使使用
- echarts图表插件图表介绍和选择什么样的图表5分钟快速上手常用API和模块移动端自适应
- UML和常用工具的使用UML的作用UML常用工具的使用UML的3个要素UML的3个基本构造块事物是对模型中最具有代表性的成分的抽象5种图定义UML的应用领域
- Hadoop大数据的应用场景Hadoop架设Hadoop单机配置Hadoop伪分布式环境Hadoop集群环境HDFS的使用和配置分治思想分治思想处理数据MadReduce原理MapReduce架设和使用云服务器上提供的大数据工具
- 亿人同时在线的抢票系统大并发系统的应用大并发系统的分析大并发系统的设计大并发系统的开发手把手带着学员完成大并发系统
- 综合项目实战15个大型项目选择各种项目特点分析项目设计项目分组选择框架后台搭建使用Maven构建项目项目开发压力测试webhooks项目自动部署面试中常问到的项目问题项目bug收集和解决阿里云、腾讯云项目上线项目验收项目答辩