热门关键字: php net javascript java
Just Internet && Only Internet
您的位置:java > Java学习方法-续
Java学习方法-续
发布时间:2017-07-27 15:34:42

在大家阅读这些书之前,给大家一点提示: java 网络编程其实相对比较简单,入门也很快很快。java 网络编程主要包括两个部分:1.Socket; 2.URL 部分。不过第二部分也完全建立在第一部分的基础上。 1. Socket 包括客户端的 Socket 和服务器端的 ServerSocket。还有就是 DatagramSocket 和 DatagramPacket,它对应于 UDP 通信协议。 总之,Socket 部分是建立其它高级协议的基础。 2. URL 类是一个网络资源定位器,通常和具体的网络协议如 HTTP,FTP,Telnet……相关。通过该类 可以连接网络上的资源,通过其 openStream 可以以 io 包中的流(InputStream)的形式读取网络 资源;通过其 OpenConnection 方法,可以打开一个连接,在此连接上可以不仅可以完成读的操作, 还可以完成写的操作。 Java 的网络编程大体包括以上两部分。网络编程和 IO 以及多线程部分非常密切,在学习此部分前 大家一定对这两部分了解比较透彻。 学习了以上部分你可以研究 java.net 包中的与此相关的源代码了!研究所有的源代码还为时尚早。 在整个 net 包中包含:ContentHandlerFactory、URLStreamHandlerFactory、URLStreamHandler、 URLClassLoader 等辅助类,它们构成了 java.net 网络编程的框架,通过研究其源代码,你不仅可以快 速理解 java.net 包,还可以为以后扩展该包打下基础,甚至可以将此思维方式运用到自己的项目中。 到此为止你对 java.net 包应该才了解 60%,还有一部分你可以使用 JDecompiler 之类的反编译软 件打开你 JDK 安装目录下jdkxxxjrelib 目录中的 rt.jar,用 WinRAR 之类的软件打开它的 sun.net 包,反编译所有的文件,它是 URL 类工作的细节。当研究完该 sun.net 包,你就会对整个网络编程很熟 悉很熟悉了。 一切看起来我们已经对网络编程很精通了。其实不然,刚刚开始而已,要想深入,请继续吧!网络 上很多优秀的网络编程库甚至软件可以为我们“添加功力”。如Apache的HttpCore和HTTPConnection 是 两个和HTTP协议相关库;JGroups是研究分布式通信、群组通信的必读库;接着我们可以研究P2P的软件 包,如Sun公司的JXTA,它可能是java平台点对点通信未来的标准哦!接着你可以研究成熟得不得了, 使用极其广泛得P2P软件Azureus!www.sourceforge.net可以下载到! 千里之行始于足下!Just do it !(目前我也只研究了 net 包,其它的会在不久的将来继续深入。 Sun 公司因为某些原因没有公开 net 的其它实现细节,在其允许将其源代码以文字的形式加以研究,以 及允许将其没有公开的实现写入书中时,我很希望能出一本 java 网络编程的书籍,以飧广大读者!!)

6. Servlet 和 JSP

