起航学习网

- 让每个人都能学到最前沿新知识、新技能!
起航学习网
当前位置: 起航学习网 > 短期培训 > 编程语言 > Java学习路线流程图

Java学习路线流程图

时间:2021-07-29 15:17:55来源:Java开发培训网 作者:Java开发教程网 已有: 名学员访问该课程

  快捷搜索:java学习路线流程图

前言: Java任然是比较火爆的编程语言,很多人想要学习Java开发,但是面对Java编程语言不知道从何学起,今天小编就详细的

Java任然是比较火爆的编程语言,很多人想要学习Java开发,但是面对Java编程语言不知道从何学起,今天小编就详细的给你你介绍一下Java编程语言的一些相关知识,希望对于正在学习的你有所帮助

关于语言

如果学Java学得不舒服了,学Python。

如果对面向对象编程的概念有点不习惯,学Smalltalk。(Ruby也行,但不如Smalltalk经典。Ruby的文档是一大硬伤。)

如果嫌Java太啰嗦,学Python

如果嫌Java太啰嗦,又想用JVM,自己又有精力,学Scala

如果对对象之间的关系有点晕,学一学UML,以及它的一些图,可以对程序和运行进行直观的建模。你的IDE也许有插件可以生成UML图。但是不要太沉迷于这些方法论。

调试和辅助工具

学习一下你的集成开发环境提供的调试工具,加一些断点试试。

试试用jconsole或者VisualVM监控另一个jvm的状态。

用profiling工具寻找程序中慢的地方。Eclipse有profiling工具。VisualVM也有这样的功能。(如果不介意使用闭源软件的话,也试试JProfiler和YourKit)

有的JVM允许在运行时更新代码。Eclipse可以和某些JVM集成。这样你可以频繁修改代码而不用频繁重启JVM。对于某些“重型”工程很有用。(如果不介意使用闭源软件的话,也试试jRebel)

多线程

学习Java的多线程编程以及lock、condition的用法(包括传统Java的synchronized语句以及新加的Java.util.concurrent.*),学习一下如何让线程停下来,以及为何要频繁确认isInterrupted()而不要用Thread.stop()。了解一下多核处理器、缓存、内存的关系,以及为何多线程编程这么难。

如果还舒服,学习一下Runnable的用法,以及自带的Executer等基本多线程工具。

应该已经留意到Java.util里面的很多容器不是线程安全的,但是Java.util.Collections可以帮你创建一些安全的版本。另外关注一下Java.util.concurrent里面有ConcurrentMap等容器可供使用。

如果有空的话,看看memory model(内存一致性模型)和无锁同步(见Java memory model和Java.util.concurrent.atomic)。

如果还有空,再了解一下除了“共享内存多线程编程”以外有没有别的模型(多进程multi-processing、消息传递message passing等)。

反射、元编程

学习Java的反射机制,以及Annotation的用法。

如果还舒服,试试Java.lang.reflect.Proxy的用法。

如果仍然还舒服,玩一玩CGLib(一个第三方的库)。

网络编程

学习一下IP,TCP协议(计算机专业的应该学过,复习一下),学习Socket编程(注意垃圾回收器不会帮你关掉Socket)。

如果不是很关心HTTP,看看Java.nio,学习单线程轮询式IO复用(Selector)。

如果有点不明白nio的意图的话,了解一下c10k问题。 http://www.kegel.com/c10k.html

如果身体没有异样的话,大概了解一下操作系统(包括C语言)提供的select, poll, epoll, kqueue等接口。

如果身体仍然没有异样的话,试着用Java.nio写一个文件服务器。

如果还有精力的话,上网扒一扒有没有其他的通信库,如netty等。

如果关心Web还有HTTP,就学习一下HTTP协议,以及用Java进行HTTP的客户端编程。

如果还舒服,学学HTML,写写HTML的静态网页(不需要Java)

如果还舒服,用Java写一个基于DOM、XPath或者CSS Selector的网页解析器(爬网页)。

如果还舒服,学学Java的Servlet接口(先别学jsp)进行Web服务器端编程。学学标准的Servlet容器怎么用,包括web.xml的用法以及listener、filter等概念。以及某个Servlet容器(如Jetty或者Tomcat)的具体用法。

如果仍然还舒服,试着学一种模板语言(如haml, velocity, freemarker,【还有其他更好的框架吗?我不知道】, String.format,如果真的想学JSP的话JSP倒是也行,但不推荐)。

如果仍然觉得舒服,学学Spring框架中的Web框架,或者Struts,看你的口味。

如果还舒服,看看Spring Bean Container以及里面各种乱七八糟的工具。

如果还舒服,或者有需求,了解一下什么是RESTful Web Service,复习一下HTTP,找找适合的Java工具。

你可能会觉得Jackson是一个解析JSON用的好用的东西。

数据库

学习一下关系数据库(计算机专业的应该学过,复习一下),包括SQL。选一个数据库管理系统熟悉一下(比如MariaDB,或者(如果你不讨厌Oracle的话)用被Oracle收购了的MySQL。先脱离Java单独学学)。然后看它们的官方文档教你怎么用Java连接这种数据库。这中间会涉及到JDBC接口。同时一定要知道SQL注入安全漏洞,以及掌握如何用PreparedStatement防止注入!!。建议看 http://bobby-tables.com/

可能中间会涉及“事务”问题,让你不知不觉地开始去了解Java transaction api(JTA)。

如果还舒服,学一学对象关系转换(如Hibernate)。

也可以学学非关系数据库,以及如何用Java访问它们。

日志记录

学习一下slf4j和logback的用法。

如果有精力的话,大概了解一下世界上有多少种Java日志框架,以及slf4j是怎么桥接这些框架的。

构建(build)系统

学习一下Ant的用法。

如果还舒服的话,学习一下用Ivy从Maven的仓库里下载软件包,解决依赖关系。

版本控制

学习一种分布式版本控制器(如Git、Mercurial、Bzr、Darcs等,推荐Git)的基本用法,以及如何用它管理Java工程。希望你已经开始使用Maven了,并且知道为何把IDE生成的工程文件(如eclipse的.project,.classpath和.metadata)放入版本控制器不好。然后了解一下如何在IDE中使用版本控制(Eclipse自带Git插件)。

如果感觉很舒服的话,为你们实验室搭建一个Linux+SSH+Git服务器,装个GitLab(一种Web界面)。

了解“集中式版本控制器”和“分布式版本控制器”的区别,并说服同事们不要再用SVN、CVS或者SourceSafe等老旧的“集中式版本控制器”了。

开设一个GitHub账户。如果你不喜欢Git,就用BitBucket等。

免责声明:内容来源于网络,若涉及侵权联系尽快删除

文章出自:http://qh.itpxw.cn/peixun/software/202191334.html

文章标题:Java学习路线流程图



免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉

你也许会喜欢如下的文章?
(责任编辑:深圳学历教育网)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
培训学校
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员 用户级别:10 机构名称:IT培训网 联 系 人:罗老师 联系电话:13783581536 联系手机:13783581536 在线客服:起航学习网客服 在 线 QQ:起航学习网客服 电子邮件: 网站域名:http://www.itpxw.cn 注册时间:2016-07-18 11:07 最后登录:2024-02-20 13:02
推荐内容