一、java基础
(一)数据结构
1.算法分析:数学基础、复杂度分析
2.逻辑结构:表、栈、队列、优先队列(堆)、树、散列
3.排序:冒泡排序、插入排序、快速排序、直接选择排序、希尔排序、堆排序、归并排序、桶式排序、外部排序
4.查找:顺序查找、二分查找、二叉排序树查找
5.算法设计与技巧:递推、递归、迭代、穷举、贪婪、分治、动态规划、随机化算法、回溯
(二)高级语法
1.语法基础:static、final、super、this、transient、volatile、native
2.面向对象:封装、继承、多态、反射、引用类型、内部类、Object类、包装类、字符串类、日期工具类、异常处理
(三)集合框架
1.Collection:ArrayList、LinkedList、Vector、Stack、HashSet、LinkedHashSet、TreeSet
2.Map:HashMap、LinkedHashMap、TreeMap
(四)文件操作
1.进制:十进制与二进制的由来、进制的转换、位运算、JDK内置的进制转换、java中的进制
2.编码:几种常见的编码格式、Java中需要编码的场景、Java中如何编解码、Java Web涉及的编解码、JS涉及的编解码、常见的编码问题
3.I/O:字节流、字符流、字节流和字符流的转换、Java I/O涉及的设计模式(适配器、装饰器)
4.文件访问:几种访问文件的方式、java访问磁盘文件、java序列化技术、File类、RandomAccessFile类
5.XML:xml文件的四种读和写以及对比
(五)并发编程
1.Java内存模型
1)主内存和工作内存的交互
2)原子性(竞态条件、复合操作)、可见性、有序性
3)valatile变量
4)非原子的64位操作(long和double类型)
5)先行发生原则
2.线程:
1)线程的实现
2)java线程的调度
3)状态转换
4)线程池
3.线程安全
1)java语言中的线程安全
2)线程安全的实现方法
3)锁机制(重入内置锁、显式锁、死锁的诊断和避免)
4)锁优化(自旋、锁消除、锁粗化、轻量级锁、偏向锁)
5)原子变量与非阻塞同步机制
4.基础构建模块
1)同步容器类:Vector、Stack、Hashtable、Collections类中提供的静态工厂方法创建的类
2)并发容器类:ConcurrentHashMap、CopyOnWriteArrayList、额外的原子Map操作
3)阻塞队列和生产者-消费者模式:BlockingQueue
4)同步工具类:闭锁、FutureTask、信号量、栅栏
5)java.util.concurrent同步器类中的AQS(注意是同步器类不是同步容器类)
(六)设计模式
1.创建型模式:原型、单例、工厂方法、抽象工厂、建造者
2.结构型模式:适配器、装饰、代理、组合、门面、桥模式、享元
3.行为型模式:策略、观察者、模板、职责链、命令、迭代器、中介者、解释器、访问者、状态、备忘录
(七)JVM
1.自动内存管理机制
1)JVM内存模型
2)怎么判断对象已死
3)new是一个怎么样的过程
4)JVM内存运行区域中的OutOfmemoryError
5)垃圾回收算法
6)垃圾收集器
7)内存回收与分配策略
2.虚拟机执行子系统
1)类文件结构
2)虚拟机类加载机制
3)虚拟机类加载案例分析
(八)NIO
1.NIO的工作机制、Buffer的工作方式、NIO的数据访问方式
2.Channel:FileChannel、DatagramChannel、SocketChannel、ServerSocketChannel
3.Buffer:ByteBuffer、MappedByteBuffer
4.Selector:单线程处理多个Channel
(九)WEB开发
1.基础:Html、CSS、JS
2.进阶:Servlet、JSP、Filter和Listener、Session和Cookie、身份验证和单点登录原理及实现
3.前端框架和插件:JQuery、AngularJS、Node.js、日期插件、表格插件
(十)常用代码
1.分页、异步、定时任务、线程池、工作流
2.文件/视频上传与下载、配置文件加载
3.JSON解析、字符串处理
4.邮件、短信、APP消息推送
二、框架
1.底层框架:EJB、Spring、Play、PAFA
2.MVC框架:SpringMVC、Struts2
3.服务框架:Spring Boot与Spring cloud、Dubbo(阿里)、Service Mech、Tars(腾讯)
4.持久层框架:Hibernate、MyBatis(iBatis)
5.其他框架:Quartz(调度)、Executor(异步执行)、Mina(NIO)、Netty(NIO)
三、数据库
1.数据库类型:MySQL、Oralce、MongoDB
2.数据库操作
1)SQL分类、运算符、常用函数
2)表类型(存储引擎)、数据类型、字符集、索引
3)语句块、视图、存储过程、自定义函数、触发器
4)事物控制和锁定语句、SQL安全、SQL Mode
3.数据库优化
1)表结构的设计
2)结构良好的SQL和有效且合适的索引
3)对系统配置优化
4)选择适合数据库的CPU
四、中间件
1.服务器(容器):Tomcat、Jetty、WebLogic、Nginx、Apache、Jboss、Docker
2.服务注册:Zookeeper
3.消息队列:RabbitMq、kafka
4.缓存机制:Redis、Memcached、Ehcache
五、系统与工具
1.工具:Svn、Ant、Maven、Git、PowerDesgin、Visio
2.系统:Linux
六、软件工程课程
1.算法基础
1)算法设计及其复杂性分析
2)数据结构与算法(1/2)
3)离散数学
2.理论基础
1)软件理论基础(1)
2)网络系统(1)
3)计算机系统软件(1/2)
4)计算机与网络体系结构(1/2)
5)软件工程(1/2/3)
3.课程实践
1)程序设计实践
2)程序设计实训
3)专业专题训练
4)软件系统建模与验证(1/2)
七、JAVA书单
1.基础
1)《计算机网络》
2)《数据结构与算法Java版》
3)《Java编程思想》
4)《Effective Java中文版(第2版)》
5)《Head First设计模式》
6)《鸟哥的Liunx私房菜》
2.进阶
1)《深入理解Java虚拟机:JVM高级特性与最佳实践》
2)《并发编程与实战》
3)《深入分析Java Web技术内幕》
4)《Spring实战4》
5)《Spring源码深度解析》
3.数据库与缓存
1)《MySQL5.6从零开始学》
2)《Oracle从入门到精通》
3)《Redis实战》
4.阿里书籍:
1)《大型网站系统与Java中间件实践》
2)《大型网站技术架构核心原理与案例分析》
3)《从Paxos到Zookeeper:分布式一致性原理与实践》
4)《大型分布式网站架构设计与实践》
5)《阿里巴巴Java开发手册》
6)《阿里技术参考图册》
5.项目管理
1)《人月神话》
2)《人件》
遗憾丛生才叫生活,瑕疵偶现才算真实。