Java|从零讲JAVA,给你一条清晰地学习道路

Java|从零讲JAVA,给你一条清晰地学习道路

一、计算机基础

1.1数据结构基础:
主要学习:
1.向量 , 链表 , 栈 , 队列和堆 , 词典 。 熟悉
2.树 , 二叉搜索树 。 熟悉
3.图 , 有向图 , 无向图 , 基本概念
4.二叉搜索A , B , C类熟练 , 9大排序熟悉 。
5.树的前中后 , 层次 , 之字 , 最短路 。
6.KMP等字符串算法 。
1.2操作系统:
主要学习:
1.进程 , 线程 , 进程线程区别 。 进程间通信
2.进程调度算法理解
3.存储 , 虚拟内存 , 分页分段 , 内存调度算法
4.文件系统 , 链式 , 索引
5.死锁:原因 , 避免 , 解除k
6.Linux基本操作命令 , 会一门脚本编程:shell , Python
1.3计算机网络:
主要学习:
1.网络分层:五层 , 七层 , 四层等
2.网络层:IP分类 , 子网划分 , 超网 。 ARP协议 , ICMP协议 。 理解内部网关和外部网关 , vpn等
3.运输层:端口 , UDP协议理解 , TCP协议理解 , 三次握手 , 四次断开 。
4.应用层:了解常用协议使用的端口和底层协议 。
5.更加深入理解:TCP/IP 对拥塞控制 , 滑动窗口 , 如何实现可靠等 。
1.4基础算法:
主要学习:
1.理解大O等记号
2.动态规划如:几类背包问题最好有现成的代码用于笔试 。 最长公共子序列
3.贪心算法:理解赫夫曼编码(笔试常考概念)
4.B树B+树用于理解数据库索引
5.常用的图算法:广度优先 , 深度优先 , 最短路径算法(最好有现成的代码) , 最小生成树 。
二、JAVA知识基础
2.1JAVA基础:
推荐书籍:编程思想
1.掌握java常用技术 , io、多线程、反射、常用集合框架
2.对处理输入输出的IO进行熟悉 , 用于笔试
3.对Iterator , Iterable和ComparableComparator了解 , 以及常用集合的遍历和排序 。
4.对NIO一定要熟悉 , 以及了解JMS和RPC
5.对JAVA基础概念要熟悉 , 比如抽象类和接口区别等 , 这些熟记 。
2.2JAVA源码:
1.hashmap , hashtable , concurrentHashMap源码以及区别
2.其他集合框架:linkedHashMap , LinkedHashSet , Copy-On-Write等
3.对Lock , Object , String等类的源码了解 。
2.3JAVA并发API:
推荐书籍:应付笔试面试:JAVA多线程编程与核心技术 。 真正神书:JAVA并发编程实战 。
Synchronize 和 Lock 的区别与用法
2.wait()和await() notify()和signal() , wait()和sleep()区别与用法
3.其他的API用法:yield , join等
4.voliate深入理解 , 以及CAS理解
5.JAVA锁底层实现:自旋锁 , 阻塞锁 , 可重入锁 , 偏向锁 , 等 。
6.线程池和阻塞队列
7.以及一些常用的并发实现案例如生产者和消费者
2.4理解JVM:
推荐书籍:深入理解JAVA虚拟机
1.JAVA内存模型 , 哪个区域存放哪些内容
2.引用技术法和可达性分析法
【Java|从零讲JAVA,给你一条清晰地学习道路】3.对象的强、软、弱和虚引用区别与作用
4.jvm垃圾回收机制 , 以及回收算法
5.常见的OOM和SOF的原因和解决方案 , 以及通过什么工具进行分析 。
6.常见的JVM输入参数熟悉
7.了解GC停顿 , 逃逸分析 , TLAB区 , 堆外内存等
8.常用垃圾收集器:G1 , CMS等
9.了解常用性能监控工具:如visualvm jconsole等
10.必须熟悉虚拟机类加载机制 , 包括原理步骤 , 以及双亲委派方式的原理 。
三、常规储备知识学习
3.1数据库: