知识大全 我是一个JAVA语言初学者,请问怎么才能学好它。
Posted 程式
篇首语:少年辛苦终身事,莫向光阴惰寸功。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 我是一个JAVA语言初学者,请问怎么才能学好它。相关的知识,希望对你有一定的参考价值。
我是一个JAVA语言初学者,请问怎么才能学好它。 以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
我是一个JAVA语言初学者,请问怎么才能学好它。
呵呵,先了解一下,像前面那位人兄说的“慢慢来嘛”!
JAVA介绍
一、前言
『Java』从1995年的暑假开始在计算机业界就受到了高度注意,特别是在Inter和多 媒体(Multimedia)相关产品类方面。Java为何有如此这么大的魅力?人作如此的比喻: Java在全球资讯网(World Wide Web, )地位就如同电子表格(Spreadsheet)与个人计 算机(PC)的关系。那Java究竟有那些特色呢?
Java是一种软体技术
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
是一种为 Inter发展的计算机语言
是一种使网页(Web Page)产生生动活泼画面的语言
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
是一种语言,用以产生「小应用程式(Applet(s))」
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
是一种将安全性(Security)列为第一优先考虑的语言
是一种使用者不需花费很多时间学习的语言
是一种突破使用者端机器环境和CPU结构的语言
是一种「写一次,即可在任何机器上执行(Write OnceRun Anywhere)」的语言是有史以来,第一套允 使用者将应用程式(Applications)通过Inter从远端的伺服器(Remote Server)传输到本地端的机器 上(LocalMachine)并执行
是一种应用程式提供者不需要知道使用者的计算机硬体(如:Sun, Intel, 或MAC等)与软体(如:SW- UNIX, MAC O/S, Windows, 或NT等)环境的语言(Kestenbaum, 1995)。
下面将依序地介绍Java,首先是Java的发展历史与Java语言介绍,其次依序是Java Applet和HotJava的简单介绍。
二、Java FAQ
下面以问答的方式来说明Java的发展历史与其背景(下列内容整理自 Java FAQ list and Tutorial和The Java Language: A White Paper,读者若欲深 入了解,请自行参阅原文):
Java何时开始发展?(When)
最早大概可追溯至1991年四月份,Sun的绿色计划(Green Project)开始着手于发展消费性电子产品(Consumer Electronics),所使用的语言是C、C++、及Oak (为Java语 言的前身),后因语言本身和市场的问题, 使得消费性电子产品的发展无法达到当初 预期的目标,再加上网路的兴起, 绿色计划也因此而改变发展的方向,这已是1994 年了。
为何称之为Java?(Why) "Java"是美国SUN计算机公司Java发展小组历经无数次的激烈讨论之后才被选择出。 生动(Liveliness)、动画(Animation)、速度(Speed)、互动性(Interactivity)为当 初选择名字时所欲表达出的特色。"Java"是在无数的建议中脱颖而出的,而"Java" 不是由几个单字的首字所组成, 而是从许多程式设计师钟爱的热腾腾、香浓咖啡中 产生灵感的。
谁开发了Java?(Who) Java是美国SUN计算机公司Java发展小组开发的,早期的成员(绿色工程)是Patrick Naughton, James Gosling, & Mike Sheridan,而现在大家较为熟悉的成员是James Gosling。
在那里开发了Java?(Where)
也就是问Java的出生地?答案是美国。
如何可以找到所需的Java资讯?(How to)
在网路上,您可以连到Sun公司的Java 网站,URL是:java.sun./,或是 :javasoft./。在那里几乎可以找到您所需要的所有Java资讯,但是语 言多少是一个障碍, 至少对某些人而言;没关系,目前国内已有很多个网站提供中文 Java资讯。在清华和中科院的FTP站点上有不少有关资料。想象以后应会有更多的站点提供相关资讯。
如何才能看到Java的效果?(How Do I)
首先您需要有含有Java直译器的浏览器(Browser),例如:Netscpae公司的Netscape Navigator 2.0以上或是Sun公司的HotJava浏览器,对个人计算机使用者而言,操作 系统需是Windows 95或是Windows NT。
Java是因为撰写C++语言程式时的困难而研制开的,起先,只是一个消费性电子产品 大计划中的一部份,C++语言是当初被考虑采用的,但从一开始的编译问题一直到最 后的一连串问题迫使得放弃C++语言,而有Java语言的产生。Sun是要Java成为一个简 单(Simple)、面向物件的(Object Oriented)、 分散式的(Distributed)、解释的(Interpreted)、健壮的(Robust)、安全的(Secure)、 结构中立的(Architecture Neutral)、可移植的(Portable)、高效能的(High Performance)、多执行绪的(Multithreaded)、动态的(Dynamic)的程式语言(摘译自 TheJava Language: A White Paper, 1995)。
在Sun的Java语言白皮书中明白地说明上述Java语言的技巧。若以木工为比喻,一个面 向物件的木工,他(她)最主要的重点是即将要做的木椅子,其次才是所需要的工具; 反之;一个以非面向物件的木工,他(她)所关心的只是工具。最近的即插即用(Plug and Play)亦是面向物件设计的重点。 分散式的(Distributed):Java有一个很周全的程薪录JAVA介绍 。
一、
『Java』从1995年的暑假开始在计算机业界就受到了高度注意,特别是在Inter和 多媒体(Multimedia)相关产品类方面。Java为何有如此这么大的魅力?人作如此的比喻: Java在全球资讯网(World Wide Web, )地位就如同电子表格(Spreadsheet)与个人计 算机TTP和FTP等TCP/IP通讯协定相配合。Java应用程式(Applications) 能在网路上开启及连结使用物件,就如同透过URLs连结使用一个本地档案系统(Local File System)。 健壮的(Robust):由Java所编写出的程式能在多种情况下执行而具有其稳定性。Java与 C/C++最大不同点是Java有一个指标模型(Pointer Model)来排除记忆体被覆蓋(Overwriting Memory)和毁损资料(Corrupting Data)的可能性。
安全的(Secure):Java是被设计用于网路及分散式的环境中,安全性自必是一个很 重要的考虑。Java拥有数个阶层的互锁(Interlocking)保护措施,能有效地防止病 毒的侵入和破坏行为的发生。
结构中立的(Architecture Neutral):一般而言,网路是由很多不同机型的机器所 组合而成的,CPU和作业系统体系结构均有所不同;因此,如何使一个应用程式可以 在每一种机器上执行,是一个难题。所幸,Java的编译器产生一种结构中立的目标 档案格式(Object File Format);这使得编译码得以在很多种处理器中执行。
可移植的(Portable):原始资料型式的大小是被指定的,例如"float"一直是表示一 个32位元IEEE 754浮点运算数字,因绝大多数的CPU都具有此共同特征。程式库属于 系统的一部份,它定义了一些可移植的程式介面,Java本身具备有很好的可移植性。
解释的(Interpreted):Java直译器能直接地在任何机器上执行Java位元码(Bytecodes), 因此在进行程式连结时,时间的节省,这对于缩短程式的开发过程,有极大的帮助。
高效能的(High Performance):Java位元码迅速地能被转换成机器码(Machine Code), 从位元码转换到机器码的效能几乎与C与C++没有分别。
多执行绪的(Multi threaded):Java语言具有多执行绪的功能,这对于互动回应能力及 即时执行行为是有帮助的。
动态的(Dynamic):Java比C或C++语言更具有动态性,更能适应时刻在变的环境, Java不会因程式库的更新,而必须重新编译程式。
此外,Hank Shiffman (Making Sense of Java)亦针一般对Java的错误看法及观 念提出他的说明,特在此摘译如下:
"Java是一种编写Web Pages的一种语言,就如同HTML和VRML一样" 事实上,Java并不像是HTML此一类的描述语言(Description Language),而是一种 程式语言(Programming Language)。描述语言标明内容和位置,而程式语言描述一 种产生结果的过程。
2. "Java语言容易学习和使用,不像C、C++和其它程式语言"
Java是一种程式语言。Java容易学吗?Java或许是比C或C++容易学,但仍是一种程式语言,而不是一种描述语言。
3. "Java码是可移植的,但C及C++不是"
Java原始码(Source Code)是比C语言来得可移植一点,差别在于Java的目标码。 Java码在一种机器上进行编译,而能在所有的机器上执行, 只要那部机器上有 Java直译器。
4. "Java能被拓展而在机器上执行任何事情"
理论上,Java Applet (Java小应用程式)能做任何事情,如模拟3D VRML模型、播放电影、产生音讯....等。但事实上,一个小应用程式(Applet)仅能在那一页上被执行,而无法在那一页之外执行。同时,Java亦受限于程式库的功能。
5. "Java是适合于建立大型的应用程式"
如果Java适合于大型程式,则Java就不适合应用于Web浏览器了。第一个商业 性的Java Applets (Applix\'s Java-Based Spreadsheet) 并不是全然使用Java, 它只使用Java作为使用者介面,而所有的处理工作, 是用CGI码。
6. "Java是解释执行的,Basic是解释执行的,因此Java=Basic"
虽然Java的确是使用直译器,但事实上,Java则与C或C++等完全编译语言较为相近,但与Basic或APL等完全解译语言较不相近。
7. "Java删除了CGI命令稿(Scripts)和程式的需求"
Java Applets将会取代部份CGI的用途。在有些情况,Java Applets能够取代一些伺服器端程式码(Server-Side Code),但大多数的情况,基于安全性理由或是效 能的考虑,Java仍无法全然取代CGI Scripts。
8. "Netscape\'s JavaScript是与Java有相关"
除了名称之外,Java和JavaScript是有一点点相关。JavaScript是一种命令稿语 言,是可以在HTML页中使用。Java码并未出现在HTML中,而在HTML中通过一个链 结来链结编译码组。Java和JavaScript之间的关系就如同C语言和C Shell一般。
我是一个C#初学者,怎样才能学好它
建议先学面向物件的程式设计方法
OOD,OOP
我是一个电脑初学者,请问怎样才能学好photoshop?
我觉得还是先下载些例项教程,自己先边看边学,最好是视讯的,接着就是操练了。我本身就是这个专业的,我那本书至今还是新新的,动都没动,但我已经考到证书了。所以操练很重要。
我是一个英语初学者怎样才能学好英语??
对初、高中生而言,英语确实是难度较大的学科,掌握英语学习的方法,使自己能独立获取知识,是取得优秀成绩的重要措施。 预习可以使我们有心理准备,可以帮助我们提高课堂效率。对于自己老师的教学进度,我们应该比较清楚,所以我们应该提前预习第二天内容,可以充分了解自己的难点在何处,听课时就能够有的放矢。在课堂上我们应该做到以下几点:1.静听。上课认真听讲,做好笔记,无论听、说、读、写都要使自己始终活跃。.2。积极参与。英语是实践性强的学科,要大胆地练习,敢说、敢读,积极回答老师提出的问题。课堂上积极发言对我们是大有裨益的,每一次的积极发言都是一次听说训练,可以使我们集中精力,对较难或者模糊不清的问题有一个明确的答案。经常举手发言也可以让老师加深对自己的印象。课堂上的听讲至关重要,老师在讲到重点时总有自己的语言或者体态特点,我们要善于观察和把握。3。勤动笔。把教师的重点及时迅速记在课堂记录本上,不过要处理好听课和记笔记的关系,不能顾此失彼。4。多开口。对于自己课堂不清楚的地方,下课后一定要及时询问老师,把问题解决在当天,不要顾及所谓的面子而不懂装懂,否则漏洞越来越多,最后造成英语成绩的不断滑坡。 很多同学反映,明明已经把单词全部背过来了,结果老师提问时又忘记了。这说明我们的复习没有计划性和周期性。我们每天回到家后要做的事情可以归结为三个方面:听、读、写。听指的是把当天学习的单词、对话或者课文听两到三遍,争取耳熟能详,还要理解所听内容。中、高考英语的听力分数为二十五分或三十分,可见听力的重要性。然后朗读当天学习的单词、句型、对话或者课文,必须要熟练。最后是要书写。要写的内容包括新单词,重点句子以及上课时老师举例说明单词或者片语用法的句子。下一步是完成家庭作业,复习可以战胜“遗忘”。复习计划要长短结合,粗略相宜。每周六要把本周的内容复习一遍,每个月末把当月的知识巩固一遍。同时,随着考试体制的改革,侷限课本是不行了。“见多”方能“识广”,“博大”才会“精深”,我们应多收听收看简单的电视英语节目,阅读适宜的课外读物,扩大阅读量,从而使课外知识成为课内知识的有益补充。 旱树
我是一个ug的初学者怎么才能学好??高手请教~~~谢谢
实践第一,练习第一。找一些UG论坛注册之后,平时在画图的时候有问题可以去论坛发发帖子!很多经典的方便的用法就是论坛上的高手教的!当然也可以来百度问!论坛在百度上都搜的到!有一个3D网
我是一个电子琴初学者,要怎样才能学好它呢?
1、学会认五线谱和各种和絃,最好去学一下音程和和絃的关系,这样和絃怎么弹就不用老问人,自己也能推算出来了
2、买本最初级的钢琴练习曲,乖乖练
C语言初学者怎样才能学好
看书视讯学习基础,多上机练习例题。错得多学得快。然后读程式码,不懂再学。
我是一个C语言初学者,而且对此并不是很感兴趣,请问要怎么才能学好呢
网页程式设计:、php、asp.、jsp。软体程式设计:手机系统程式设计(Android、ios)、电脑系统程式设计(c)..看你具体要学什么了,例如要学,那就百度一下入门书籍就可以了。
对于一个初学者怎样才能学好C语言
推荐学习C语言的书籍是: C Primer Plus中文版 因为是全面的讲解+手册 非常合适初学者必备
开发工具是: VS2008 或者 VS2010
百度一下, 80X86汇编小站 网站里面有篇文章是针对初学C/C++写的,写得不错. 标题是:
如何正确的入门Windows系统下C/C++学习领域.
希望这篇文章对你有帮助,其实入门学习C语言,重要的是选择一本好书和一个好的开发工具,如果有条件可以配备一个老师,这样你学习效率将会有很大的提升,当然最重要还是你的学习态度 和 毅力.
朋友们,大家好!我是一个JAVA语言的初学者.
学习一门新的知识,不可能指望只看一本,或者两本书就能够完全掌握。需要有一个循序渐进的阅读过程。我推荐Oreilly出版的Java系列书籍。
在这里我只想补充一点看法,很多人学习Java是从《Thinking in Java》这本书入手的,但是我认为这本书是不适合初学者的。我认为正确的使用这本书的方法应该是作为辅助的读物。《Thinking in Java》并不是在完整的介绍Java的整个体系,而是一种跳跃式的写作方法,是一种类似tips的方法来对Java很多知识点进行了深入的分析和解释。
对于初学者来说,最好是找一本Java入门的书籍,但是比较完整的循序的介绍Java的语法,面向物件的特性,核心类库等等,在看这本书的同时,可以同步来看《Thinking in Java》,来加深对Java的理解和原理的运用,同时又可以完整的了解Java的整个体系。
对于Java的入门书籍,蔡学镛推荐的是Oreilly的《Exploring Java, 2nd Edition》 或者《Java in a Nutshell,2nd Edition(针对C++背景)》,我并没有看过这两本书。其实我觉得电子工业出版社的《Java 2程式设计详解》或者《Java 2从入门到精通》就很不错。
在所有的Java书籍当中,其实最最有用的,并不是O\'reilly的 Java Serials,真正最最有用处是JDK的Documentation!几乎你想获得的所有的知识在Documentation里面全部都有,其中最主要的部分当然是Java基础类库的API文件,是按照package来组织的,对于每一个class都有详细的解释,它的继承关系,是否实现了某个介面,通常用在哪些场合,还可以查到它所有的public的属性和方法,每个属性的解释,意义,每个方法的用途,呼叫的引数,引数的意义,返回值的型别,以及方法可能丢掷的异常等等。可以这样来说,所有关于Java程式设计方面的书籍其实都不过是在用比较通俗易懂的语言,和良好的组织方式来介绍 Documentation里面的某个package里面包含的一些类的用法而已。所以万变不离其宗,如果你有足够的能力来直接通过 Documentation来学习Java的类库,那么基本上就不需要看其他的书籍了。除此之外,Documentation也是程式设计必备的手册,我的桌面上有三个Documentation的快捷方式,分别是J2SDK1.4.1的Documentation,Servlet2.3的 Documentation和J2SDKEE1.3.1的Documentation。有了这个三个Documentation,什么其他的书籍都不需要了。
对于Java Web 程式设计来说,最核心的是要熟悉和掌握HTTP协议,这个就和Java无关了,在熟悉HTTP协议之后,就需要熟悉Java的实现HTTP协议的类库,也就是 Servlet API,所以最重要的东西就是Servlet API。当然对于初学者而言,直接通过Servlet API来学习Web程式设计有很大的难度,我推荐O\'reilly的《Java Server Pages 》这本书来学习Web 程式设计。
EJB的书籍当中,《Enterprise JavaBeans, 2nd Edition》是一本很不错的书, EJB的学习门槛是比较高,入门很难,但是这本书完全降低了学习的难度,特别重要的一点是,EJB的学习需要结合一种App Server的具体实现,所以在学习EJB的同时,必须同步的学习某种App Server,而这本书相关的出了三本书,分别是Weblogic6.1,Websphere4.0和JBoss3.0上面部署书中例子的实做。真是既有理论,又有实践。在学习EJB的同时,可以边看边做,EJB的学习会变得很轻松。
但是这本书也有一个问题,就是版本比较旧,主要讲EJB1.1规范和部分EJB2.0的规范。而Ed Roman写的《Mastering EJB 2.0》这本书完全是根据EJB2.0规范写的,深入浅出,覆蓋了EJB程式设计的各个方面,并且还有很多程式设计经验tips,也是学习EJB非常推荐的书籍之一。
如果是结合Weblogic来学习J2EE的话,《J2EE应用与BEA Weblogic Server》绝对是首选读物,虽然是讲述的Weblogic6.0,仍然值得购买,这本书是BEA官方推荐的教材,作者也是BEA公司的工程师。现在中文版已经随处可见了。这本书结合Weblogic介绍了J2EE各个方面的技术在Weblogic平台上的开发和部署,实践指导意义非常强。
在掌握了Java平台基础知识和J2EE方面的知识以后,更进一步的是学习如何运用OO的方法进行软体的设计,那么就一定要学习“设计模式”。 Sun公司出版了一本《J2EE核心模式》,是每个开发Java企业平台软体的架构师必备的书籍。这本书全面的介绍了J2EE体系架构的各种设计模式,是设计师的必读书籍。
Java Learning Path(三)过程篇
每个人的学习方法是不同的,一个人的方法不见得适合另一个人,我只能是谈自己的学习方法。因为我学习Java是完全自学的,从来没有问过别人,所以学习的过程基本上完全是自己摸索出来的。我也不知道这种方法是否是比较好的方法,只能给大家提供一点参考了。
学习Java的第一步是安装好JDK,写一个Hello World,? 其实JDK的学习没有那么简单,关于JDK有两个问题是很容易一直困扰Java程式设计师的地方:一个是CLASSPATH的问题,其实从原理上来说,是要搞清楚JRE的ClassLoader是如何载入Class的;另一个问题是package和import问题,如何来寻找类的路径问题。把这两个问题摸索清楚了,就扫除了学习Java和使用JDK的最大障碍。推荐看一下王森的《Java深度历险》,对这两个问题进行了深入的探讨。
第二步是学习Java的语法。Java的语法是类C++的,基本上主流的程式语言不是类C,就是类C++的,没有什么新东西,所以语法的学习,大概就是半天的时间足够了。唯一需要注意的是有几个不容易搞清楚的关键字的用法,public,protected,private,static,什么时候用,为什么要用,怎么用,这可能需要有人来指点一下,我当初是完全自己琢磨出来的,花了很久的时间。不过后来我看到《Thinking in Java》这本书上面是讲了这些概念的。
第三步是学习Java的面向物件的程式语言的特性的地方。比如继承,构造器,抽象类,介面,方法的多型,过载,覆蓋,Java的异常处理机制。对于一个没有面向物件语言背景的人来说,我觉得这个过程需要花很长很长时间,因为学习Java之前没有C++的经验,只有C的经验,我是大概花了一个月左右吧,才彻底把这些概念都搞清楚,把书上面的例子反复的揣摩,修改,尝试,把那几章内容反复的看过来,看过去,看了不下5遍,才彻底领悟了。不过我想如果有 C++经验的话,应该一两天时间足够了。那么在这个过程中,可以多看看《Thinking in Java》这本书,对面向物件的讲解非常透彻。可惜的是我学习的时候,并没有看到这本书,所以自己花了大量的时间,通过自己的尝试和揣摩来学会的。
第四步就是开始熟悉Java的类库。Java的基础类库其实就是JDK安装目录下面jre\\lib\\rt.jar这个包。学习基础类库就是学习rt.jar。基础类库里面的类非常非常多。据说有3000多个,我没有统计过。但是真正对于我们来说最核心的只有4个,分别是
java.lang.*;
java.io.*;
java.util.*;
java.sql.*;
这四个包的学习,每个包的学习都可以写成一本厚厚的教材,而O\'reilly也确实是这样做的。我觉得如果时间比较紧,是不可能通过读四本书来学习。我觉得比较好的学习方法是这样的:
首先要通读整个package的框架,了解整个package的class,interface,exception的构成,最好是能够找到介绍整个包框架的文章。这些专门介绍包的书籍的前几章应该就是这些总体的框架内容介绍。
对包整体框架的把握并不是要熟悉每个类的用法,记住它有哪些属性,方法。想记也记不住的。而是要知道包有哪些方面的类构成的,这些类的用途是什么,最核心的几个类分别是完成什么功能的。我在给人培训的时候一般是一次课讲一个包,所以不可能详细的介绍每个类的用法,但是我反复强调,我给你们讲这些包的不是要告诉你们类的方法是怎么呼叫的,也不要求你们记住类的方法呼叫,而是要你们了解,Java给我们提供了哪些类,每个类是用在什么场合,当我遇到问题的时候,我知道哪个类,或者哪几个类的组合可以解决我的问题,That\'all!,当我们具体写程式的时候,只要你知道该用哪个类来完成你的工作就足够了。编码的时候,具体的方法呼叫,是边写程式码,边查Documentation,所有的东西都在Documentation里面,不要求你一定记住,实际你也记不住3000多个类的总共将近10万个方法呼叫。所以对每个包的总体框架的把握就变得极为重要。
第五步,通过上面的学习,如果学的比较扎实的话,就打好了Java的基础了,剩下要做的工作是扫清Documentation里面除了上面4个包之外的其他一些比较有用处的类。相信进展到这一步,Java的自学能力已经被培养出来了,可以到了直接学习Documentation的水平了。除了要做 GUI程式设计之外,JDK里面其他会有用处的包是这些:
java.text.*;
java..*;
javax.naming.*;
这些包里面真正用的比较多的类其实很少,只有几个,所以不需要花很多时间。
第六步,Java Web 程式设计
Web程式设计的核心是HTTP协议,HTTP协议和Java无关,如果不熟悉HTTP协议的话,虽然也可以学好Servlet/JSP程式设计,但是达不到举一反三,一通百通的境界。所以HTTP协议的学习是必备的。如果熟悉了HTTP协议的话,又有了Java程式设计的良好的基础,学习 Servlet/JSP简直易如反掌,我学习Servlet/JSP就用了不到一周的时间,然后就开始用JSP来做专案了。
在Servlet/JSP的学习中,重头仍然是Servlet Documentation。Servlet API最常用的类很少,花比较少的时间就可以掌握了。把这些类都看一遍,多写几个例子试试。Servlet/JSP程式设计本质就是在反复呼叫这些类来通过 HTTP协议在Web Server和Brower之间交谈。另外对JSP,还需要熟悉几个常用JSP的标记,具体的写法记不住的话,临时查就是了。
此外Java Web程式设计学习的重点要放在Web Application的设计模式上,如何进行业务逻辑的分析,并且进行合理的设计,按照MVC设计模式的要求,运用Servlet和JSP分别完成不同的逻辑层,掌握如何在Servlet和JSP之间进行流程的控制和资料的共享,以及Web Application应该如何配置和部署。
第七步,J2EE程式设计
以上的学习过程如果是比较顺利的话,进行到这一步,难度又陡然提高。因为上面的知识内容都是只涉及一个方面,而像EJB,JMS,JTA等核心的J2EE规范往往是几种Java技术的综合运用的结晶,所以掌握起来难度比较大。
首先一定要学习好JNDI,JNDI是App Server定位伺服器资源(EJB元件,Datasouce,JMS)查询方法,如果对JNDI不熟悉的话,EJB,JMS这些东西几乎学不下去。 JNDI其实就是javax.naming.*这个包,运用起来很简单。难点在于伺服器资原始档的配置。对于伺服器资原始档的配置,就需要看看专门的文件规范了,比如web.xml的写法,ejb-jar.xml的写法等等。针对每种不同的App Server,还有自己的服务资源配置档案,也是需要熟悉的。
然后可以学习JTA,主要是要理解JTA对于事务的控制的方法,以及该在什么场合使用JTA。这里可以简单的举个例子,我们知道一般情况可以对于一个数据库连线进行事务控制(conn.setAutoCommit(false),....,conn.mit()),做为一个原子操作,但是假设我的业务需求是要把对两个不同资料库的操作做为一个原子操作,你能做的到吗?这时候只能用JTA了。假设操作过程是先往A资料库插一条记录,然后删除B 资料库另一个记录,我们自己写程式码是控制不了把整个操作做为一个原子操作的。用JTA的话,由App Server来完成控制。
在学习EJB之前要学习物件序列化和RMI,RMI是EJB的基础。接着学习JMS和EJB,对于EJB来说,最关键是要理解EJB是如何通过RMI来实现对远端物件的呼叫的,以及在什么情况下要用到EJB。
在学习完EJB,JMS这些东西之后,你可能会意识到要急不可待学习两个领域的知识,一个是UML,另一个是Design Pattern。Java企业软体的设计非常重视框架(Framework)的设计,一个好的软体框架是软体开发成功的必要条件。在这个时候,应该开始把学习的重点放在设计模式和框架的学习上,通过学习和实际的程式设计经验来掌握EJB的设计模式和J2EE的核心模式。
J2EE规范里面,除了EJB,JMS,JTA,Servlet/JSP,JDBC之外还有很多很多的企业技术,这里不一一进行介绍了。
另外还有一个最新领域Web Services。Web Services也完全没有任何新东西,它像是一种黏合剂,可以把不同的服务统一起来提供一个统一的呼叫介面,作为使用者来说,我只要获得服务提供者给我的WSDL(对服务的描述),就够了,我完全不知道伺服器提供者提供的服务究竟是EJB元件,还是.Net元件,还是什么CORBA元件,还是其他的什么实现,我也不需要知道。Web Services最伟大的地方就在于通过统一的服务提供方式和呼叫方式,实现了整个Inter服务的共享,是一个非常令人激动的技术领域。Web Services好像目前还没有什么很好的书籍,但是可以通过在网路上面查资料的方式来学习。
Java Learning Path(四) 方法篇
Java作为一门程式语言,最好的学习方法就是写程式码。当你学习一个类以后,你就可以自己写个简单的例子程式来执行一下,看看有什么结果,然后再多呼叫几个类的方法,看看执行结果,这样非常直观的把类给学会了,而且记忆非常深刻。然后不应该满足把程式码调通,你应该想想看如果我不这样写,换个方式,再试试行不行。记得哪个高人说过学习程式设计就是个破坏的过程,把书上的例子,自己学习Documentation编写的例子在执行通过以后,不断的尝试着用不同的方法实现,不断的尝试破坏程式码的结构,看看它会有什么结果。通过这样的方式,你会很彻底的很精通的掌握Java。
举个例子,我们都编过Hello World
public class HelloWorld
public static void main(String[] args)
System.out.println("Hello World");
很多初学者不是很理解为什么main方法一定要这样来定义public static void main(String[] args),能不能不这样写?包括我刚学习Java的时候也有这样的疑问。想知道答案吗?很简单,你把main改个名字执行一下,看看报什么错误,然后根据出错资讯进行分析;把main的public取掉,在试试看,报什么错误;static去掉还能不能执行;不知道main方法是否一定要传一个 String[]阵列的,把String[]改掉,改成int[],或者String试试看;不知道是否必须写args引数名称的,也可以把args改成别的名字,看看执行结果如何。
我当初学习Java的时候就是这样做的,把Hello World程式反复改了七八次,不断执行,分析执行结果,最后就彻底明白为什么了main方法是这样定义的了。
此外,我对于staic,public,private,Exception,try catch finally等等等等一开始都不是很懂,都是把参考书上面的例子执行成功,然后就开始破坏它,不断的根据自己心里面的疑问来重新改写程式,看看能不能执行,执行出来是个什么样子,是否可以得到预期的结果。这样虽然比较费时间,不过一个例子程式这样反复破坏几次之后。我就对这个相关的知识彻底学通了。有时候甚至故意写一些错误的程式码来执行,看看能否得到预期的执行错误。这样对于程式设计的掌握是及其深刻的。
其中特别值得一提的是JDK有一个非常棒的除错功能,-verbose
java –verbose
javac –verbose 以及其它很多JDK工具都有这个选项
-verbose 可以显示在命令执行的过程中,JVM都依次载入哪里Class,通过这些宝贵的除错资讯,可以帮助我们分析出JVM在执行的过程中都干了些什么。
另外,自己在学习过程中,写的很多的这种破坏例程,应该有意识的分门别类的储存下来,在工作中积累的典型例程也应该定期整理,日积月累,自己就有了一个程式码库了。遇到类似的问题,到程式码库里面 Copy & Paste ,Search & Replace,就好了,极大提高了开发速度。最理想的情况是把一些通用的例程自己再抽象一层,形成一个通用的类库,封装好。那么可复用性就更强了。
所以我觉得其实不是特别需要例程的,自己写的破坏例程就是最好的例子,如果你实在对自己写的程式码不放心的话,我强烈推荐你看看JDK基础类库的 Java原始码。在JDK安装目录下面会有一个src.zip,解开来就可以完整的看到整个JDK基础类库,也就是rt.jar的Java原始码,你可以参考一下Sun是怎么写Java程式的,规范是什么样子的。我自己在学习Java的类库的时候,当有些地方理解的不是很清楚的时候,或者想更加清晰的理解运作的细节的时候,往往会开启相应的类的原始码,通过看原始码,所有的问题都会一扫而空。
Java Learning Path(五)资源篇
1、 :java.sun./ (英文)
Sun的Java网站,是一个应该经常去看的地方。不用多说。
2、:-900.ibm./developerWorks//
IBM的developerWorks网站,英语好的直接去英文主站点看。这里不但是一个极好的面向物件的分析设计网站,也是Web Services,Java,Linux极好的网站。强烈推荐!
3、:javaworld./ (英文)
关于Java很多新技术的讨论和新闻。想多了解Java的方方面面的应用,这里比较好。
4、:dev2dev.bea../index.jsp
BEA的开发者园地,BEA作为最重要的App Server厂商,有很多独到的技术,在Weblogic上做开发的朋友不容错过。
5、:huihoo./
灰狐动力网站,一个专业的中介软体网站,虽然不是专业的Java网站,但是在J2EE企业应用技术方面有深厚的造诣。
6、:theserverside./home/ (英文)
TheServerSide是一个著名的专门面向Java Server端应用的网站。
7、:javaresearch./
Java研究组织,有很多优秀的Java方面的文章和教程,特别是在JDO方面的文章比较丰富。
8、:jsp./
JSP技术网站,有相当多的Java方面的文章和资源。
9、:jdon./
Jdon论坛,是一个个人性质的中文J2EE专业技术论坛,在众多的Java的中文论坛中,Jdon一个是技术含量非常高,帖子质量非常好的论坛。
10、:sourcefe./
SourgeFe是一个开放原始码软体的大本营,其中也有非常非常丰富的Java的开放原始码的著名的软体。
参考资料:还有JAVA中文网站:java-./book/index.
=================================================================
=================================================================
-----------------------------------------------------------------
程式设计师是一种技术工作,在IT的发展中有相当重要的地位,从底层硬体通讯协议的建立, 到资料传输层的处理,到作业系统的建设,到资料库平台的建设,一直到应用层上各种数 据营销平台的搭建,程式设计师在里面都扮演着举足轻重的角色并为IT事业的发展做出了巨大 的贡献。
中国有很多精于编码的人,但是中国软体行业,尤其是网路应用开发方面误区很大,很难形成有规模的软体开发力量和产品能力,不但比美国差距甚远,和印度相比也是颇有不如。这些问题不是在于中国程式设计师的智商和工作努力状况,也不是在于国家和民间对开发的投入程度,而是很大程度上,有一些对技术,对程式开发,对专案设计方面的思想误区,这些误区,导致了软体行业的产品化能力不足,缺乏规模化和大型复用系统研发能力,可以说,改变认识误区,是解决软体行业小作坊模式和个体英雄模式所带来的侷限性 的重要工作。
中国有很多小朋友,他们18,9岁或21,2岁,通过自学也写了不少程式码,他们有的程式码写的很漂亮,一些技术细节相当出众,也很有钻研精神,但是他们被一些错误的认识和观点左右,缺乏对系统,对程式的整体理解能力,这些人,一个网上的朋友说得很好,他们实际 上只是一些Coding fans,压根没有资格称为程式设计师,但是据我所知,不少小网路公司的 CTO就是这样的coding fans,拿着吓人的工资,做着吓人的专案,专案的结局通常也很吓 人。
程式设计师基本素质:
作一个真正合格的程式设计师,或者说就是可以真正合格完成一些程式码工作的程式设计师,应该具 有的素质。
1:团队精神和协作能力
把它作为基本素质,并不是不重要,恰恰相反,这是程式设计师应该具备的最基本的,也是最重要的安身立命之本。把高水平程式设计师说成独行侠的都是在呓语,任何个人的力量都是有限的,即便如linus这样的天才,也需要通过组成强大的团队来创造奇蹟,那些遍布全球的为linux写核心的高手们,没有协作精神是不可想象的。独行侠可以作一些赚钱的小软体发点小财,但是一旦进入一些大系统的研发团队,进入商业化和产品化的开发任务,缺乏这种素质的人就完全不合格了。
2:文件习惯
说高水平程式设计师从来不写文件的肯定是乳臭未干的毛孩子,良好的文件是正规研发流程中 非常重要的环节,作为程式码程式设计师,30%的工作时间写技术文件是很正常的,而作为高阶 程式设计师和系统分析员,这个比例还要高很多。
缺乏文件,一个软体系统就缺乏生命力,在未来的查错,升级以及模组的复用时就都会遇 到极大的麻烦。
3:规范化,标准化的程式码编写习惯
作为一些外国知名软体公司的规矩,程式码的变数命名,程式码内注释格式,甚至巢状中行缩 进的长度和函式间的空行数字都有明确规定,良好的编写习惯,不但有助于程式码的移植和 纠错,也有助于不同技术人员之间的协作。
有些coding fans叫嚣高水平程式设计师写的程式码旁人从来看不懂,这种叫嚣只能证明他们自 己压根不配自称程式设计师。程式码具有良好的可读性,是程式设计师基本的素质需求。
再看看整个linux的搭建,没有规范化和标准化的程式码习惯,全球的研发协作是绝对不可 想象的。
4:需求理解能力
程式设计师需要理解一个模组的需求,很多小朋友写程式往往只关注一个功能需求,他们把效能指标全部归结到硬体,作业系统和开发环境上,而忽视了本身程式码的效能考虑,有人曾经放言说写一个广告交换程式很简单,这种人从来不知道在百万甚至千万数量级的访问情况下的效能指标是如何实现的,对于这样的程式设计师,你给他深蓝那套系统,他也做不出太极链的并访能力。效能需求指标中,稳定性,并访支撑能力以及安全性都很重要,作为程式设计师需要评估该模组在系统运营中所处的环境,将要受到的负荷压力以及各种潜在的危险和恶意攻击的可能性。就这一点,一个成熟的程式设计师至少需要2到3年的专案研发和跟踪经验才有可能有心得。
5:复用性,模组化思维能力
经常可以听到一些程式设计师有这样的抱怨,写了几年程式,变成了熟练工,每天都是重复写 一些没有任何新意的程式码,这其实是中国软体人才最大浪费的地方,一些重复性工作变成 了熟练程式设计师的主要工作,而这些,其实是完全可以避免的。
复用性设计,模组化思维就是要程式设计师在完成任何一个功能模组或函式的时候,要多想一些,不要侷限在完成当前任务的简单思路上,想想看该模组是否可以脱离这个系统存在,是否可以通过简单的修改引数的方式在其他系统和应用环境下直接引用,这样就能极大避免重复性的开发工作,如果一个软体研发单位和工作组能够在每一次研发过程中都考虑到这些问题,那么程式设计师就不会在重复性的工作中耽误太多时间,就会有更多时间和精力投 入到创新的程式码工作中去。
一些好的程式模组程式码,即便是70年代写成的,拿到现在放到一些系统里面作为功能模组 都能适合的很好,而现在我看到的是,很多小公司软体一升级或改进就动辄全部程式码重 写,大部分重复性工作无谓的浪费了时间和精力。
程式设计师应具备的素质中
6:测试习惯
作为一些商业化正规化的开发而言,专职的测试工程师是不可少的,但是并不是说有了专职的测试工程师程式设计师就可以不进行自测;软体研发作为一项工程而言,一个很重要的特点就是问题发现的越早,解决的代价就越低,程式设计师在每段程式码,每个子模组完成后进行认真的测试,就可以尽量将一些潜在的问题最早的发现和解决,这样对整体系统建设的效 率和可靠性就有了最大的保证。
测试工作实际上需要考虑两方面,一方面是正常呼叫的测试,也就是看程式是否能在正常呼叫下完成基本功能,这是最基本的测试职责,可惜在很多公司这成了唯一的测试任务,实际上还差的远那;第二方面就是异常呼叫的测试,比如高压力负荷下的稳定性测试,使用者潜在的异常输入情况下的测试,整体系统区域性故障情况下该模组受影响状况的测试,频发的异常请求阻塞资源时的模组稳定测试等等。当然并不是程式设计师要对自己的每段程式码都需要进行这种完整测试,但是程式设计师必须清醒认识自己的程式码任务在整体专案中的地位和各种效能需求,有针对性的进行相关测试并尽早发现和解决问题,当然这需要上面提到的 需求理解能力。
7:学习和总结的能力
程式设计师是人才很容易被淘汰,很容易落伍的职业,因为一种技术可能仅仅在三两年内具有 领先性,程式设计师如果想安身立命,就必须不断跟进新的技术,学习新的技能。
善于学习,对于任何职业而言,都是前进所必需的动力,对于程式设计师,这种要求就更加高 了。
但是学习也要找对目标,一些小coding fans们,他们也津津乐道于他们的学习能力,一会学会了asp,一会儿学会了php,一会儿学会了jsp,他们把这个作为炫耀的资本,盲目的追逐一些肤浅的,表面的东西和名词,做网路程式不懂通讯传输协议,做应用程式不懂中断向量处理,这样的技术人员,不管掌握了多少所谓的新语言,永远不会有质的提高。
善于总结,也是学习能力的一种体现,每次完成一个研发任务,完成一段程式码,都应当有 目的的跟踪该程式的应用状况和用
相关参考
知识大全 各位java高手,我是一个java初学者,请问是看书好呢还是看视频教程好?谢谢!和那本书号呢
各位java高手,我是一个java初学者,请问是看书好呢还是看视频教程好?谢谢!和那本书号呢?谢谢大家了!书和视频双管齐下学java是看书学好.还是看视频教程?主要看书,有时间多看视频学习ps看书好,
知识大全 以前没有接触过软件编程,java的初学者要怎样才能学好
以前没有接触过软件编程,java的初学者要怎样才能学好不知道你以前是否有接触过其他编程语言例如CC++java很好学的如果以前有过编程经验的那就学起来很轻松了鄙人是计算机专业的本科生学java表示没压
知识大全 想问一下高手前辈,怎么样才能学好JAVA编程,希望推荐一些好的书籍和视频。
我是学JAVA编程的初学者!想问一下高手前辈,怎么样才能学好JAVA编程,希望推荐一些好的书籍和视频。 以下文字资料是由(历史新知网www.cha138.com)小编为大家搜集整
我现在在学JAVA,请问怎么样才能学好JAVA啊! 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!我
知识大全 我很想学习好C语言,或JAVA 程式设计方面的知识,怎么样才能学好这些阿。
我很想学习好C语言,或JAVA程式设计方面的知识,怎么样才能学好这些阿。 以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶
知识大全 学java视频网站 我是初学者 有一点C语言基础 谢谢了
哪位老师能告诉我个学java视频网站我是初学者有一点C语言基础谢谢了! 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶
知识大全 我是个计算机软件初学者,想学一门语言,我选择JAVA作为我的初学语言,不知道该怎样学习,帮大家指点下!
我是个计算机软件初学者,想学一门语言,我选择JAVA作为我的初学语言,不知道该怎样学习,帮大家指点下! 以下文字资料是由(本站网www.cha138.com)小编为大家
知识大全 我想学java语言,0基础,请问有什么书可以推荐一下吗
我想学java语言,0基础,请问有什么书可以推荐一下吗?《java从入门到精通》,讲的比较细,例子比较基础,便于初学者学习C语言零基础想要自学,有什么书可以推荐一下吗cprimerplus讲得很清楚明
怎样学好java语言?学习程序的最好方式是参照源代码,先仿照,后创新,慢慢有积累了,就可以收发自由了。没关系的,慢慢来,不可能一步到位的。java确实很难学.学习Java其实应该上升到如何学习程序设计
知识大全 我是一个JAVA的初学者,我应该先学习哪种JAVA编程软件.
我是一个JAVA的初学者,我应该先学习哪种JAVA编程软件. 以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一