从零讲JAVA ,给你一条 清晰地学习道路!该学什么就学什么!

1.计算机基础:

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.常用的图算法:广度优先,深度优先,最短路径算法(最好有现成的代码),最小生成树。

2.JAVA知识基础:

2.1 JAVA基础
推荐书籍:编程思想
1.掌握java常用技术,io、多线程、反射、常用集合框架
2.对处理输入输出的IO进行熟悉,用于笔试
3.对Iterator,Iterable和Comparable,Comparator了解,以及常用集合的遍历和排序。
4.对NIO一定要熟悉,以及了解JMS和RPC
5.对JAVA基础概念要熟悉,比如抽象类和接口区别等,这些熟记。

2.2 JAVA源码

1.hashmap,hashtable,concurrentHashMap源码以及区别
2.其他集合框架:linkedHashMap,LinkedHashSet,Copy-On-Write等
3.对Lock,Object,String等类的源码了解。

2.3 JAVA并发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.引用技术法和可达性分析法
3.对象的强、软、弱和虚引用区别与作用
4.jvm垃圾回收机制,以及回收算法
5.常见的OOM和SOF的原因和解决方案,以及通过什么工具进行分析。
6.常见的JVM输入参数熟悉
7.了解GC停顿,逃逸分析,TLAB区,堆外内存等
8.常用垃圾收集器:G1,CMS等
9.了解常用性能监控工具:如visualvm jconsole等
10.必须熟悉虚拟机类加载机制,包括原理步骤,以及双亲委派方式的原理。

3.常规储备知识学习

3.1数据库:

推荐书籍:sql入门:Mysql必知必会。深入理解:高性能Mysql
1.常用关联查询语法,自己所动手写几个
2.数据库索引深入认识和理解
3.JDBC学习
4.常用数据库调优手段:比如通过索引调优
5.InnoDB和MyISAM 区别
6.了解主键,外键,索引,唯一索引
7.了解索引、视图、触发器、游标和存储过程
8.常用关系型数据库和非关系型数据库:关系型了解:Mysql,Oracle 非关系型了解:redis,Hbase,monogodb等

3.2设计模式:

推荐书籍:设计模式之禅
1.单例模式的几种写法一定要会
2.JDK中对应的设计模式:如IO中的装饰模式和设配器模式等
3.框架中常用的设计模式:如Struts中的责任链模式,Spring中的工厂模式,动态代理模式等
4.了解6大设计原则

3.3HTTP协议:

推荐书籍:HTTP权威指南
1.什么是HTTP,协议版本等
2.学会使用浏览器查看HTTP请求与响应
3.熟悉HTTP请求头和请求体
4.熟悉HTTP响应头和响应体
5.了解Rest风格

3.4 神一般的Spring:

推荐书籍:Spring实战和Spring技术内幕
1.了解IOC原理和作用
2.了解AOP原理和作用
3.常用的XML配置
4.Spring事务原理和使用
5.SpringMVC
6.了解Spring的webflow,远程服务,rest,消息,安全等
7.新功能:Spring boot和cloud

4.后端学习之路

4.1WEB后端学习之路

推荐书籍:可以选择一些SSH整合开发之类的
1.JSP和Servlet学习
2.XML和JSON解析学习
3.前端知识:HTML、css,js
4.JDBC学习,文件上传下载,JAVAMail等
5.可以利用jsp和Servlet开发简单项目
6.接着框架学习:Struts2,Hibernate,Spring以及相互整合开发
7.接着可以了解:SpringMvc,Mybatis,Lucene,shiro等
8.利用框架实现简单项目比如CMS。

4.2 服务架构学习之路(此部分笔试面试不一定学习)

推荐书籍:分布式服务框架原理与实践和微服务设计
1.了解SOA和微服务
2.负载均衡:LVS,NGINX等
3.RPC框架学习:RMI,Thrift等
4.消息框架学习:ActiveMq等
5.Netty通信框架学习
6.服务框架:dubbo

4.3 Hadoop学习之路(此部分笔试面试不一定学习)

推荐书籍:Hadoop权威指南
1.熟悉mapReduce和HDfS
2.Hadoop集群搭建
3.了解:zk,hive,hbase,pig,mahout等
4.zk几个常用作用如做注册中心,放配置信息等。

