【VC++开源代码栏目提醒】:网学会员鉴于大家对VC++开源代码十分关注,论文会员在此为大家搜集整理了“看牛人如何学习JAVA - 编程语言”一文,供大家参考学习
看牛人如何学习 JAVA 第一章 Java 语言概述 终于要开始《Java 编程基础》这门课了从学生的眼中可以看到一种期待但 我觉得学生们都有一种误解觉得这门课学好了就是学好 Java 了对二年的 J2EE 学习会产生决定性的影响。
可是实际上这门课就像它的名字一样只是一个基 础它的目的就是能让大家掌握 Java 的基本语法能够使用 Java 语言来实现面 向对象而已从对 J2EE 学习的影响性来说我觉得这门课的地位还不如《ASP
网络编程》。
当然我并不是想说 Java 基础不重要只是没有重要到需要放弃
毕业设计来听这 门课是的有几个学生已经准备这么干了。
翻了一下这本书的目录发现它可以分为两个阶段——第一阶段使用 Java 语 法来实现面向对象面向对象的基本概念在 C课程里面已经介绍了我想这部 分的进行会相对容易当然了需要给学生们指出 Java 和 C在实现面向对象 上的区别第二阶段使用 Java 进行图形编程简单说用 Java 来实现 VB 那 一套东西不知道学生们用惯了
VB 的可视化编程能不能适应手工生成界面。
就这些内容可能有些单薄吧我在想中心还专门为 Java 增加了 3 节理论课 这样算下来会有 14 节课来介绍 Java。
嗯……可以用增加的理论课来介绍设计模 式Design Pattern这应该是个好主意能让学生们学到更专业的开发知 识不过对于他们来说会不会太难呢随着
课程进行看吧反正我也不准备把 23 种设计模式都讲一遍。
我制定的 Java 授课计划 好了开始上课了课前大鹏问我 Java 难不难引用一句古文“人之为学有难 易乎为之则难者亦易矣”。
从头讲起Java 的历史、发明者……这些东西我最讨厌一笔代过。
开始介绍 Java 的几个基本特点 简单没有的指针操作 健壮性无须手工管理内存 可移植性地球人都知道 Java 是跨平台的。
就说这么多吧关于 Java 高性能这部分实在不想多讲搞过 Java 开发的人都知 道 Java 也许不是世界上最好的语言但绝对是运行速度最慢的语言。
重点要说一下 Java 虚拟机JVM它是保证 Java 语言能跨平台运行的关键。
想象联合国开大会的例子来自中国美国法国德国的一大群发言人准备说 话了为了保证其他人也能听得懂需要一个翻译团对翻译团中每个团员的要 求就是至少懂得英语和另一门语言。
现在中国的发言人说话了懂英语和汉语的 翻译会首先将中文翻译成英文然后不同语种的翻译再根据英文翻译成各自的文 字。
如果联合国增加了一个成员“土拨国”他们讲“土拨语”那很简单增 加一名会说“土拨语”和英语的翻译就可以了。
这也就是 Java 虚拟机的运行模式我们都知道写好源代码以后要进行编译传 统语言VB
VC都会直接将源代码编译成能在某固定操作系统下运行的 EXE 程序我们都知道 windows 程序不能在 Dos 下运行而 Java 则是将源代码编 译成我们称之为“字节码”的中间文件我们例子中的英语OK就到此为止 了。
显然这个中间文件是无法直接执行的现在 Java 虚拟机登场了我们执行 一个中间文件的流程是Java 虚拟机将中间文件读入翻译成能在本操作系统 下运行的文件然后执行之。
假如现在我们新增一个操作系统名为“土拨
系统 2005”Turbo System 2005如果想让我们的 Java 在上面跑起来只需 要 sun 公司开发一个在“土拨系统 2005”下运行的 Java 虚拟机就可以了 Java Virtual Machine for Turbo System 2005。
讲到这儿发现一些学生已面露迷茫之色赶快讲些容易的从刚才的描述可知 我们开发 Java 程序需要先编写源代码.java 文件然后将源代码编译成中 间文件.class 文件最后通过 Java 虚拟机执行对应这个过程我们需 要三种武器编辑器、编译器和 Java 运行环境。
编辑器的目的是让我们方便的开发源代码好的编辑器支持语法高亮显示输入 “.”出现成员
列表等功能当前企业开发中最常用的编辑器应该是 Borland 公 司的 JBuilder最新版本 2005 版还有现在最热门的开源项目
搜索互 联网了解开源项目 Eclipse最新版本 3.0不过作为入门我让学生们 先用 JCreator 3.5注意它的 3.1 版本在显示中文时有问题。
编译器包含在 JDKJava Develop Kits中它将
源代码转换成中间文件 在 sun 公司的官方网站上可以找到 JDK1.4.2 版和 JDK1.5 版其中 1.5 版是最 新的里面还附带了一个叫 NetBeans 的编辑器但是速度很慢我推荐学生下 载 JDK1.4.2 版如果英文基础好的话还可以同时下载 JavaDoc里面有 java 的帮助有点像 MSDN只不过是纯英文的。
Java 运行环境 JREJava Runtime Environment中最重要的组成部分就是 Java 虚拟机它也已经包含在 JDK 中了然而如果我们想确保 Java 程序能在 别人的机器上运行对方至少应该安装一个 JRE。
最后讲讲配置问题我建议学生先安装 JDK再安装编辑器这样可以省去很多 配置的麻烦。
从书上得知要运行 Java 程序还需要配置三个系统参数 PathClassPath 和 Java_Hone它们指明了 JDK 的安装为之实际上除非你想 在 DOS 环境下手工编译程序否则你根本不需要它们因为编辑器是会自己寻找 JDK 安装位置的像 JBuilder 甚至还自带了一个 JDK。
呼长舒一口气休息一下吧口干舌燥了。
第二节课我先介绍了一下当今 Java 比较流行的三个分支这些名词你肯定听过 J2SEJ2EE 和 J2ME。
1. J2SE Java 2 PlatformStandard Edition 指 Java 1.2 版以上的标准开发包 开发 J2SE 程序需要的编译器为 JDK编辑器有记事本 JCreator JBuilder Borland Eclipse OpenSource NetBean sSUN Visual Age For JavaIBM等 如果要运行 J2SE 程序需要安装 JRE Java Runtime Environment 2. J2EE Java 2 PlatformEnterprise Edition Java2 企业版由 Jsp Servlet JavaBean EJB 组成 运行企业版
程序需要 J2EE 容器比如 WebLogic WebSphere 等 3. J2ME Java 2 PlatformMicro Edition 专门运行在移动设备和无限设备上的 Java手机游戏很多用此开发 好了介绍部分就这么多吧我要开始
演示 Hello World 了学生都很奇怪 为什么 Java 的源文件名要和类名完全一致哎记住就行了管它那么多。
大 家对 main 函数的声明叫苦不迭那么长阿。
其实我们仔细分析一下会发现里 面没有一个多余的单词 public static void mainString args …… public 将 main 声明成公用当然了因为 main 函数是程序的起点由 Java 虚 拟机自动调用如果是私有不就访问不到了嘛下一个是 static将函数声 明称静态由 C的知识我们知道只有静态函数可以被直接访问这也是为了 让 Java 虚拟机能够方便的开始我们的程序void 说明 main 函数没有返回值 而括号里面的数组表示了命令行参数在我们还没有图形界面之前我们几乎只 能靠这种方式来接收用户的输入。
看牛人如何学习 JAVA-如何学习 java一二 2007 年 12 月 05 日 星期三 07:52 P.M. 看牛人如何学习 JAVA 如何学习 java一 最近论坛上看到好几个朋友都在问如何学习
Java 的问题“我已经学习了 J2SE怎么样才能转向 J2EE”“我看完了 Thinking in Java 可以学习 J2EE 了么”。
于是就有了写这篇文章的想法希望能帮助初学者少走一些弯路。
也 算是对自己几年来学习 Java 的一个总结吧。
在开始之前有必要再讨论一下 J2MEJ2SEJ2EE 这些概念。
J2METhe Micro Edition of the Java 2 Platform。
主要用于嵌入式 Java如手机PDA 等等。
J2SEJava 2 PlatformStandard Edition我们通常所说的 JDKJava Development Kit包含在此是 J2EE 的基础。
J2EEJava 2 PlatformEnterprise Edition就是所谓的企业级 Java。
这些只是从 API 级别上的划分实际上 Sun 给 J2EE 的定义是开发基于组件的多层的企业级应用的规范。
也就是为各种不 同的技术定义一个 Java 的规范使这些不同的技术结合起来在 Java 平台上构 建强壮的企业级应用。
从这一点来看J2EE 这个概念应该是涵盖 J2MEJ2SE 的。
比如一个典型的 J2EE 应用网上商店它支持 web 方式下订单也支持手机下 订单。
显然必须用到 J2SEJ2ME。
所以也就不存在所谓的从 J2SE 转向 J2EE 的 问题了只是后者包含的范围更广而已。
来看看 Sun 给出的 J2EE 相关技术主要分为几大块。
1. Web Service 技术 - Java API for XML Processing JAXP - Java API for XML Registries JAXR - Java API for XML-based RPC JAX-RPC - SOAP with Attachments API for Java SAAJ 2. 组件模型技术Component Model Technologies - Java Servlet - JavaServer Pages - JavaServer Faces - Enterprise JavaBeans - Java Message Service - J2EE Connector Architecture 3. 管理技术Management Technologies - J2EE Deployment Specification - J2EE Management Specification - J2EE Client Provisioning - Java Authorization Contract for Containers 4. 其他相关技术Other J2EE Technologies - JDBC - Java Data Objects JDO - CORBA Java IDL and Java RMI-IIOP - JavaMail - Transactions 如此之多的技术难免使初学者无所适从望而却步。
即使是一位经验丰富的 J2EE 开发者又有几个人敢说 J2EE 相关的技术我都熟练掌握了。
不过作为一名普通 J2EE 应用程序的开发者来说我们只需要重点学习其中的一部分技术就可以了 对于其他部分只要做到心中有数哪天需要用到了知道跑哪里去找到资料就行 了。
以我个人的观点下面这些技术是一般 J2EE 应用开发人员所必须熟练掌握 的。
Java Server PageJava ServletEnterprise JavaBeanJDBCTransactions。
还有 JAXP 等 XML 相关技术Java Message ServiceJava MailJDO 等等是最 好应该掌握的。
其他 Management TechnologiesConnector Architecture 等等 主要是给容器提供商中间件提供商参考的应用开发者不需要怎么关心等用到 了再去学习也不迟。
语言
学习篇 首先是 J2SE 基础。
学习一门新技术无外乎阅读和实践了。
而一本好的参考书 对于初学者来说显得格外重要。
现在市面上的 Java 书籍可以说是铺天盖地质 量也是良莠不齐令初学者无所适从。
所以还是先推荐几本书籍吧。
目前对于 Java 基础知识大家一般都比较推荐两本书ltltThinking In Javagtgt和ltlt Core Java 2 Volume I: Fundamentals gtgt。
第一本书不必多说了Bruce Eckel 的大作Jolt 获奖书籍。
内容比较全面基本涵盖了 java 语言的方方面面。
这 本书提供了相当丰富的例子非常有利于对学习内容的了解。
另外书中第一部分 对于 OO 基本书籍的介绍我觉得对于刚接触的人来说帮助会很大。
而且此 书是 Open Source 的可以从作者网上下载 http://www.mindview.net/Books/TIJ/而对于习惯于读中文版的学习者来说侯 捷翻译的中文版是不错的选择。
要说这本说的缺点可能就是对于初学者来说厚了 一点这也是一些人并不推荐此书作为初学者学习用书的原因吧。
后面一本 ltltCore Java 2 Volume I: Fundamentalsgtgt目前已经是第七版了单从它 出版的次数来看也可以看出此书受欢迎的程度这本书特点也是讲述比较全面系 统基本上一路啃下来的话 Java 语言基础应该算过关了。
缺点也是太厚了有 点像参考手册前面部分花了不少篇幅讲 Swing 和 Applet可能对初学者不是 很有用。
还有一些像ltlt Java in a nutshellgtgt也是比较不错的基础书籍。
学习了基本的语言基础别忘了最重要也是最有用的资料还是 JDK 文档。
从你学 习 java 的第一天开始 JDK 文档应该是常备手头了。
如果你碰到问题首先想到的 是到论坛上去提问而不是查阅 Jdk 文档那先别继续往下学习了学会查 JDK 文档先。
不夸张的说在我们的初学者论坛中 60的
问题是光查一下 JDK
文档就能 解决问题的。
最新 JDK Documentation 下载地址 http://java.sun.com/j2se/1.4.2/download.html目前最新版是 J2SE5 http://java.sun.com/j2se/1.5.0/download.jsp不能光说不练同一下载页面 把 JDK 给下载回来。
安装完后有一点我想提一下安装路径下有一个 src.zip有 些 jdk 版本是 src.jar好东西啊---JDK 源代码老是有人在论坛上问哪里有 JDK 源代码下载你说东西就放在你家里还到处找。
有了这个有些问题就需要在 论坛上跟人家争来争去了翻
开源代码瞧一下什么疑问都没有了。
几个最重要的 命令行工具是 javac: java: jar: javadoc: 编译源文件到 class 文件 运行 class 打包工具。
生成 java doc 的工具。
对于初学 java 的人来说我不推荐使用 IDE 而直接用文本编辑器然后用命令 行编译运行。
这样有利于理解 CLASSPATHPATH 这些最基本概念。
CLASSPATH 是 初学者比较容易感觉迷惑的地方。
现在的 IDE 太聪明了给个名字就给你自动生 成 java source code自动编译。
可能你运行完了你的第一个 Hello World 程 序还不知道 java 和 javac 是用来做什么的。
至于实际的项目开发一款合适 的 IDE 还是十分重要的我们稍后再对 java 开发工具做一些介绍。
如何学习 java二 J2EE 基础和 Java 语言进阶 学习完语言基础就可以比较自然地转入 J2EE 实际技术的学习了。
J2EE 实在是 比较庞杂而 EJBServlet这些核心技术是作为每一个 J2EE 开发人员所需要 掌握的。
关于 servlet我比较推荐ltltCore Servlet and JSP 2Editiongtgt和ltltMore Servlets and Java Server Pagesgtgt第一本是 Sun 推荐的 Servlet 教材。
第二 本是当年 Amazon 最畅销 Java 书籍五星级书籍。
这本书机械工业出版社有中文 版叫ltltServlet 与 JSP 权威指南gtgt感觉翻译得还可以第二版好像还没有看到 有中文版。
两本书都全面系统地介绍了
JSP 和 Sevlet 知识从
web 服务器配置 JSPServlet 基本编程标记库Tag Lib过滤器事件框架都有很好地描述。
提供地例子也比较实用。
对于 EJB 学习比较著名有两本书ltlt Enterprise JavaBeans 3nd Editiongtgt和ltlt Mastering Enterprise Java Beans Third Editiongtgt两位作者 Richard MonsonEd Roman 都是属于业界重量级人物。
而 Richard Monson 本身就是 EJB 规范专家组成员。
对我来说两本书难分优劣 第二本书有个好处就是可以免费下载 http://www.theserverside.com/books/wiley/masteringEJB/index.tss。
还是那句话不能光说不练不过 J2EE 的练习做起来有一点麻烦应用服务器 是不可少的最好还得准备个轻量级的数据库。
下面简单介绍一下这些工具。
web 服务器Servlet Container方面有。
Tomcat: http://jakarta.apache.org/tomcat/ Jetty: http://jetty.mortbay.org/jetty/ 应用服务器
常用的有 Jboss: http://www.jboss.org/products/index Weblogic: http://www.bea.com/framework.jspCNTindex.htmampFP/content/products/s erver WebSphere: http://www-128.ibm.com/developerworks/downloads/ws/was/S_TACT105AGX 28ampS_CMPDLMAIN。
TomcatJettyJboss 都是 Open Source。
Weblogic 和 WebSphere 是 J2EE 服务 器中的老大级人物价格也不菲。
不过对于开发者有
免费的试用版下载。
如果单单只是学习 Servlet推荐使用 Tomcat它是 Sun 官方指定的 Servlet JSP 规范的参考实现。
对初学者最重要的是它使用比较简单自带
文档比较齐全 使用者众多有什么问题容易在论坛上面得到帮助。
如果学习 EJB 的话推荐使 用 Jboss不仅仅是因为它是 Open Source 的主要是配置比较简单使用方便。
比如说对于连接数据库对于常用的 MySQLOracleMS SQL 等等都提供了 Sample Config 文件直接拿过来做些小改动扔到 Deploy 目录下就可以用 DataSource 了部署 J2EE 应用也简单把整个.ear 或者.war 扔到 deploy 下就可以了。
唯 一不方便的地方是从 Jboss3.0 开始它的文档开始收费了。
但是对于一些基本 的配置在网上还是非常容易找到的毕竟它太流行了。
至于 Weblogic也比 较容易使用不过比起 Jboss 来个头大了很多通过强大的管理界面使得一些常 用的配置
工作变得十分简单。
和 Jboss 比起来它的文档就太多了简直是有点罗 里八嗦比如要部署一个.ear 文件一般我们也就是直接扔到 domain 下的 applications 目录下就会自动 deploy 了但是要看它的文档可是长篇大论容 易吓着初学者以为这又是什么高深的学问。
至于 WebSphere个人不推荐初学 者使用相比前俩个 Server 比较难使而且狂吃内存。
不过在企业级市场这个 家伙表现不俗毕竟是出生于 IBM 这样的豪门。
数据库方面目前常见的主要有 PostgreSQLMySQLOracleMS SQLDB2 等 等。
前面两个是开源数据库后面几个基本上垄断着大部分的数据库市场。
对于 初学者用来做做 EJBJDBC 的练习我推荐 MySQL理由还是很简单开源
软件 不要钱个头小使用方面用户众多文档齐全。
下载地址 http://www.my
sql.com/products/
mysql/。
PostgreSQL 也可以考虑不过国内 使用者远不如 MySQL 多所以要在论坛上问起问题来就少方便一些了下载地址 http://www.pervasive-postgres.com/downloads/。
至于后面那些比较重量级的 数据库为了做做练习而言就不用考虑了 咱也花不起这个钱啊。
学习完 J2EE 的这些具体技术这个时候进行基本的 J2EE 开发应该是不成问题了。
此时应该考虑提高自己的代码质量了。
这里我强烈推荐 Martin Fowler 的 ltltRefactoring: Improving the Design of Existing Code gtgt这本书不是一 本非常实际的书作者完全是手把手地教你如何提高代码质量从具体地代码中 告诉你什么是代码的 Bad Smell如何去掉这些 Bad Smell。
不少书评是这么说 的这本书对于初级中级的读者帮助是立杆见影的。
至少就我接触到的几个学 习编程不久的程序员编码质量在短期内都有很大提高。
当然重构Refactoring 这一概念并不只针对 Java 语言的它对所有 OO 语言都是适用的。
重构的概念是 如此深入人心以至于今天几乎所有流行的 IDE 工具都有对重构的支持。
这里我 还想再推荐一本ltltEffective Javagtgt。
从 C过来的程序员都知道ltltEffective Cgtgt在 C领域的地位至今还流传着这样的趣话C程序员分为两种一种 是读过ltltEffective Cgtgt的另一种是没有读过 C的。
虽然这本ltltEffective Javagtgt在 Java 领域的影响也许没有那么大但对于 Java 程序员绝对有相当的指 导价值。
作者是 Sun 公司的 Joshua Blochjava Collection framework 的
设计 者。
作者站在 JDK 设计者的角度向你介绍他的 Best Practice应该这样做而不 应该那样做对于 JDK 中某些 API 设计的缺陷他也毫不袒护的指出。
Java 语言 之父 James Gosling 为此书写的前言是这么说的“I sure wish I had had this book ten years ago。
Some might think that I dont need any Java books but I need this one”。
这本书会让你觉得原来你对 Java 还是有很多东西不了 解的。
举个例子来说对象的 equals 方法我们认为它很简单也许你每天都 在为你新写的 Class 重载这个方法但是你在重载的时候注意过“自反”“对 称”“传递”这些必须要考虑的因素你是否同时还小心谨慎的重载了 hashcode 这个方法如果没有建议你要读一下这本书。
读完这本书你会觉 得离 Java 的距离更近了。
上面两本书都出过中文版后面一本ltltEffective Javagtgt还有两个版本的中文版第一次翻译的比较差一点后来机械工业出版社 又委托潘爱民先生重新翻译了一遍。
同一本书在同一个出版社连续被翻译了两次 也说明国内出版界对这本书还是比较重视的。
这个阶段在看书的同时可以结合着学习一些优秀的开源项目的源代码。
这些 开源项目的代码风格注释都是值得借鉴的。
实在太懒也别忘了手头上还有个 Jdk 的源代码。
其实也不用刻意去找源代码在实际的 J2EE 项目开发中基本 上都会用到一些优秀的开源项目。
Framework 可能会用到 SpringStrutsLog 机制基本上都会 JarkartaCommons Log 或者 Log4j单元测试会大多会用 Junit 结合项目阅读一下其中的一些源代码既可以提高自己又对项目会有所帮助说 不定因此而得到 PM 的赏识呢。
一举两得何乐而不为呢。
呵呵有点扯远了。
过了初学者阶段该学会如何找到适合自己的 Java 书籍了。
历经数十载今天 的 Java 技术已经变的如此之庞杂.