java开发之路

 一、基础篇
1.1 JVM
1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收
1.1.2. 了解JVM各种参数及调优
1.1.3. 学习使用Java工具
1.1.4. 学习Java诊断工具
1.1.5. 自己编写各种outofmemory,stackoverflow程序
1.1.6. 使用工具尝试解决以下问题,并写下总结
1.1.7. 参考资料
1.2. Java基础知识
1.2.1. 阅读源代码
1.2.2. 熟悉Java中各种变量类型
1.2.3. 熟悉Java String的使用,熟悉String的各种函数
1.2.4. 熟悉Java中各种关键字
1.2.5. 学会使用List,Map,Stack,Queue,Set
1.2.6. Java IO&Java NIO,并学会使用
1.2.7. Java反射与javassist
1.2.8. Java序列化
1.2.9. 虚引用,弱引用,软引用
1.2.10. 熟悉Java系统属性
1.2.11. 熟悉Annotation用法
1.2.12. JMS
1.2.13. JMX
1.2.14. 泛型和继承,泛型和擦除
1.2.15. 自动拆箱装箱与字节码
1.2.16. 实现Callback
1.2.17. java.lang.Void类使用
1.2.18. Java Agent,premain函数
1.2.19. 单元测试
1.2.20. Java实现通过正则表达式提取一段文本中的电子邮件,并将@替换为#输出
1.2.21. 学习使用常用的Java工具库
1.2.22. 什么是API&SPI
1.2.23. 参考资料
1.3. Java并发编程
1.3.1. 阅读源代码,并学会使用
1.3.2. 学习使用线程池,自己设计线程池需要注意什么
1.3.3. 锁
1.3.4. synchronized的作用是什么,synchronized和lock
1.3.5. sleep和wait
1.3.6. wait和notify
1.3.7. 写一个死锁的程序
1.3.8. 什么是守护线程,守护线程和非守护线程的区别以及用法
1.3.9. volatile关键字的理解
1.3.10. 阅读如下代码
1.3.11. 解释一下下面两段代码的差别
1.3.12. 参考资料
二、 进阶篇
2.1. Java底层知识
2.1.1. 学习了解字节码、class文件格式
2.1.2. 写一个程序要求实现javap的功能(手工完成,不借助ASM等工具)
2.1.3. CPU缓存,L1,L2,L3和伪共享
2.1.4. 什么是尾递归
2.1.5. 熟悉位运算
2.1.6. 参考资料
2.2. 设计模式
2.2.1. 实现AOP
2.2.2. 使用模板方法设计模式和策略设计模式实现IOC
2.2.3. 不用synchronized和lock,实现线程安全的单例模式
2.2.4. nio和reactor设计模式
2.2.5. 参考资料
2.3. 网络编程知识
2.3.1. Java RMI,Socket,HttpClient
2.3.2. 用Java写一个简单的静态文件的HTTP服务器
2.3.3. 了解nginx和apache服务器的特性并搭建一个对应的服务器
2.3.4. 用Java实现FTP、SMTP协议
2.3.5. 什么是CDN?如果实现?DNS起到什么作用?
2.3.6. 参考资料
2.4. 框架知识
2.4.1. spring,spring mvc,阅读主要源码
2.4.2. ibatis,阅读主要源码
2.4.3. 用spring和ibatis搭建java server
2.5. 应用服务器知识
2.5.1. 参考资料
三、 高级篇
3.1. 编译原理知识
3.1.1. 用Java实现以下表达式解析并返回结果
3.1.2. 实现对一个List通过DSL筛选
3.1.3. 用Java实现以下程序
3.1.4. 参考资料
3.2. 操作系统知识
3.2.1. Ubuntu
3.2.2. Centos
3.2.3. 使用linux,熟悉shell脚本
3.3. 数据存储知识
3.3.1. 关系型数据库
3.3.2. NoSQL
3.3.3. 参考资料
3.4. 大数据知识
3.4.1. Zookeeper,在linux上部署zk
3.4.2. Solr,Lucene,ElasticSearch
3.4.3. Storm,流式计算,了解Spark,S4
3.4.4. Hadoop,离线计算
3.4.5. 分布式日志收集flume,kafka,logstash
3.4.6. 数据挖掘,mahout
3.4.7. 参考资料
3.5. 网络安全知识
3.5.1. 什么是DES、AES
3.5.2. 什么是RSA、DSA
3.5.3. 什么是MD5,SHA1
3.5.4. 什么是SSL、TLS,为什么HTTPS相对比较安全
3.5.5. 什么是中间人攻击、如果避免中间人攻击
3.5.6. 什么是DOS、DDOS、CC攻击
3.5.7. 什么是CSRF攻击
3.5.8. 什么是CSS攻击
3.5.9. 什么是SQL注入攻击
3.5.10. 什么是Hash碰撞拒绝服务攻击
3.5.11. 了解并学习下面几种增强安全的技术
3.5.12. 用openssl签一个证书部署到apache或nginx
3.5.13. 参考资料
四、 扩展篇
4.1. 相关知识
4.1.1. 云计算,分布式,高可用,可扩展
4.1.2. 虚拟化
4.1.3. 监控
4.1.4. 负载均衡
4.1.5. 学习使用git
4.1.6. 学习使用maven
4.1.7. 学习使用gradle
4.1.8. 学习一个小语种语言
4.1.9. 尝试了解编码的本质
4.1.10. 尝试了解时间的本质
4.1.11. 参考资料
4.2. 扩展学习
4.2.1. JavaScript知识
4.2.1.1. 什么是prototype
4.2.1.2. 什么是闭包
4.2.1.3. 了解并学习一个JS框架
4.2.1.4. 写一个Greasemonkey插件
4.2.1.5. 学习node.js
4.2.2. 学习html5 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值