如果感觉舒适,那就学习 HTML 吧,然后动手编写 HTML 的静态网页,并且不需要使用 Java 。
如果感觉舒适,编写一个基于 DOM 或者 CSS 的网页解析器(用于爬网页),使用 Java 语言。
如果感觉还舒适,那就学习 Java 的接口(暂且先不要学习 jsp)来进行 Web 服务器端编程。学习标准容器的使用方法,包含 web.xml 的用法以及相关概念等。还有某个特定容器(例如或者类似的)的具体使用方式。
如果还是感觉舒服,试着去学习一种模板语言,比如 haml 等。我不知道还有没有其他更好的框架。如果真的想要学习 JSP,JSP 也是可以的,但不推荐这么做。
如果感觉依然舒适,那就学习框架里的 Web 框架,或者,依据你的喜好来决定。
如果还舒服,看看 Bean 以及里面各种乱七八糟的工具。
如果感觉舒适,或者存在需求,那么可以了解一下“Web”是什么,对“HTTP”进行复习,并且寻找适合的“Java”工具。
你可能会觉得是一个解析JSON用的好用的东西。
数据库
学习关系数据库(计算机专业的学生通常学过,可进行复习),其中包含 SQL。挑选一个数据库管理系统来熟悉一下,例如,可以选用被收购了的(如果你不反感的话)。先脱离 Java 单独进行学习。接着查看它们的官方文档,了解如何用 Java 连接这种数据库。在此过程中会涉及到 JDBC 接口。同时必须要知晓 SQL 注入安全漏洞,并且要掌握防止注入的方法。建议进行查看。
可能会涉及到“事务”方面的问题,从而使你在不知不觉中开始去了解 java api(JTA)。
如果感觉舒适,那就学习一下对象关系转换这类内容。同时,也可以学习非关系数据库,以及了解怎样用 Java 去访问它们。
日志记录
学习一下和的用法。
如果有精力,大概去了解一下世界上 Java 日志框架的种类有多少,同时了解一下是怎样去桥接这些框架的。
构建()系统
学习一下Ant的用法。
如果感觉还舒适的话,那就学习如何使用 Ivy 从仓库中下载软件包,以解决依赖关系。
版本控制
学习分布式版本控制器,例如 Git、Bzr 等,其中推荐 Git。要学习它的基本用法,以及怎样用它来管理 Java 工程。希望你已经开始使用了,并且明白为什么把 IDE 生成的工程文件,像.、.和.等放入版本控制器是不好的。接着了解在 IDE 中如何使用版本控制(自带 Git 插件)。
如果感觉很舒适,那就为你们的实验室搭建一个 SSH Git 服务器,并且安装一个(具备 Web 界面的东西)。
了解“集中式版本控制器”与“分布式版本控制器”的差异,并且劝服同事们不要再使用 SVN、CVS 这类陈旧的“集中式版本控制器”了。
开设一个账户。如果你不喜欢Git,就用等。
持续集成
搭建一个持续集成服务器,例如定期编译程序,这可以是为你们实验室搭建,也可以是自己搭建。同时建议使用 Git 等分布式版本控制器。
如果你做开源软件,试试和。
零碎工具
淘一淘 java.nio 里面的好用之物,接着再淘一淘 Lang 以及 IO 里的好用工具。之后就不要再使用了,而是使用和。
XML
学习 XML 和 DOM。XML 在很多地方都有可能被用到。还可以用它来编写自己的配置文件。
如果觉得不舒服了,就学学JSON和YAML。
如果还是不舒服,就学学文本文件解析。
语法分析和编译器
学学或者别的 的用法
如果觉得舒服,自己写一个计算器。
如果还觉得舒服,自己写一种- (DSL)。
高效容器
学学或者,如果你需要进行大量数值运算的话。
分布式计算
学学的思想以及它的实现。
如果还舒服,学学语言以及号称比快得多的 。
进程间通信
看看、MINA和RMI。
其他语言(JVM)
学习另一门跑在JVM上的语言或者实现(如、、、、、……)
如果感觉舒适,去学习一下 Java API(需注意并非。提供一个链接: ),接着尝试在自身的 Java 程序中嵌入脚本。
其他语言(非JVM)
学习另一门通用脚本语言,例如 Ruby,其实 Perl 也可以,但不建议使用。要知道在什么情况下 Java 不是最好的选择。
Java语言和Java虚拟机
先一目十行地读一遍 Java ,接着再读一遍 Java 。
了解以下这些概念:解释器、编译器、即时编译器(just-in-time)以及优化器。
如果对编译器的话题没有畏惧感,那就去了解一下 JIT 以及它的概念和区别。
内存管理
学习垃圾回收的几种基本算法,例如 mark-算法、mark-算法、semi-算法等。了解它们各自的性能情况,以及为何朴素的(此处应明确具体的朴素算法)是不完整的。要知道为何其性能很差,并且标准并不规定在程序退出前一定会执行这些算法。
如果感觉舒适,了解一下怎样去设置 Java 虚拟机的堆大小限制。例如可以设置虚拟机的 -Xmx 选项等。
了解 Java 里的“以及”和“以及”这两个概念。了解它们在什么情况下是有用的。了解为什么它们在实现过程中会有些困难。
如果有精力,了解一下虚拟机的内存管理算法是什么样的。
动态装载
学学Java的动态装载( )
如果还舒服的话,学学OSGI以及它的一种实现(如或者)
如果还是感觉很舒服,那就学习编写基于平台的程序。这里所说的不是集成开发环境,而是仅仅利用它们的图形框架,来编写自己的应用程序。
如果还觉得舒服的话,写集成开发环境的插件。
本地/外语接口
学习 Java 中的(JNI)。尝试去编写一个由 Java 和 C 语言共同参与编程的程序。
如果感觉不舒服了,或者感觉处于一种极度愉悦的状态,那就学习一下 Java(JNA)。尝试一下在不使用任何胶水代码的情况下,直接从 Java 装载 C 库,并且直接调用 C 函数。
如果连JNA也懒得学,就学一学SWIG,自动生成绑定。
如果感觉舒适,那就学习一下 Java 。同时,使用 C 程序来对 JVM 的状态进行监视。
密码学
学习密码学,其中包含编码、密码分析、攻击、对称密钥、公钥系统、数字签名、哈希算法等方面。查看一下 Java 是否已经实现了这些内容。
如果你觉得有点不舒服,那你应该不会觉得舒服吧。除非你是学密码学的,否则你总会觉得自己写的程序有安全漏洞。如果是这样的话,你可以写一个“人品计算器”来放松一下。这个“人品计算器”要求每次输入同一个姓名,得到的人品值是固定的,同时又要让人无法用别人的人品值来猜自己的人品值。
移动终端
学一学开发。
如果有精力的话,看看虚拟机是怎么回事。
建议买一个或者iPad,或许你再也不想用手机或者平板了。
历史
觉得有些无聊时,就去挖掘历史上较为热门的或许与 Java 相关的技术,例如:
,想想它比起+css3+的缺点在哪里。
AWT 。思考为何很少有人使用 Java 来编写图形界面程序呢?你觉得该程序看起来舒适吗?中国人以及残疾人会喜欢使用该程序吗?
JNDI,想想它比起 Bean 的缺点在哪里。
JSP,想想它比起MVC结构的缺点在哪里。
WSDL 和 SOAP,将它们与 XML-RPC 以及 Web 进行比较。
XSLT 以及它为何是图灵完备的。然而,它真的比 Java 本身更易于使用吗?
java.util.各自存在哪些问题呢?并且其作者本人为何又开发了其他相关的东西呢?
Java最早是为什么设计的?
Type 是怎么回事?为什么不行但就可以?挖一挖历史。
实际上 Java 并非完完全全是面向对象的语言。Java 更侧重于实用性,许多控制流,像 if 语句、循环、for 循环等,是源自面向过程的语言;基本数据类型,例如 int、char 等,也不是对象。然而另外一些语言,就比如,更倾向于纯粹的面向对象设计,其中包括基本的数据类型都是对象,像 if 和 for 等也是用对象和方法来实现的。
基本数据类型也是对象,可以接受消息(即方法),比如:
(a + b) sqrt
这里面,a 加 b 实际上是向 a 发送“+”这个消息,其参数是 b。sqrt 同样是一个消息,是发给一个数的。
if分支是这样做的:
|(x < y) : [
max := y.
i := j
] : [
max := x.
i := k
是一个方法,属于一个对象,它需要取两个参数,这两个参数各自都是一个“块”,分别在为真和为假的情况下执行。
还有循环是这样做的:
|[i < 100] : [
sum := sum + i.
i := i + 1
有一种方法是“块”,每次会对块进行求值,若结果为真,就会反复执行第一个参数(同样也是“块”)。
所以,相较于其他面向对象的语言而言,Java 并非特别“面向对象”。因此需要去补充一些关于面向对象语言的相关知识。
版权声明:本文为 “博览广文网” 原创文章,转载请附上原文出处链接及本声明;
工作时间:8:00-18:00
客服电话
0755-88186625
电子邮件
admin@lanyu.com
扫码二维码
获取最新动态