Servlet、JSP 的书也是满地都是!值得推荐的也仅仅两三本。实推 Addison Wiley 的《Servlets and JavaServer pages :The J2EE Technology Web Tier》,又是一本很厚的哦!国外 2003 年出版、784 页,讲得比较全,例子也很多,特别是第八章 Filter,举了几个不错的例子。其它所有我看到的关于 Servlet 和 JSP 的书都没有如此深入的!(可能有我没有看到而已)。O’reilly 的《Java Servlet Programming》和《Java Server Pages》相对比较好懂一些,可以读读! 在大家学习 Servlet 和 Jsp 之前我还是要提醒一下: 本质上说 Servlet 就是一个实现 Servlet 接口的、部署于服务器端的服务器端的程序罢了!它可以 象写其它任何 java 应用程序一样编写,它可以操作数据库、可以操作本地文件、可以连接本地 EJB…… 编写 Servlet 程序的一般流程为: 1. 继承一个 HttpServlet 类; 2. 覆盖其 doGet、doPost 方法; 3. 在覆盖方法的内部操作方法参数 HttpServletRequest 和 HttpServletResponse。 4. 读取请求利用 HttpServletRequest。利用 HttpServletRequest 你可以操作 Http 协议的协议头、 可以得到请求的操作方法、可以得到请求的路径、可以得到请求的字符串、以及和请求客户相 关的信息,更主要的你可以得到 Cookie 和 HttpSession 这两个对象。 5. 利用 Cookie 你可以操作“甜心”对象或者将其写入 HttpServletResponse 中6. 向客户输出信息可以使用 HttpServletResponse。使用 HttpServletResponse 可以写入各种类 型的协议头、可以增加 Cookie、可以重定向其它 URL、可以向客户发送 Http 协议的状态码。 7. 利用 HttpSession 在会话内完成你想实现的任何功能。 同时 Servlet 还提供了一些事件和事件监听器(简单的观察者模式而已)。还有就是过滤器(Filter) 和包装器(ServletRequestWrapper、ServletResponseWrapper)――简单的流的使用和装饰器模式的 使用。 学习 Sevlet、JSP 必然要部署到服务器中,记住通常文件部署的步骤和参数的设置以及在程序中如 何使用就可以了。 完全理解 Servlet 后,学习 jsp 相对比较容易了!Jsp 完全建立在 Servlet 的基础上,它是为了迎 合那些喜欢在 Html 文档中嵌入脚本(如:PHP 之类的网页编程语言)的程序员的需要罢了!学起来也相 当的容易! 一切看起来似乎那么的风平浪静,简单好学!简单的表象背后有其复杂的机理。要想对 Servlet 和 Jsp 彻底研究,你得研究 Tomcat 等开源软件的具体实现。它无非就是一个服务器,在客户利用网页通过 HTTP 协议向服务器发送请求后,服务器将此 HTTP 请求转化为相应的 HttpServletRequest 对象,调用你 编写的 Servlet 罢了,在你的 Servlet 中你肯定操作了此 HttpServletRequest 了吧,同时操作了 HttpServletResponse 了吧,服务器就将此 HttpServletResponse 按照 HTTP 协议的要求利用 HTTP 协议 发送给你的浏览器了!在服务器端的 Jsp 网页在被客户请求后,Tomcat 会利用编译软件,使用 javax.servlet.jsp 包中的模板,编译此 jsp 文件,编译后就是一个 Servlet!以后的操作和 Servlet 完全一样哦! 在 Servlet 和 Jsp 的基础上出现了,所谓的高级技术:JSTL,Struts……无非就是一些标签和 MVC 模式的使用。 继续前进吧!胜利就在前方!!

7. 多线程

一个看起来很神秘,却很容易上手、很难精通的方向! 我推荐两本我感觉很好的书籍。首先是我第一本能上手看的这方面的书,Sams 1998 年出版的《Java Thread Programming》,写得暴好,很容易读懂,我有空还时常看当时的笔记!要知道怎么好你自己看 吧!第二本 OReilly 三次出版的《Java Threads》,最新是 2004 版,国内好像有中文版,推荐你还是看 英文版的吧!书中谈到了与多线程相关的 N 个方向,如 IO、Swing、Collection 等等。 给大家一点提示吧!java 类库中与多线程相关的类不是很多,主要有:Thread、ThreadGroup 以及 ThreadLocal和 InheritableThreadLocal四个类和一个 Runnable接口;关键字 synchronize、volatile ; 以及 Object 对象的 wait、notify、notifyAll 方法! 1 Thread 是多线程的核心类,提供了一系列创建和操作多线程的方法。 2 ThreadGroup 是一个管理 Thread 的工具类。 3 ThreadLocal 和 InheritableThreadLocal 为 Thread 提供了一个类似保险箱功能的存储 线程对象的类! 4 Runnable 不用说了吧! 5 synchronize 是同步方法和同步块的核心哦!多个线程调用此方法时,只有一个线程可 以使用此方法,其它方法阻塞,从而保证被操作对象内部状态完整性。某个线程调用 带有 synchronize 的方法或块时会得到该对象的对象锁,完成块中的操作后释放此对 象锁,从而其它对象可以继续操作。 6 wait、notify、notifyAll 提供了有效的等待/通知机制。Java 语言中每一个对象都有 一个休息室,任何线程在其操作的对象的状态不满足的情况下,在该对象的休息室中休息,释放对象锁;当其它线程操作该对象后,唤醒休息室中的线程,它们再检查条 件,当条件满足后,执行相应的操作。 多线程大致就这么多基础的!简单吗!这对于一个真正的程序员应该是不够的,真正 对多线程要有所掌握,请您研究 java.util.concurrent 包吧!大师 Doug Lea 的作品,原 先是一个开源的一致性编程的库,后来被 Sun 公司并入 java 类库。作者的网站上也有另外 一个版本的该类库!值得研究的好东西!Hibernation、OpenJMS 等开源软件都使用了此包!