从零讲Java,给你一条清晰地学习道路!该学什么就学什么!的更多相关文章

  1. 从零讲JAVA ,给你一条 清晰地学习道路!该学什么就学什么!!

    1.计算机基础: 1.1数据机构基础: 主要学习:1.向量,链表,栈,队列和堆,词典.熟悉2.树,二叉搜索树.熟悉3.图,有向图,无向图,基本概念4.二叉搜索A,B,C类熟练,9大排序熟悉.5.树的前 ...

  2. 0讲Java,给你一条简单清晰的学习道路!

    1. 计算机基础: 1.1 数据结构基础: 主要学习:1.向量,链表,栈,队列和堆,词典.熟悉2.树,二叉搜索树.熟悉3.图,有向图,无向图,基本概念4.二叉搜索A,B,C类熟练,9大排序熟悉.5.树 ...

  3. 关于Java代码优化的44条建议!

    关于Java代码优化的N条建议! 本文是作者:五月的仓颉 结合自己的工作和平时学习的体验重新谈一下为什么要进行代码优化.在修改之前,作者的说法是这样的: 就像鲸鱼吃虾米一样,也许吃一个两个虾米对于鲸鱼 ...

  4. <<Effective Java>> 第四十三条

    <<Effective Java>> 第四十三条:返回零长度的数组或者集合,而不是null 如果一个方法的返回值类型是集合或者数组 ,如果在方法内部需要返回的集合或者数组是零长 ...

  5. 第33讲 UI组件_进度条ProcessBar和消息队列处理器handler

    第33讲UI组件_进度条ProcessBar和消息队列处理器handler 1. 进度条ProcessBar 一个可视化的进度指示器,代表正在执行的耗时任务.可以为用户展示一个进度条,表示正在执行的任 ...

  6. 零基础java的福音!史上最全最精简的学习路线图!

    这是一个java系统学习路线,从零基础到项目框架开发,每一个阶段里面内容都标记的很清楚,如果你现在也在学习java,你可以跟着这个系统学习路线学,学完自己可以独立的完成项目框架开发,二线城市拿个7k+ ...

  7. 第10讲-Java集合框架

    第10讲 Java集合框架 1.知识点 1.1.课程回顾 1.2.本章重点 1.2.1 List 1.2.2 Set 1.2.3 Map 2.具体内容 2.1.Java集合框架 2.1.1 为什么需要 ...

  8. 从零构建Java项目(Maven+SpringBoot+Git) #02 奥斯丁项目

    前两天我说要写个项目来持续迭代,有好多小伙伴都表示支持和鼓励,项目的第一篇这不就来了么~我给项目取了个名字,英文名叫做:austin,中文名叫做:奥斯丁 名字倒没有什么特别的含义,我单纯觉得这个名字好 ...

  9. 20172328 2018-2019《Java软件结构与数据结构》第四周学习总结

    20172328 2018-2019<Java软件结构与数据结构>第四周学习总结 概述 Generalization 本周学习了第六章·列表,主要让我们认识列表以及分析各种列表实现. 教材 ...

随机推荐

  1. x86汇编之十(使用字符串)

    x86汇编之十(使用字符串) 转自网络,出处不详 一.传送字符串 Intel提供了完整的字符串传送指令,就像是MOV指令一样. 1.MOVS指令 1)movs指令格式 把字符串从一个位内存位置传送到另 ...

  2. Linux的网卡由eth0变成了eth1或eth2,如何修复??

    背景:做linux下分布式测试的时候,重新安装了两个linux虚拟机,结果分布式脚本没有做好,分布式也没有做成. 今天想练练linux命令,打开vmware,启动linux1 虚拟机,使用ifconf ...

  3. you have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'varchar(255), sort integer not null

    you have an error in your SQL syntax; check the manual that corresponds to your MySQL server version ...

  4. linux命令 info

    info命令是Linux下info格式的帮助指令. 就内容来说,info页面比man page编写得要更好.更容易理解,也更友好,但man page使用起来确实要更容易得多.一个man page只有一 ...

  5. saturne installation on Ubuntu

    test installation Table of Contents 1. installation guide 1 installation guide saturne_installation. ...

  6. 洛谷 2484 [SDOI2011]打地鼠

    [题解] n^6的做法很好想,然而这样复杂度不对.. 然后我们可以发现R和C可以分开求,这样复杂度降到了n^4. 使用树状数组可以把复杂度降到n^3logn,可以顺利通过. #include<c ...

  7. WeChat-小程序-tabbar

    WeChat-小程序-tabbar https://developers.weixin.qq.com/miniprogram/dev/framework/config.html#%E5%85%A8%E ...

  8. spring boot 的使用(一)

    1.  启动spring-boot项目 mvn spring-boot:run cd target java -jar xxxx.jar xxxx代表生成的jar包

  9. 使用 XMLHttpRequest实现Ajax

    [XMLHttpRequest的概述] 1.XMLHttpRequest最早是在IE5中以ActiveX组件的形式实现的.非W3C标准 2.创建XMLHttpRequest对象(由于非标准所以实现方法 ...

  10. Windows学习总结(10)——Windows系统中常用的CMD命令详解

    1.ping命令 ping是电脑网络故障诊断中的常用的命令,它的作用是用来检查网络是否通畅或者网络连接速度.我们来看一下PING命令的具体表述. 日常的诊断过程中我们最常用到的就是诊断连接是否通畅. ...