■ 零、Java预热
● 计算机发展历史
● 编程语言概况与分类
● DOS常用命令
★ 咱从DOS命令说起吧,建议有时间学一下批处理技术,不少地方还是可以用得上的,至少看得懂:
玩DOS,当然是在Windows系统环境 ■□ 打开CMD命令窗口 按 Win + R,打开“运行”输入框,输入cmd 回车即可打开CMD命令窗口 ■ 修改CMD窗体透明度 在CMD窗体标题栏上,右键 > 设置 > 到处点点,找到窗体背景或背景图片及其透明度的设置项,尝试调整一下。 ■□ DOS命令1 ■ help #显示DOS命令清单及基本说明 ■ help 命令 #显示命令帮助信息 ■ 命令 /? #显示命令用法,功能类似"help 命令" ■ color #设置屏幕颜色 ▲ 其实你不必一直使用黑屏的CMD窗口,可以给屏幕和文字来点颜色,搭配方式很简单,那就是屏幕和文字颜色采用对比色,就会比较好看了,比如输入 color 8f,即设置背景为8(绿色),前景(即文字)为f(亮白色)。当然,你还可以结合调整CMD窗体背景或窗体背景图片的透明度,会变得更漂亮美妙一些。 ▲ color /? #显示color命令用法 ■ cls #清屏命令 ■ ctrl + c #终止当前命令进程 ■ exit #退出CMD终端 ■ echo #显示消息,或将命令回显打开或关闭 ■ notepad #打开记事本程序 ■ mspaint #打开画图程序 ■ calc #打开计算器程序 ■ ver #显示win系统版本 ■ shutdown /s #系统关机命令。s=stop或shutdown。可以指定关机前的超时秒数:/t 秒数 ■ shutdown /f #强制关机 ■ shutdown /l #系统注销命令。l=login。 ■ shutdown /r #系统重启命令 。r=restart或reboot。 ■ shutdown /h #系统休眠命令。h=hibernate ■ more # 逐屏显示输出 ■□ DOS命令2 ■ dir #显示目录文件(详细)---相当于 查看 - 详细信息 ■ dir /b #显示目录文件(简明)---相当于 查看 - 列表 ▲当你想复制某个目录下的目录文件名称清单时,这条命令挺有用的 ■ cd #切换目录 cd = change directory,是chdir命令的别名 ■ cd .. #切换到上一级目录 ■ mkdir 目录名 #创建目录(或文件夹) ■ rmdir 目录名 #移除目录(或文件夹) ■ md 目录名 #创建目录。md是mkdir指令的别名 ■ rd 目录名 #删除目录。rd是rmdir指令的别名 ■ touch a.txt #创建一个空文档a.txt ■ echo >a.txt #创建一个空文档a.txt,或清空a.txt内容 ■ echo Hello World >> a.txt #给a.txt追加文本Hello World ■ notepad a.txt #使用notepad(即记事本程序)打开文件a.txt ■ del 文件 #删除至少一个文件 ■ erase #删除文件,功能同del ■ type a.txt #查看文本文件(a.txt)的内容 ■ ren 文件名1 文件名2 #重命名文件。ren是rename命令的别名 ■ copy #用于复制文件 ■ xcopy #复制文件和目录树 ■ move #将一个或多个文件从一个目录移动到另一个目录 ■ attrib 文件名 #显示或更改文件属性 ■ ipconfig /all #显示配置的IP地址、子网掩码、默认网关等信息 ■ ping IP地址 #连通测试 ▲ping 192.168.133.133 ▲ping www.baidu.com -n 5 #可以指定必须有回显反馈的请求次数 ■ netstat -ano #显示网络连接及相关统计信息 ■ find #在一个或多个文件中搜索一个文本字符串 ■ findstr "xxx" #查询字符串。在多个文件中搜索字符串 ▲netstat -ano | findstr "8080" ■ tasklist #任务列表 ■ taskkill/pid ■ tracert www.baidu.com #路由追踪 ■ time #显示或设置时间 ■ date #显示或设置日期 ■ tree nodeStudy #显示nodeStudy目录的目录树结构 ■ replace #文件替换 ■□ DOS命令3: ■ systeminfo #显示计算机的特定属性和配置 ■ path #显示路径变量。当然也可以用于设置 ■ set #显示、设置或删除 Windows 环境变量 ■ format #格式化磁盘 ■ chkdsk #检查并报告磁盘健康状态 ■ label #创建、更改或删除磁盘的卷标 ■ vol # 显示磁盘卷标和序列号 ■□ DOS命令4: ■ for #为一组文件中的每个文件运行一个指定的命令 ■ if #在批处理程序中执行有条件的处理操作 ■ break ■ pause ■ shift ■ sort #对输入排序 ■ mklink #创建符号链接和硬链接 ■□ DOS命令5: ■ net ■ ■□ DOS命令6:其它 ■ |
● 学习方法与学习笔记及笔记工具
● JDK/JRE安装与配置
● 第一个Java程序:HelloWorld
■ 一、Java基础
● 变量、字面量等
● 变量类型&类型转换
● 运算符&优先级
● 流程控制
● 方法
● 数组
■ 二、Java核心
● OOP
● 包
● 异常处理
● 集合框架
● 常用API
■ 三、Java高级
● GUI
● 文件IO
● 多线程
● 网络编程
● Java8新特性
● XML&DOM4J
■ MySQL
● MySQL
● MySQL客户端
■ JDBC
● JDBC
● JDBC封装
● 数据库连接池
● DBUtils
● 事务
● JNDI
■ HTML
■ CSS
■ JavaScript & AJAX
■ jQuery
■ Bootstrap
■ HTTP协议
■ Web服务器:Tomcat
■ JavaWeb
● Servlet
● JSP
● EL + JSTL
● Filter
● Listener
■ 阶段项目Skills
■ 补充
■ Linux基础
● Linux入门基础
● Bash特性
● 用户管理
● 权限管理
● 文件目录管理
● 文本处理
● 文本编辑:vim/vi
● 文件查找
● 磁盘管理
● 解压缩与归档
● 包管理
● 进程管理
● 网络管理
● 启动管理
● Shell编程
● SELinux
■ Java基础加强
● JavaSE高阶知识点
◆ 枚举
◆ 注解
◆ 反射
◆ 序列化与反序列化
◆ 字节码
● 几个第三方常用类库
◆ 单元测试:JUnit
◆ 日志系统:Log4j
◆ Bean处理:Lombok
● 几个常用设计模式
◆ 单例模式
◆ 工厂模式
◆ 门面模式
◆ 代理模式
◆ 观察者模式
● JVM双亲委托模式
● 文本处理与正则表达式
■ 数据库
● RDB:Oracle
● NoSQL:Redis
■ 软件工程
● 项目构建:Maven
● 版本控制:SVN
■ 主流框架
● Hibernate
● Struts2
● Spring
● MyBatis
● SpringMVC
■ 数据建模:PowerDesigner
■ 安全框架:Shiro
■ 邮件发送:JMail
■ 远程调用:HttpClient
■ 报表处理:POI
■ 定时任务:Quartz
■ Web Services:CXF
■ 数据缓存:Redis
■ 消息队列:ActiveMQ
■ 发送短信:阿里短信
■ SpringBoot(脚手架)
■ Spring Cloud(微服务套件,HTTP方式)
● 服务注册:Eureka(呀找到了)
● 负载均衡:Ribbon(飘带)
● 服务容错:Hystrix(豪猪)
● 服务调用:Feign(伪装)
● 服务网关:Zuul(祖鲁)
■ Spring Cloud Alibaba(微服务套件,HTTP方式)
▲ Nacos(服务注册与配置中心)
● OpenFeign(远程调用)
▲ Sentinel(限流降级熔断)
● Gateway(网关路由)
▲ Seata(分布式事务)
● Sleuth(链路追踪)
■ Dubbo + Zookeeper(微服务套件,RPC方式)
■ 前端高阶
● JS高阶
● CSS语法糖:LESS
● 模块化开发
● ES6
● Vue.js框架
● Vue框架UI库:Element-UI(饿了吗)
● 项目构建:WebPack
● 语法检测:ESLint
● 数据模拟:Mock.js
■ Java后端
● 负载均衡:Nginx
● 远程调用:HttpOk3
● 跨域解决:CORS
● 全文检索:ELK = ElasticSearch + Kibana + Logstash
● 安全框架:Spring Security + JWT + OAuth2
● 报表处理:EasyExcel
● 图片存储:FastDFS
● 定时任务:Spring Task
● 消息队列:RabbitMQ
● 媒体管理:阿里VOD
● NoSQL:MongoDB
● 缓存:Redis
● 短信发送:阿里短信
● 在线支付:微信支付
● 内网穿透:花生壳
■ 设计模式
● 设计原则
● 设计模式:GoF23
■ 数据结构与算法
● 数据结构
● 算法
■ 多线程与并发编程
● 多线程
◆ 多线程基础知识
◆ 线程池
◆ 并发理论知识
◆ 并发工具
◆ 模式
◆ 应用
◆ 面试相关
● JUC
● Netty
● Vert.X
● 响应式
■ 调优
● JVM调优
◆ 参数
◆ CLI指令
◆ GUI工具
◆ GC算法
● Tomcat调优
● MySQL调优
● 代码调优
■ 编程规范
● 阿里Java编程规范
■ 源码阅读与分析
● Spring
● MyBatis
● SpringMVC
● SpringBoot
■ Java新特性
● Java5
● Java6
● Java7
● Java8
● Java9
● Java11
● ...
■ 架构概述
■ 架构思想
■ 架构原则
■ 架构模式
■ 架构实践:略
■ 篇一:数据库
● RDBMS
◆ MySQL
◆ Oracle
◆ SQL Server
◆ DB2
◆ PostgreSQL
◆ SQLite
● NoSQL
◆ Redis
◆ Memcaced
◆ MongoDB
◆ SSDB
■ 篇二:中间件
● Web容器
◆ Tomcat
◆ Jetty
◆ Nginxt/Tengine/OpenResty
◆ WebLogic
◆ WebSphere
● 全文检索
◆ Solr
◆ ElasticSearch
● 消息队列
◆ ActiveMQ
◆ RabbitMQ
◆ RocketMQ
◆ ZeroMQ
◆ Kafka
◆ ...
● 缓存
◆ Redis
◆ Memcached
● 分布式文件系统
◆ FastDFS
◆ MooseFS
◆ GlusterMS
◆ GridFS
◆ CephFS
◆ HDFS
◆ ...
● 数据库中间件
◆ MyCAT
◆ Sharding-JDBC
■ 篇三:其它技术选型
● 安全框架
◆ Shiro
◆ Spring Security
● 定时任务
◆ Quartz
◆ Spring Task
◆ xxl-job
◆ Elastic-Job
● 报表技术
◆ Excel&Word:POI,EasyPOI
◆ Excel:EasyExcel
◆ 导出CSV:OpenCSV
◆ Word转PDF:Jacob
◆ PDF定制:JasperReport (基于iText) & IReport
● 统计图表,图表可视化
◆ 基于JS - 前端渲染:HCharts & ECharts ...
◆ 基于Java - 后端渲染:JFreeChart
● 单元测试/自动化测试/集成测试
◆ JUnit5
◆ Mockito/Mock
◆ PowerMock/Mock
◆ TestNG
◆ Selenium
◆ Robot Framework
◆ Cucumber
◆ ...
● 压力测试/基准测试/性能测试
◆ JMeter
◆ AB
◆ ...
■ 分布式专题
● 分布式应用
● 分布式系统
● 分布式缓存
◆ 分布式缓存失效 - 缓存穿透:请求一个永远不存在的key
- 解决方案:返回并缓存null值
◆ 分布式缓存失效 - 缓存雪崩:大面积key同时失效
- 解决方案:(失效时间)加随机值
◆ 分布式缓存失效 - 缓存击透:高并发击穿热点key
- 解决方案:加(分布式)锁
● 分布式锁
◆ 基础数据库
◆ 基于Redis
- 分布式锁框架:Redission
◆ 基于Zookeeper
● 分布式事务
◆ 理论
- CAP定理:艾瑞克·布鲁斯定理 #三缺一
+ C:一致性 # 指数据一致性
+ A:可用性 # 指应用可用
+ P: 分区容错性 # 指网络分区
- BASE定理:坐一(P)望三(+C+A),鱼(C)和熊掌(A)不可兼得
◆ 实现方案
◆ 相关算法
◆ Seata
● 分布式文件系统
◆ FastDFS
◆ GlusterFS
◆ GridFS
◆ Ceph
◆ HDFS
● 分布式数据库
◆ TiDB
◆ OceanBase
● 分布式存储 - 商业服务
◆ 阿里OSS(对象存储服务)
◆ 七牛云存储
● 分布式计算
◆ 分布式计算概述
◆ 典型应用场景
◆ ...
■ 微服务专题
■ 多级缓存专题
■ 高性能
■ 高并发&高可靠
■ 数据采集与监控
■ 安全编程
■ 服务网格(Service Mesh)
■ 项目构建
■ 代码托管
■ CICD
■ 质量保证
■ 容器化部署
■ 项目管理:目标管理,计划管理,团队管理,工具管理,信息管理,风险管理等
■ 开发方式:精益敏捷开发(Scrum, XP等),传统瀑布模型等
■ 应用原型:
■ 数据建模:
■ 开发工具:
■ 版本控制:
■ API 网关
■ 负载均衡
■ 任务调度:
■ 监控系统:
■ 项目构建:
■ 软件测试:
■ 部署上线:
■ 日常运维:
■ 客服系统:
■
■ 前端工具
● 原型:Axure
● 骨架图、线框图:Pencil
● 后期处理/切图:PhotoShop、Fireworks
● 绘图/制图(流程图):亿图、ProcessOn(在线绘图)
● 浏览器:Chrome、Firefox、Edge
● 文本编辑器:EditPlus、Sublime Text3、Notepad++、EmEditor、UltraEditor
● IDE/准IDE:WebStorm、VSCode、Atom、Bracker、HBuilder
● 打包构建工具:WebPack、Grunt、Gulp
● Mock数据:Mock.js
● LESS编译工具:Coala
● 抓包工具(Win):
● 其它:
■ Java后端开发工具
● Java开发套件:JDK(含JRE)
● 企业级服务器:GlassFish、WebLogic、WebSphere等
● Web服务器:Apache、Nginx
● Web容器:Tomcat服务器
● IDEA(集成开发环境):NetBeans(偏桌面GUI应用开发)、Eclipse/MyEclipse、IDEA
● 虚拟机:VirtualBox、VMware
● SSH远程登录:XShell、PuTTY
● FTP客户端:FileZilla、Xftp
● 终端工具:CMD/DOS、PowerShell、CMDer
● 包管理器:Chocolatey(Win)、NPM(Node.js的包管理器)、NPM、YUM
● WAMP/LAMP(PHP开发四件套):phpStudy
● UML统一建模:Rotional Rose、PowerDesigner(PD)、StarUML
● 关系型数据库客户端GUI工具:SQLyog、NaviCat、PL-SQL
● NoSQL客户端GUI工具:RDM(RedisDesktopManager)、Robo 3T
● 报表PDF模板制作工具:JasperSoft Studio
● 接口调试:Postman
● 基准测试:JMeter
● 反编译:JadX
● JVM调优(监控&诊断):JMAT、JConsole、VisualVM
● 白盒测试/单元测试:JUnit
● 黑盒测试/自动化测试:Selenium
● 项目管理/错误跟踪:禅道、JIRA
● 持续集成(流水线):Jenkins
● 代码审查:Sonar/SonarQube
● 项目构建:Maven、Gradle、Ant
● 自建代码托管服务器:GitLab
● 代码托管在线平台:Gittee(码云)、GitHub(传说中的同志哥好基友)
● Git客户端(GUI):Git for Windows
● SVN客户端(GUI):TortoiseSVN
● 中间件(Broker)及相关工具:
◆ Lucene搜索GUI工具:Luke
◆ 搜索引擎服务器:Solr、ElasticSearch
◆ ES搜索GUI工具:Kibana
◆ 消息队列服务器:ActiveMQ、RabbitMQ、RocketMQ
◆ 注册中心服务器:Nacos
◆ 数据缓存服务器:Redis
◆ 静态文件缓存服务器:Nginx
◆ 安全中间件:CAS
◆ 其它:
● 分布式文件系统(服务器):FastDFS、Ceph
● Maven私服:Nexus
● 大数据:Hadoop
● 虚拟机上传下载工具:lrzsz
■ 团队管理:人员的组织与管理(团队建设,工作纪律,任务分配,激励机制等)
■ 质量管理:软件质量保证,软件度量,软件过程与能力评估等
■ 时间管理:工作时间安排,任务进度管控,团队运作协同,时间管理方法与工具等
■ 计划管理:软件项目计划,总体目标,目标拆解,任务细分,进度计划,后备方案等
■ 信息管理:信息沟通,信息保密,数据库管理,配置管理,文档管理,经验分享等
■ 资金管理:专款管理(如设备采购),资金池管理,现金管理,风险后备金等
■ 资产管理:设备资产,软件资产,信息数据资产等
■ 风险管理:天灾人祸,资金不足,人员流失,功能缺失,技术漏洞,进度违约,法律禁忌等
■ 配置管理:
■ 文档管理:
■
■ Java官方文档&教材:
● Java8官方文档主页:
◆ https://docs.oracle.com/javase/8/docs/index.html
● Java8官方教程
◆ The Java™ Tutorials
● Java语言规范:基于JavaSE8
◆ https://docs.oracle.com/javase/specs/jls/se8/jls8.pdf
● JavaEE8官方教程:基于JDK7
◆ https://javaee.github.io/tutorial/toc.html
*目录:---------------------------------------------------------------------
*Part I:Introduction 【简介】
*Part II:Platform Basics 【平台基础】
*Part III:The Web Tier 【Web层】
*Part IV:Bean Validation 【Bean验证】
*Part V:Contexts and Dependency Injection for Java EE 【上下文和依赖注入(DI)】
*Part VI:Web Services 【Web服务】
*Part VII:Enterprise Beans 【EJB】
*Part VIII:Persistence 【持久化】
*Part IX:Messaging 【消息】
*Part X:Security 【安全】
*Part XI:Java EE Supporting Technologies 【JavaEE支撑技术】
*Part XII:Case Studies 【案例研究】
■ Redis学习
● Redis基本安装
◆ Windows下安装
◆ Linux下安装
● Redis命令学习
◆ 基本命令(或常用命令)
◆ 扩展命令
◆ 高阶命令
● Redis客户端学习
◆ GUI客户端工具
◆ Java操作Redis
▲ Jedis
▲ Spring整合Redis
▲ SpringBoot整合Redis
◆ PHP操作Redis
◆ ...
● Redis部署
◆ 单机部署
◆ 集群部署
● Redis配置与高级主题
◆ 单机
◆ 持久化
◆ 集群部署与生产监控
◆ 分布式运用与问题解决(缓存穿透、缓存雪崩、缓存击穿等)
◆
■
● 系统篇
● 服务篇
◆ DNS
◆ DHCP
◆ (L)AMP
◆ FTP
◆ NFS
◆ Samba
◆ Syslogd
◆ Xinetd
◆ OpenSSL/HTTPS
◆ Firewalld
◆ NTP
◆ ...
● 集群篇
◆ Nginx
◆ Keepalived
◆ Varnish
◆ ...
● 自动化篇
● DevOps篇
● Hadoop
● Zookeeper
● Flume
● Hive
● Hbase
● Kafka
● Scala
○ Storm
● Spark
● Kylin
● JavaScript & Node.js
● PHP
○ Ruby
● Python
● GoLang
● C / C++
● C#
○ Object-C
● Swift
● Lua
● Groovy
● Rust
● ERP
● OA
● CRM
● BOM
● HRM
● 其它
● 综合门户类
● 电子商务类
● 在线教育类
● 信息服务类
● 社交网络类
● 金融服务类
● 企业建站类
● 机构事业类
● 中介服务类
■ 面试心经
■ 团队管理
■ 书籍推荐
■ 心法禅意1:
● 内容日增,已独立成帖,请参见:《心法禅意:程序猿的参悟、觉悟、证悟之路》
●
■ 综合信息