8. 设计模式

谈到设计模式很多人多会推荐 GOF 的那本,该书在 Amzon 上是五星级的推荐书籍。不过对于学习 java 没多久的、特别是 java 初学者,我很不推荐这本书。主要是该书的例子基本都是 C++的,很多细节没有 讲述得足够清楚。 我给大家推荐的第一本是阎宏博士的《Java 与模式》,它是第一本中国人自己写的关于设计模式的 书籍,写的比较有趣,融合了很多中华民族的文化和观念,例子、类图都比较多,且相对简单!非常不 错的入门书籍――又是大块头哦! 其次我推荐 Wiley 出版社出版的《Pattern In Java》一套三本,我才看了第一本,好像第二本不 怎么样,第三本还不错! 第三本是中文翻译版的关于多线程模式的(很难得的中文翻译版)中国铁道出版社 2003 年出版的 《Java 多线程设计模式》,将多线程模式讲得非常浅显,配有大量的图例,每章都有习题,最后有答案! 我研究多线程模式就是由它开始的! 第四本,今年出版的 Head First 系列的《Head First Design Pattern》,秉承 Head First 系列图 书的优点,大量的类图、丰富的实例、有趣的注解,值得购买! 其次在 J2EE 方向你可以研究阅读 Addison Wesley 2002 年出版的《Patterns of Enterprise Application Architecture》,众多大腕的作品,讲企业消息集成的!Sun 提供的《J2EE PATTERNS SL500》 也很好!晚了推荐那一本 Amzon 4 星半的《Holub on patterns》,大师的作品,提供了,很值得研究的 例子,不过对上面四本不是很熟悉的读者,最好不要读它!可能会让你比较累! 我学习设计模式经过一段很曲折的路线,前前后后大约看了 20 本,阎宏博士的《Java 与模式》我 看了 4 遍,还排除我第一次基本没看懂的看!记得研一时老师给我们讲了 GOF 的那本,作为选修课,我 和它们计算机系的硕士、博士们一起,到最后一个班 40-50 个人,不超过 3 个人明白,我也没有明白 任何一点(基础差吧――主要我对 C++语言一点都不了解),凭我不伏输的性格,我认为我对 java 语言 理解还可以,我就借了《Java 与模式》,结果还是基本没看懂。很有幸的是读研三时,听过了上交大饶 若楠老师关于 Java OOP 语言的讲座,我懂了组合书籍模式等三种设计模式后,对其它模式有了强烈的 兴趣和要征服它的愿望!工作后我买的第一本就是《Java 与模式》,第一遍花了 2 个月研究了这个 1000 多页的大块头,后来第三遍 15 天左右就可以搞定,笔记记了一大本!从此一发不可收拾。 选对书、埋头研究。相信很快就会入门的! 学习 Java 语言 8 个简单的部分,这只是我们研究 Java 语言的开始!这些都懂了充其量一个 java 程序员而已,后面的路很长很长!我们可以继续研究数据库实现的源代码、Servlet 服务器的源代码、 RMI、EJB、JNDI、面向方面编程、重构、ANT 工具、Eclipse 工具、Spring 工具、JBoss、JOnAS、Apache Geronimo 等 J2EE 服务器!研究了这些你可能会成为一个出色的 J2EE Architecture!你可以继续研究 剖析器、编译器、JNODE(java 写的操作系统)……

登录 评论文章
声明:本站部分内容来自网络,如您发现本站内容侵害到您的利益,请联系本站管理员处理。