java程序设计心得体会范文

2024-08-23

java程序设计心得体会范文(通用9篇)

篇1:java程序设计心得体会范文

程序员大咖分享学习java的心得体会

科技的快速发展,互联网的普及使软件行业人才需求大增,更多的人选择软件开发行业,然而同样的学习和工作,有些人在工作两三年就有很好的收获,而有些人却提升缓慢,工作几年还是初级水平,这就给很多初学者产生无形的压力,那么初学java怎么才能快速提升技能呢?西安java培训学校程序员大咖给我们分享他的成功经验。

一、学习web前端是基础

Web开发等你写上几天程序以后,你往往会比较迷茫,因为你写的东西似乎看起来毫无用处,比如实现一个简单的计算器,读取一个文件等。这个时候你就应该去学着写一些让你觉得有意思的东西了,所以你应该学习更多的知识。这些内容主要是Web开发相关的内容,包括HTML/CSS/JS(前端页面)、Servlet/JSP(J2EE)以及Mysql(数据库)相关的知识。它们的学习顺序应该是从前到后,因此最先学习的应该是HTML/CSS/JS(前端页面),这部分内容你可以去上面的那个runoob网站上找。西安java培训学校哪家好

二、后端重点的必须掌握哪些内容

你可以试着自己写一些页面,当然,你可以尽你最大的努力让它变得最漂亮。这部分内容对于后端Java来说,理论上不是特别重要,但至少要达到可以自己写出一些简单页面的水平。接下来,你需要学习的是Servlet/JSP(J2EE)部分,这部分是Java后端开发必须非常精通的部分,因此这部分是这三部分中最需要花精力的,而且这个时候,你要学会使用开发工具,而不能再使用记事本了,可以选择eclipse。当你下载安装好eclipse以后,请视频中的教程一步一步去学习,一定要多动手。关于Servlet/Jsp部分视频的选择,我们可以在网上找些免费视频,如果听不明白可以就要找专业培训机构学习了。

三、三大框架的重要性

开发框架当你学会以上内容以后,这个时候你还不足以参加工作,你还需要继续深造。公司里为了提高开发的效率,会使用一些Java Web框架,因此你还需要学习一些开发框架。目前比较主流的是SSM框架,即spring、springmvc、mybatis。你需要学会这三个框架的搭建,并用它们做出一个简单的增删改查的Web项目。你可以不理解那些配置都是什么含义,以及为什么要这么做,这些留着后面你去了解。但你一定要可以快速的利用它们三个搭建出一个Web框架,你可以记录下你第一次搭建的过程,相信我,你一定会用到的。还要提一句的是,你在搭建SSM的过程中,可能会经常接触到一个叫maven的工具。这个工具也是你以后工作当中几乎是必须要使用的工具,所以你在搭建SSM的过程中,也可以顺便了解一下maven的知识。在你目前这个阶段,你只需要在网络上了解一下maven基本的使用方法即可,一些高端的用法随着你工作经验的增加,会逐渐接触到的。

对于参加工作一年以内的同学。恭喜你,这个时候,你已经拥有了一份Java的工作。这个阶段是你成长极快的阶段,而且你可能会经常加班。但是加班不代表你就可以松懈了,西安java培训学校提醒大家,软件开发行业就是要不断的学习,不断的进步,了解新知识,坚持不懈的学习和努力相信你就会脱颖而出。更多专业问题欢迎来电咨询:西安java培训学校。

篇2:java程序设计心得体会范文

软件开发之路是充满荆棘与挑战之路,也是充满希望之路。JAVA学习也是如此,没有捷径可走。梦想像《天龙八部》中虚竹一样被无崖子醍醐灌顶而轻松获得一甲子功力,是很不现实的。每天仰天大叫“天神啊,请赐给我一本葵花宝典吧”,殊不知即使你获得了葵花宝典,除了受自宫其身之苦外,你也不一定成得了“东方不败”,倒是成“西方失败”的几率高一点。

“不走弯路,就是捷径”,佛经说的不无道理。

1.如何学习程序设计?

JAVA是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于JAVA,对C++等其他程序设计语言也一样管用。有编程高手认为,JAVA也好C也好没什么分别,拿来就用。为什么他们能达到如此境界?我想是因为编程语言之间有共通之处,领会了编程的精髓,自然能够做到一通百通。如何学习程序设计理所当然也有许多共通的地方。

1.1 培养兴趣

兴趣是能够让你坚持下去的动力。如果只是把写程序作为谋生的手段的话,你会活的很累,也太对不起自己了。多关心一些行业趣事,多想想盖茨。不是提倡天天做白日梦,但人要是没有了梦想,你觉得有味道吗?可能像许多深圳本地农民一样,打打麻将,喝喝功夫茶,拜拜财神爷;每个月就有几万十几万甚至更多的进帐,凭空多出个“食利阶层”.你认为,这样有味道吗?有空多到一些程序员论坛转转,你会发现,他们其实很乐观幽默,时不时会冒出智慧的火花。

1.2 慎选程序设计语言

男怕入错行,女怕嫁错郎。初学者选择程序设计语言需要谨慎对待。软件开发不仅仅是掌握一门编程语言了事,它还需要其他很多方面的背景知识。软件开发也不仅仅局限于某几个领域,而是已经渗透到了各行各业几乎每一个角落。

如果你对硬件比较感兴趣,你可以学习C语言/汇编语言,进入硬件开发领域。如果你对电信的行业知识及网络比较熟悉,你可以在C/C++等之上多花时间,以期进入电信软件开发领域。如果你对操作系统比较熟悉,你可以学习C/Linux等等,为Linux内核开发/驱动程序开发/嵌入式开发打基础。如果你想介入到应用范围最广泛的应用软件开发(包括电子商务电子政务系统)的话,你可以选择J2EE或。NET,甚至LAMP组合。每个领域要求的背景知识不一样。做应用软件需要对数据库等很熟悉。总之,你需要根据自己的特点来选择合适你的编程语言。

1.3 要脚踏实地,快餐式的学习不可取

先分享一个故事。有一个小朋友,他很喜欢研究生物学,很想知道那些蝴蝶如何从蛹壳里出来,变成蝴蝶便会飞。有一次,他走到草原上面看见一个蛹,便取了回家,然后看着,过了几天以后,这个蛹出了一条裂痕,看见里面的蝴蝶开始挣扎,想抓破蛹壳飞出来。这个过程达数小时之久,蝴蝶在蛹里面很辛苦地拼命挣扎,怎么也没法子走出来。这个小孩看着看着不忍心,就想不如让我帮帮它吧,便随手拿起剪刀在蛹上剪开,使蝴蝶破蛹而出。但蝴蝶出来以后,因为翅膀不够力,变得很臃肿,飞不起来。

这个故事给我们的启示是:欲速则不达。

浮躁是现代人最普遍的心态,能怪谁?也许是贫穷落后了这么多年的缘故,就像当年的大跃进一样,都想大步跨入共产主义社会。现在的软件公司、客户、政府、学校、培训机构等等到处弥漫着浮躁之气。就拿笔者比较熟悉的深圳IT培训行业来说吧,居然有的打广告宣称“参加培训,100%就业”,居然报名的学生不少,简直是藐视天下程序员。社会环境如是,我们不能改变,只能改变自己,闹市中的安宁,弥足珍贵。许多初学者C++/JAVA没开始学,立马使用VC/JBuilder,会使用VC/JBuilder开发一个Hello World程序,就忙不迭的向世界宣告,“我会软件开发了”,简历上也大言不惭地写上“精通VC/JAVA”.结果到软件公司面试时要么被三两下打发走了,要么被驳的体无完肤,无地自容。到处碰壁之后才知道捧起《C++编程思想》《JAVA编程思想》仔细钻研,早知如此何必当初呀。

“你现在讲究简单方便,你以后的路就长了”,好象也是佛经中的劝戒。

1.4 多实践,快实践

彭端淑的《为学一首示子侄》中有穷和尚与富和尚的故事。

从前,四川边境有两个和尚,一个贫穷,一个有钱。一天,穷和尚对富和尚说:“我打算去南海朝圣,你看怎么样?”富和尚说:“这里离南海有几千里远,你靠什么去呢?”穷和尚说:“我只要一个水钵,一个饭碗就够了。”富和尚为难地说:“几年前我就打算买条船去南海,可至今没去成,你还是别去吧!” 一年以后,富和尚还在为租赁船只筹钱,穷和尚却已经从南海朝圣回来了。

这个故事可解读为:任何事情,一旦考虑好了,就要马上上路,不要等到准备周全之后,再去干事情。假如事情准备考虑周全了再上路的话,别人恐怕捷足先登了。软件开发是一门工程学科,注重的就是实践,“君子动口不动手”对软件开发人员来讲根本就是错误的,他们提倡“动手至上”,但别害怕,他们大多温文尔雅,没有暴力倾向,虽然有时候蓬头垢面的一副“比尔盖茨”样。有前辈高人认为,学习编程的秘诀是:编程、编程、再编程,笔者深表赞同。不仅要多实践,而且要快实践。我们在看书的时候,不要等到你完全理解了才动手敲代码,而是应该在看书的同时敲代码,程序运行的各种情况可以让你更快更牢固的掌握知识点。

1.5 多参考程序代码

程序代码是软件开发最重要的成果之一,其中渗透了程序员的思想与灵魂。许多人被《仙剑奇侠传》中凄美的爱情故事感动,悲剧的结局更有一种缺憾美。为什么要以悲剧结尾?据说是因为写《仙剑奇侠传》的程序员失恋而安排了这样的结局,他把自己的感觉融入到游戏中,却让众多的仙剑迷扼腕叹息。

多多参考代码例子,对JAVA而言有参考文献[4.3],有API类的源代码(JDK安装目录下的src.zip文件),也可以研究一些开源的软件或框架。1.6 加强英文阅读能力

对学习编程来说,不要求英语,但不能一点不会,.最起码像JAVA API文档(参考文献[4.4])这些东西还是要能看懂的,连猜带懵都可以;旁边再开启一个“金山词霸”.看多了就会越来越熟练。在学JAVA的同时学习英文,一箭双雕多好。另外好多软件需要到英文网站下载,你要能够找到它们,这些是最基本的要求。英语好对你学习有很大的帮助。口语好的话更有机会进入管理层,进而可以成为剥削程序员的“周扒皮”.1.7 万不得已才请教别人

笔者在ChinaITLab网校的在线辅导系统中解决学生问题时发现,大部分的问题学生稍做思考就可以解决。请教别人之前,你应该先回答如下几个问题。

你是否在google中搜索了问题的解决办法?

你是否查看了JAVA API文档?

你是否查找过相关书籍?

你是否写代码测试过?

如果回答都是“是”的话,而且还没有找到解决办法,再问别人不迟。要知道独立思考的能力对你很重要。要知道程序员的时间是很宝贵的。

1.8 多读好书

书中自有颜如玉。比尔?盖茨是一个饱读群书的人。虽然没有读完大学,但九岁的时候比尔?盖茨就已经读完了所有的百科全书,所以他精通天文、历史、地理等等各类学科,可以说比尔?盖茨不仅是当今世界上金钱的首富,而且也可以称得上是知识的巨富。

笔者在给学生上课的时候经常会给他们推荐书籍,到后来学生实在忍无可忍开始抱怨,“天呐,这么多书到什么时候才能看完了”,“学软件开发,感觉上了贼船”.这时候,我的回答一般是,“别着急,什么时候带你们去看看我的书房,到现在每月花在技术书籍上的钱400元,这在软件开发人员之中还只能够算是中等的”,学生当场晕倒。(注:这一部分学生是刚学软件开发的)

1.9 使用合适的工具

工欲善其事必先利其器。软件开发包含各种各样的活动,需求收集分析、建立用例模型、建立分析设计模型、编程实现、调试程序、自动化测试、持续集成等等,没有工具帮忙可以说是寸步难行。工具可以提高开发效率,使软件的质量更高BUG更少。组合称手的武器。到飞花摘叶皆可伤人的境界就很高了,无招胜有招,手中无剑心中有剑这样的境界几乎不可企及。

2.软件开发学习路线

两千多年的儒家思想孔孟之道,中庸的思想透入骨髓,既不冒进也不保守并非中庸之道,而是找寻学习软件开发的正确路线与规律。

从软件开发人员的生涯规划来讲,我们可以大致分为三个阶段,软件工程师→软件设计师→架构设计师或项目管理师。不想当元帅的士兵不是好士兵,不想当架构设计师或项目管理师的程序员也不是好的程序员。我们应该努力往上走。让我们先整理一下开发应用软件需要学习的主要技术。

A.基础理论知识,如操作系统、编译原理、数据结构与算法、计算机原理等,它们并非不重要。如不想成为计算机科学家的话,可以采取“用到的时候再来学”的原则。

B.一门编程语言,现在基本上都是面向对象的语言,JAVA/C++/C#等等。如果做WEB开发的话还要学习HTML/JavaScript等等。

C.一种方法学或者说思想,现在基本都是面向对象思想(OOA/OOD/设计模式)。由此而衍生的基于组件开发CBD/面向方面编程AOP等等。

D.一种关系型数据库,ORACLE/SqlServer/DB2/MySQL等等

E.一种提高生产率的IDE集成开发环境JBuilder/Eclipse/VS.NET等。

F.一种UML建模工具,用ROSE/VISIO/钢笔进行建模。

G.一种软件过程,RUP/XP/CMM等等,通过软件过程来组织软件开发的众多活动,使开发流程专业化规范化。当然还有其他的一些软件工程知识。

H.项目管理、体系结构、框架知识。

正确的路线应该是:B→C→E→F→G→H.还需要补充几点:

1)。对于A与C要补充的是,我们应该在实践中逐步领悟编程理论与编程思想。新技术虽然不断涌现,更新速度令人眼花燎乱雾里看花;但万变不离其宗,编程理论与编程思想的变化却很慢。掌握了编程理论与编程思想你就会有拨云见日之感。面向对象的思想在目前来讲是相当关键的,是强势技术之一,在上面需要多投入时间,给你的回报也会让你惊喜。

2)。对于数据库来说是独立学习的,这个时机就由你来决定吧。

3)。编程语言作为学习软件开发的主线,而其余的作为辅线。

4)。软件工程师着重于B、C、E、D;软件设计师着重于B、C、E、D、F;架构设计师着重于C、F、H.3.如何学习JAVA?

3.1 JAVA学习路线

3.1.1 基础语法及JAVA原理

基础语法和JAVA原理是地基,地基不牢靠,犹如沙地上建摩天大厦,是相当危险的。学习JAVA也是如此,必须要有扎实的基础,你才能在J2EE、J2ME领域游刃有余。参加SCJP(SUN公司认证的JAVA程序员)考试不失为一个好方法,原因之一是为了对得起你交的1200大洋考试费,你会更努力学习,原因之二是SCJP考试能够让你把基础打得很牢靠,它要求你跟JDK一样熟悉JAVA基础知识;但是你千万不要认为考过了SCJP就有多了不起,就能够获得软件公司的青睐,就能够获取高薪,这样的想法也是很危险的。获得“真正”的SCJP只能证明你的基础还过得去,但离实际开发还有很长的一段路要走。

3.1.2 OO思想的领悟

掌握了基础语法和JAVA程序运行原理后,我们就可以用JAVA语言实现面向对象的思想了。面向对象,是一种方法学;是独立于语言之外的编程思想;是CBD基于组件开发的基础;属于强势技术之一。当以后因工作需要转到别的面向对象语言的时候,你会感到特别的熟悉亲切,学起来像喝凉水这么简单。

使用面向对象的思想进行开发的基本过程是:

●调查收集需求。

●建立用例模型。

●从用例模型中识别分析类及类与类之间的静态动态关系,从而建立分析模型。

●细化分析模型到设计模型。

●用具体的技术去实现。

●测试、部署、总结。3.1.3 基本API的学习

进行软件开发的时候,并不是什么功能都需要我们去实现,也就是经典名言所说的“不需要重新发明轮子”.我们可以利用现成的类、组件、框架来搭建我们的应用,如SUN公司编写好了众多类实现一些底层功能,以及我们下载过来的JAR文件中包含的类,我们可以调用类中的方法来完成某些功能或继承它。那么这些类中究竟提供了哪些方法给我们使用?方法的参数个数及类型是?类的构造器需不需要参数?总不可能SUN公司的工程师打国际长途甚至飘洋过海来告诉你他编写的类该如何使用吧。他们只能提供文档给我们查看,JAVA DOC文档就是这样的文档,它可以说是程序员与程序员交流的文档。

基本API指的是实现了一些底层功能的类,通用性较强的API,如字符串处理/输入输出等等。我们又把它成为类库。熟悉API的方法一是多查JAVA DOC文档,二是使用JBuilder/Eclipse等IDE的代码提示功能。

3.1.4 特定API的学习

JAVA介入的领域很广泛,不同的领域有不同的API,没有人熟悉所有的API,对一般人而言只是熟悉工作中要用到的API.如果你做界面开发,那么你需要学习Swing/AWT/SWT等API;如果你进行网络游戏开发,你需要深入了解网络API/多媒体API/2D3D等;如果你做WEB开发,就需要熟悉Servlet等API啦。总之,需要根据工作的需要或你的兴趣发展方向去选择学习特定的API.3.1.5 开发工具的用法

在学习基础语法与基本的面向对象概念时,从锻炼语言熟练程度的角度考虑,我们推荐使用的工具是Editplus/JCreator+JDK,这时候不要急于上手JBuilder/Eclipse等集成开发环境,以免过于关注IDE的强大功能而分散对JAVA技术本身的注意力。过了这一阶段你就可以开始熟悉IDE了。

程序员日常工作包括很多活动,编辑、编译及构建、调试、单元测试、版本控制、维持模型与代码同步、文档的更新等等,几乎每一项活动都有专门的工具,如果独立使用这些工具的话,你将会很痛苦,你需要在堆满工具的任务栏上不断的切换,效率很低下,也很容易出错。在JBuilder、Eclipse等IDE中已经自动集成编辑器、编译器、调试器、单元测试工具JUnit、自动构建工具ANT、版本控制工具CVS、DOC文档生成与更新等等,甚至可以把UML建模工具也集成进去,又提供了丰富的向导帮助生成框架代码,让我们的开发变得更轻松。应该说IDE发展的趋势就是集成软件开发中要用到的几乎所有工具。

从开发效率的角度考虑,使用IDE是必经之路,也是从一个学生到一个职业程序员转变的里程碑。

JAVA开发使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等几种;而Eclipse、JBuilder占有的市场份额是最大的。JBuilder在近几年来一直是JAVA集成开发环境中的霸主,它是由备受程序员尊敬的Borland公司开发,在硝烟弥漫的JAVA IDE大战中,以其快速的版本更新击败IBM的Visual Age for JAVA等而成就一番伟业。IBM在Visual Age for JAVA上已经无利可图之下,干脆将之贡献给开源社区,成为Eclipse的前身,真所谓“柳暗花明又一村”.浴火重生的Eclipse以其开放式的插件扩展机制、免费开源获得广大程序员(包括几乎所有的骨灰级程序员)的青睐,极具发展潜力。

3.1.6 学习软件工程

对小型项目而言,你可能认为软件工程没太大的必要。随着项目的复杂性越来越高,软件工程的必要性才会体现出来。参见“软件开发学习路线”小节。

3.2学习要点

确立的学习路线之后,我们还需要总结一下JAVA的学习要点,这些要点在前文多多少少提到过,只是笔者觉得这些地方特别要注意才对它们进行汇总,不要嫌我婆婆妈妈啊。

3.2.1勤查API文档

当程序员编写好某些类,觉得很有成就感,想把它贡献给各位苦难的同行。这时候你要使用“javadoc”工具(包含在JDK中)生成标准的JAVA DOC文档,供同行使用。J2SE/J2EE/J2ME的DOC文档是程序员与程序员交流的工具,几乎人手一份,除了菜鸟之外。

对待DOC文档要像毛主席语录,早上起床念一遍,吃饭睡觉前念一遍。

当需要某项功能的时候,你应该先查相应的DOC文档看看有没有现成的实现,有的话就不必劳神费心了直接用就可以了,找不到的时候才考虑自己实现。使用步骤一般如下:

●找特定的包,包一般根据功能组织。

●找需要使用类,类命名规范的话我们由类的名字可猜出一二。

●选择构造器,大多数使用类的方式是创建对象。

●选择你需要的方法。

3.2.2 查书/google->写代码测试->查看源代码->请教别人

当我们遇到问题的时候该如何解决?

这时候不要急着问别人,太简单的问题,没经过思考的问题,别人会因此而瞧不起你。可以先找找书,到google中搜一下看看,绝大部分问题基本就解决了。而像“某些类/方法如何使用的问题”,DOC文档就是答案。对某些知识点有疑惑是,写代码测试一下,会给你留下深刻的印象。而有的问题,你可能需要直接看API的源代码验证你的想法。万不得已才去请教别人。

3.2.3学习开源软件的设计思想

JAVA领域有许多源代码开放的工具、组件、框架,JUnit、ANT、Tomcat、Struts、Spring、Jive论坛、PetStore宠物店等等多如牛毛。这些可是前辈给我们留下的瑰宝呀。入宝山而空手归,你心甘吗?对这些工具、框架进行分析,领会其中的设计思想,有朝一日说不定你也能写一个XXX框架什么的,风光一把。分析开源软件其实是你提高技术、提高实战能力的便捷方法。

3.2.4 规范的重要性

没有规矩,不成方圆。这里的规范有两层含义。第一层含义是技术规范,多读规范,这是最权威准确最新的教材。第二层含义是编程规范,如果你使用了大量的独特算法,富有个性的变量及方法的命名方式;同时,没给程序作注释,以显示你的编程功底是多么的深厚。这样的代码别人看起来像天书,要理解谈何容易,更不用说维护了,必然会被无情地扫入垃圾堆。

3.2.5 不局限于JAVA

很不幸,很幸运,要学习的东西还有很多。不幸的是因为要学的东西太多且多变,没时间陪老婆家人或女朋友,导致身心疲惫,严重者甚至导致抑郁症。幸运的是别人要抢你饭碗绝非易事,他们或她们需要付出很多才能达成心愿。

JAVA不要孤立地去学习,需要综合学习数据结构、OOP、软件工程、UML、网络编程、数据库技术等知识,用横向纵向的比较联想的方式去学习会更有效。如学习JAVA集合的时候找数据结构的书看看;学JDBC的时候复习数据库技术;采取的依然是“需要的时候再学”的原则。

4.结束语

篇3:JAVA程序设计语言的一点体会

1 传统程序设计语言

Java总是和C++联系在一起,而C++则是从C语言派生而来的,所以Java语言继承了这两种语言的大部分特性。Java的语法是从C继承的,Java许多面向对象的特性受到C++的影响。事实上,Java中几个自定义的特性都来自于或可以追溯到它的前驱。

任何事物的产生既有必然的原因也有偶然的因素,java语言的出现也验证了这一点。1991年,美国Sun Microsystems公司的某个研究小组为了能够在消费电子产品上开发应用程序,积极寻找合适的编程语言。消费电子产品种类繁多,包括PDA、机顶盒、手机等等,即使是同一类消费电子产品所采用的处理芯片和操作系统也不相同,也存在着跨平台的问题。当时最流行的编程语言是C和C++语言,Sun公司的研究人员就考虑是否可以采用C++语言来编写消费电子产品的应用程序,但是研究表明,对于消费电子产品而言C++语言过于复杂和庞大,并不适用,安全性也并不令人满意。于是,Bill Joy先生领导的研究小组就着手设计和开发出一种语言,称之为Oak。是SUN公司为一些消费性电子产品而设计的一个通用环境。他们最初的目的只是为了开发一种独立于平台的软件技术,而且在网络出现之前,OAK可以说是默默无闻,甚至差点夭折。但是,网络的出现改变了OAK的命运。在Java出现以前,Interne上的信息内容都是一些乏味死板的HTML文档。这对于那些迷恋于WEB浏览的人们来说简直不可容忍。他们迫切希望能在WEN中看到一些交互式的内容,开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,当然这些程序还要有极大的安全保障。对于用户的这种要求,传统的编程语言显得无能为力,面SUN的工程师敏锐地察觉到了这一点,从1994年起,他们开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本。当SUN公司1995年正式以Java这个名字推出的时候,几乎所有的WEB开发人员都想到:噢,这正是我想要的。

2 JAVA程序设计语言的发展

Sun继Green项目后又经过了几年的研究,终于在1995年5月23日在SunWorld'95上正式发布Java和HotJava浏览器。在同年,有很多公司先后获得了Java许可证,如Netscape在1995年8月,Oracle在1995年10月分别获得了Java许可证。Sun在1995年发布第一个Java版本后,于1996年1月宣布成立新的业务部门──JavaSoft部,这个部分主要负责开发、销售并支持基于Java技术的产品,由AlanBaratz先生任总裁。

在1995年Sun虽然推出了Java,但这只是一种语言,而要想开发复杂的应用程序,必须要有一个的强大的开发库支持还行。因此,Sun在1996年1月23日发布了JDK1.0。这个版本包括了两部分:运行环境(即JRE)和开发环境(即JDK)。在运行环境中包括了核心API、集成API,用户界面API,发布技术,Java虚拟机(JVM)五个部分。而开发环境还包括了编译Java程序的编译器(即javac)。在JDK1.0时代,JDK除了AWT(一种用于开发图形用户界面的API)外,其它的库并不完整。

Sun在推出JDK1.0后,紧跟着,Sun在1997年2月18日发布了JDK1.1。JDK1.1相对于JDK1.0最大的改进就是为JVM增加了JIT(即时编译)编译器。JIT和传统的编译器不同,传统的编译器是编译一条,运行完后再将其扔掉,而JIT会将经常用到的指令保存在内容中,在下次调用时就不需要再编译了。这样JDK在效率上有了非常大的提升。

Sun在推出JDK1.1后,接着又推出了数个JDK1.x版本。自从Sun推出Java后,JDK的下载量不断彪升,在1997年,JDK的下载量突破了220,000,而在1998年,JDK的下载量已经超过了2,000,000。虽然在1998年之前,Java被众多的软件企业所采用,但由于当时硬件环境和JVM的技术原因,它的应用却很有限。当时Java主要只使用在前端的Applet以及一些移动设备中。然而这并不等于Java的应用只限于这些领域。在1998年是Java开始迅猛发展的一年。在这一年中Sun发布了JSP/Servlet、EJB规范以及将Java分成了J2EE、J2SE和J2ME。标志着Java已经吹响了向企业、桌面和移动3个领域进军的号角。

3 Java语言中容易被人忽视的细节

Java作为一门优秀的面向对象的程序设计语言,正在被越来越多的人使用。本文试图列出作者在实际开发中碰到的一些Java语言的容易被人忽视的细节,希望能给正在学习Java语言的人有所帮助。

1)位移运算越界怎么处理?

考察下面的代码输出结果是多少?

按照常理推测,把a左移33位应该将a的所有有效位都移出去了,那剩下的都是零啊,所以输出结果应该是0才对啊,可是执行后发现输出结果是10,为什么呢?因为Java语言对位移运算作了优化处理,Java语言对a<

2)可以让i!=i吗?

当你看到这个命题的时候一定会以为我疯了,或者Java语言疯了。这看起来是绝对不可能的,一个数怎么可能不等于它自己呢?或许就真的是Java语言疯了,不信看下面的代码输出什么?

上面的代码输出"No i!=i",为什么会这样呢?关键在0.0/0.0这个值,在IEEE 754浮点算术规则里保留了一个特殊的值用来表示一个不是数字的数量。这个值就是NaN("Not a Number"的缩写),对于所有没有良好定义的浮点计算都将得到这个值,比如:0.00.0;其实我们还可以直接使用Double.NaN来得到这个值。在IEEE 754规范里面规定NaN不等于任何值,包括它自己。所以就有了i!=i的代码。

4 实例分析

怎样的equals才安全?

我们都知道在Java规范里定义了equals方法覆盖的5大原则:reflexive(反身性),symmetric(对称性),transitive(传递性),consistent(一致性),non-null(非空性)。那么考察下面的代码:

你认为上面的代码equals方法的覆盖安全吗?表面看起来好像没什么问题,这样写也确实满足了以上的五大原则。但其实这样的覆盖并不很安全,假如Student类还有一个子类CollegeStudent,如果我拿一个Student对象和一个CollegeStudent对象equals,只要这两个对象有相同的name和age,它们就会被认为相等,但实际上它们是两个不同类型的对象啊。问题就出在instanceof这个运算符上,因为这个运算符是向下兼容的,也就是说一个CollegeStudent对象也被认为是一个Student的实例。怎样去解决这个问题呢?那就只有不用instanceof运算符,而使用对象的getClass()方法来判断两个对象是否属于同一种类型,例如,将上面的equals()方法修改为:

5 程序设计语言的前景

在2005年的Java One开发者大会上,James Gosling作了题为“Java技术下一个10年贡献”的演讲。谈到未来Java的发展时,James Gosling提到了有关Java软件的性能和复杂性问题。鉴于许多机器运行着大量进程的实际情况,人们对线程模型投以越来越多的关注。

随着人们对桌面应用的要求越来越高,系统将变得越来越复杂。他指出:“从工程的角度来看,未来10年内我们所面临的最大挑战就是复杂性问题,”James Gosling说,“目前,我们开展了许多工作以解决应用编程接口、语言以及工具中所涉及的复杂性问题。在工具和用户界面(UI)中都会遇到复杂性问题,Java技术设计人员必须处理好大小尺寸调整和国际化的问题。”

在这次大会上,James Gosling还同Java技术先驱,现任Kleiner,Perkins Caulfield and Byers合伙人的Bill Joy先生,Sun公司首席科学家John Gage先生,未来研究所主任Paul Saffo先生,Sun杰出工程师Guy Steele先生以及Applied Mindes公司主席及首席技术官Danny Hillis先生等一起探讨了讨论Java语言的过去和未来发展情况。

他们认为,Java技术提高了计算的“流动性”,就如同货币的发明提高了商品的流动性一样。无所不在的网络丰富了每个人的信息,就如同可以兑换的货币产生了财富一样。由于从前的网络是很慢的,所以计算被束缚在特定的计算机上,而这种情况将一去不复返了。

目前,全球Java开发人员已经超过450万,而与之相对应的是Java社区充满活力和创新精神,这正是Java下一个10年更加繁荣的保障。为了保持Java的增长和推进Java社区的参与,Sun在Java One开发者大会上宣布开放Java核心源代码,以鼓励更多的人参与到社团活动中来,这是Sun为推进社团发展和维护Java技术兼容性而迈出的重要一步。

Sun公司总裁兼首席运营官Jonathan Schwartz先生指出,来自Java社团和IBM等全球技术合作伙伴两方面的支持,乃是Java技术在创新和社会进步上继续发挥重要作用的强有力的标志。技术开放和社团建设降低了技术应用的壁垒,其结果是为参与和增长创造了更多的商机,这就形成了价值上千亿美元的Java产业。

有很多人认为Java开源后,在众多开发人员的参与之下,Java会变得更加强大。随着Java和IT业界的关系变得更加紧密,Sun公司也将更容易卖出自己兼容Java良好的WEB服务器和操作系统。这个举动将会给软件开发群体带来新的活力,改善Sun公司的公众形象,并同时证明Sun可以成为一个开源社会的“良民”。

随着Java的开源,Java的未来似乎变得更加明朗。在未来,Java的应用范围有可能变得更广。Sun董事长麦克里尼在2006年的JavaOne会议上说,“全球有3/4的人还不能接入Internet,这对Java技术伙伴来说是一个巨大的经济机会。瘦客户机、微小的传感器以及其它Java驱动的小装置,可以帮助我们改善人们的生活。他希望Java社区通过他们的工作能够弥合数字鸿沟”。

Sun认为,数字媒体将是Java的下一个重点市场,同时,教育和健康将是未来Java发展过程中的两大重点应用领域。但愿Java的未来真能象Sun宣称的那样,成为我们未来生活的一部分。

6 结束语

Java技术的企业应用旨在提升企业竞争力,所以Java技术受到了企业的欣赏,市场份额是同类技术中最大的。同时,Java开放标准,所以供应商众多。市面上有许多的应用服务器、工具与构件可以选择,从高端的BEA WebLogic、IBM WebSphere等商业软件,到Tomcat、JBoss等开源的免费工具,一应俱全。作为Java技术的初学者,不需要任何花费就能够进行Java企业应用的自我培训,以后若参与Java的商业项目开发,便可以无缝地把软件移植到高端的商业平台上去。

由于免费、跨平台、Java语言本身技术先进,在高校中,Java已经成为许多学科研究、课程和计算的首选语言,用Java做上机作业,一般都是鼓励的。据我所知,北大、清华许多院系的研究生入学考试都可以用Java语言答题。实际上,用Java来完成这些工作,大多数情况下要比用C或其他语言简洁得多,你可以把注意力集中在算法等核心部分,从而获得更高分数。

摘要:该文对比了传统程序设计语言与JAVA程序设计语言,介绍了JAVA程序设计语言的起源,发展,其程序设计的思想及其特点。通过实例具体介绍了JAVA的优点及其发展前景!

关键词:开发环境,面向对象程序设计,分布式,健壮

参考文献

[1]沈军.程序设计方法解析—java描述[M].北京:清华大学出版社,2004.

[2]柳西玲,许斌.Java语言应用开发基础[M].北京:清华大学出版社,2006.

[3](美)Peter van der Linden.Java教程[M].北京:电子工业出版社,2003.

篇4:java程序设计心得体会范文

与传统的教学方法相比,项目教学法将问题或疑难情景融入真实发生的典型性事件中,一个项目即为一个实际情境的描述,学生在完成项目的过程中寻找解决问题的办法,掌握相关知识,并提高自身的综合素质。在JAVA语言程序设计课程中应用项目教学法,可有效提高学生的实践能力,激发学生的学习兴趣。文章针对JAVA语言程序设计中项目教学法的应用进行讨论与分析。

关键词:JAVA;项目教学法;课程教学

【分类号】TP312.1-4

项目教学法是以项目驱动为主的新型教学方法,在JAVA程序设计课程中应用项目教学法无疑是一种新的尝试,通过一个个项目实现教学与研究的有机融合,学生在项目的驱动下探索知识,提高能力,而老师则通过项目驱动对教学方法做出调整与创新,提升自身的教学能力。

一、项目教学法的内涵

所谓项目教学法是通过设计、实施一系列完整的项目促使学生在完成项目的同时提高能力、掌握知识的教学过程。与传统的教学方法相比,项目教学法充分尊重了学生的主体作用,老师选择适当的项目,学生通过分组合作学习的形式共同完成整个项目,在教学过程中老师处理主导地位,而学生则是学习的主体。现阶段很多高等院校都开设了JAVA课程,其应用面广、社会需求量大,但是需要学生通过学习具备独立解决问题的能力,真正做到学以致用。而在JAVA课程教学中融入项目教学法,老师可根据教材内容、学生的实际情况设计与本门课程密切相关的项目,充分激发学生的学习兴趣,在完成项目的过程中培养学生的学习能力,提高其职业素养与专业水平。通过JAVA课程的学习,学生要全面掌握面向对象编程语言的基本思想,为后续其它面向对象的语言打下坚实的基础。

二、项目教学法的实施过程

具体而言,项目教学法在JAVA教学过程中的实施过程包括以下几个阶段:

(一)三阶段组织教学

软件专业通常每学期均会开设一门程序设计语言课程,为了避免学生在学习过程中感到枯燥,或者产生学以致用的紧迫感,项目教学过程中可以将整个教学过程分为基础知识、应用实践及课程设计三个阶段,每个阶段以项目教学为核心选择不同的教学方法,尽量减少理论课程的讲解,增加实践课程,遵循“回避难点、注重实践”的原则。在JAVA课程教学过程中,基础知识阶段的教學重点主要是JAVA基本语法及面向对象编程思想的讲解。采用多媒体演示,并结合案例教学法,案例尽量选择一些与生活比较贴近、实用性与趣味性较强的例子,比如超市销售模拟程序,这些案例演示可视作整个教学大项目中的预热项目。

应用实践阶段主要包括JAVAGUI窗体设计与数据库编程。该阶段编程代码量大大增加,老师要充分结合学生的认知规律,按照界面设计、事件编程、数据库操作等顺序由浅入深进行讲解。该阶段的主要项目任务包括登录窗口设计、系统主界面设计、数据库查询等各应用知识点。该阶段的主要任务是通过与后续课程设计相似功能模块的训练提高学生举一反三、融会贯通的能力。

课程设计阶段则主要是实训部分,其主要作用是检验教学效果,提高学生的动手能力。课程设计尽量做到一人一题,或者一组一题,每个学习小组设计不同的项目,由学生一起合作、共同完成。学生进行课程设计过程中,老师可以随时讲解,对项目要点进行总结,学生在老师的指导下完成课程设计。

(二)学徒制实践教学

在完成JAVA理论课程后的课程设计阶段,可以采用学徒制进行实践教学,即指导学生尝试软件项目开发训练。该阶段要求学生对项目的全部功能要求深入理解,进行编码、测试,并搭建实际的运行环境,该阶段的主要目的是对学生所学知识予以巩固,积累更多的开发经验,形成初步的独立解决问题的能力与自主学习的能力。课程设计是检验老师课堂教学效果的重要途径,可在校实验室或校内实训室模拟企业的开发环境进行项目开发。这个过程中,老师与学生均要进行角色转变,即采用“学徒制”的教学模式进行教学,老师为传统企业中的技术师傅,而学生则是初入岗位的学徒,老师指导学生完成项目制作。注意实施过程中要根据不同的阶段划分不同的教学环节,包括项目建模、模块讲解、辅导答疑、编码实现、项目总结等。其中项目建模需要老师进行详细讲解,帮助学生分析项目需要实现哪些功能,然后再将学生分成若干学习小组,合作完成编码,最终实现软件的功能。在这个过程中,学生可以随时向老师进行提问,老师负责答疑解惑,学生每解决一个问题,均将其记录下来,做好总结,培养学生掌握学习方法的能力。

(三)项目考核

项目教学法中项目考核是非常重要的环节,项目实施效果的优劣需要通过项目考核反馈给老师,不过项目教学法的验收侧重于项目的完成过程而非结果,因此,项目考核需要突出考核的全面性,包括学生的出勤、日常表现、作业、测试结果、项目完成质量、课程能力目标实现情况等;要制定明确、统一、可行的考核标准,提高考核的公平性与公正性;此外,考核形式要多样化,采用生生互评、老师点评等多种评价方法,以评价学生在实施项目过程中所展示出来的分析问题、解决问题的能力,考核形式也可以将传统试卷考核与项目考核互相结合。

三、结语

总之,项目教学法是以项目任务为基础,其更加侧重于学生技术应用能力与职业核心能力的培养,是一种新型的实践教学模式。在JAVA语言课程设计教学中采用项目教学法,可以提高学生的学习兴趣,教学过程中融入项目教学理念与学徒制实践教学模式,可以循序渐进的提高学生的编程能力,激发其编程兴趣,获得事半功倍的效果。由此可见,项目教学法真正体现出了“学以致用”的教学思想,后续要加强项目教学法的研究与实践,以培养出企业真正需要的技术型人才。

参考文献:

[1]张哲,陈桂生.在JAVA语言教学中实施项目驱动教学法的实践探索[J].教育与职业,2014(6):456

[2]宋英超,吕宜忠,沈斌. 运用项目教学法开展工学结合的研究与实践[J].科技创新导报,2014(5):231-232

[3]刘尧猛,陈军.注重创新人才培养的计算机实验教学研究[J].实验技术与管理,2014(5):78

[4]王进,陈建平.反思性教学在JAVA程序设计实验教学中的应用[J].实验技术与管理,2015(1):43

篇5:Java程序员上班那点事范文

自我介绍:您好,我来自大连理工大学,是一个大三学生,所学专业是网络工程。在校三年,参加了不少课余工作,做了一些小的项目,熟练掌握了Java开发方法。大四想出去实习,看到了您公司的招聘信息,感觉自己的技术能力非常合适,就投了简历。希望能通过…….

篇6:java程序设计心得体会范文

通过四个月的学习我才真正发现要学的东西还很多,以前掌握的软件知识少的可怜,很多基本东西都不懂。在达内的培训这期间,通过老师的详细讲解,课堂上老师讲的基本上都能领会,并且在下午的上机练习中反复操作,加深印象。能熟练的操作软件项目开发。更加感到印象深刻的是,一直以来认为我对软件开发的兴趣更是越来越浓,甚至每天睡觉的时候脑袋都在代码,经过调整及时的改变了学习方法,翻书看以前学过的知识,又使我恢复了学习状态。

通过在达内四个多月的培训后,在达内科技的一次双选会上,我以熟练地技术被一家外企录取为一名定制班的学员,经过将近一个月的定制班的学习,顺利通过考核,在此我要对北京达内的全体老师说一声:老师,您辛苦了,谢谢您!

★ 参加java培训心得体会

★ 预备党员培训课心得体会精选

★ 心理培训课心得体会

★ java培训实习总结

★ 成都java培训心得

★ 教师说课培训心得体会

★ 微课制作培训心得体会

★ 学习java的心得体会

★ 智慧教育微课培训心得体会

篇7:java程序设计心得体会范文

经过这几周对Java面向对象程序设计的学习,让我更加了解到Java学习的重要性。

在实验课上,我们完成多个实验,在这个阶段的学习中,我从认识到熟悉,而后到能够自主运用。通过对Java的了解,我发现它确实有很多方便之处,它集抽象性、封装性、继承性和多态性于一体,实现了代码重用和代码扩充,提高了软件开发的效率。对于我们这个专业来说学好Java语言是很重要的,所以在实验的过程中我都尽力理解java编程思想、掌握基本技巧,尽量学到最多的知识。

学习程序设计的基本目的就是培养描述实际问题的程序化解决方案的关键技能,Java面向对象程序设计是一门实践性比较强的课程,在实际中,我们必须把理论和实践结合起来。在实验中,我们理解理论课上的知识,然后运用到实际的操作中,我们必须在现有的理论的基础上,进行实践。多次实验后,也让我看到了现在学习的一个很大弱点:只听不练,永远不会熟练运用;空记技巧,忽略思想,会在多变的习题中十分无奈。

Java思想:Java是一门面向对向语言,他定义一切都是对象

面向对象,就是面对现实;

现实中的一切都是对象,他们有分类,就产生了“类”;

他们有不同,类和类之间的不同,使用类来区分;

同一个类中不同的对象的区别,使用成员区分。所以,面向对象的内部逻辑是分类。

面向对象编程思想就象数学上的一些概念,如:空间、群、环、域等

原始的编程思想就象古典数学,人们只在一个集合上探讨问题,没有系统的方法(即运算)定义,于是仁者见仁、智者见智,这样在一定程度上造成了理论的一种混乱局面,不利于科学的发展。于是近代数学向公理化发展,这是什么意思呢?就是说,人们除了在限定论域(即上面的集合,面向对象也有此概念)外,还在此论域上加进了一套通用的、公认的运算(方法);集合加上集合上定义的运算就构成了数学上的空间、群等,在计算机领域里,就变成为“类”。这种集合上定义了操作的东西利用起来就方便多了,这使得人们讨论问题时都在给定集合的运算能力上下工夫,即有通用性可事半功倍。

面向对象的编程思想就要想近世代数的分析思想,首先要确定“论域”,即工程所涉及到的所有的“对象”,然后要分类处理,把隶属同一类别的对象集合在一起(做成一个集合),定义他们之间的运算性质及可以进行的操作,这样就构建了一个类,当然以后用到这个类的对象时都要通过已经定义了的操作来完成各项功能,这就是常要求的类的“类的成员变量要通过共有函数来操作”。

我想真正的面向对象编程思想不应该是编程思想,应该是面向对象的分析方法才对!

我的理解:

1、将分析过程为抽象的过程:简言之:分成多个小问题(组成部分),直到无法再细;

2、对每个对象(小问题)进行分析,抽象,提取处共同的内容(数据成员和操作方法),3、有相似的对象的,构造基类;再有基类派生出各个确定的对象(小问题);

4、解决问题的过程就是操作这些对象的过程。

我的理解:

与实际生活联系起来。

将要处理的„问题‟抽象成一个或多个„事件‟

找一个地方使用我的智慧

1。了解系统的功能。列举出它的对外接口,即对于使用者来说它有什么功能。把这整个系统作为一个对象。

2。环境。系统不是运行在真空中的,操作系统等外部环境都可能会影响它。所以把环境也作为一个大的对象。

3。内部。在系统的内部,一般都比较复杂,一般的做法是规定一个粒度,枚举出该粒度上所有的物体。比如说人体,如果在器官的粒度上,就有心,肝,肺。而小于该粒度的物体(或称对象),比如血细胞,就忽略,作为其它物体(或称子系统的内部对象)。

4。子系统。不断缩小粒度,沿用步骤1~3,直到不能再抽象为止。

5。无形的物体。一个完整的互连的系统需要许多无形的物体,比如消息等了,一般这样的对象比较难发现。当你发现各个子系统无法正确合作或理顺关系时,试着加入一些辅助对象。一切都是为了让人明白,有能让机器理解的思想

我想分析和抽象能力的高低是个关键,首先要从问题域分析和抽象出准确的对象模型,再根据这些模型进行处理,当然在过程种少不了楼上前辈们说的一些思想和细节,但是别忘了,我们的目的是解决问题,不要为了面向对象而面向对象!

我想分析和抽象的能力对这个问题是个关键。首先要在问题域仔细分析、抽象得到相关的对象模型,然后才是相应的设计。可是面向对象只是我们解决问题一种思想,切不可忘了问题本身,弄成为了面向对象而面向对象了!当然过程种少不了楼上一些前辈说的思想和细节了。

耕具我多年的实践:面向对象包括两个思想:

从大往小想,从小往大做

从难往易想,从易往难做

同意一下观点-----能深入浅出,真高手也!

真正的面向对象编程思想就是忘掉一切关于计算机的东西,从问题领域考虑问题, :-)把问题从大到小都抽象成对象(指针只是对象的使用形式),在设计和编写程序的时候把你设计的对象合理的编排组合就是面向对象编程了。

面向对象,就是面对现实;

现实中的一切都是对象,他们有分类,就产生了“类”;

他们有不同,类和类之间的不同,使用类来区分; 同一个类中不同的对象的区别,使用成员区分。

所以,面向对象的内部逻辑是分类。

对象:

对象是人们要进行研究的任何事物,从简单的一个小分子到复杂的汽车飞机都可以看做对象,只是有时对象要根据人们研究问题的需要来确定,对象不一定是具体的,有时也可以表示抽象的规则或计划。

类:

篇8:浅谈Java面向对象程序设计

1 类和对象

大千世界都是由一个个对象组成的,一张桌子,一幢房子,一个人,一辆汽车……都是对象,正所谓万物皆对象。然而把同一类对象的共同特征抽取出来用来描述这些对象的抽象集合就是类。对象的属性和行为抽象出来分别对应类的成员变量和方法。用个例子来说明,人的共同属性有性别、年龄、身高、体重等,共同行为有吃饭,睡觉,跑步等。把这些共同的属性和行为抽象为人这个类如下:

类集合抽象出来后,在程序中需要使用关键字new来创建对象。程序中一旦对象被创建出来,各类对象的“行为”就可以完成程序的各种功能。

2 封装性

封装性是为了隐藏类内部信息而创建出来的一种机制。其包含两层含义:

1)类是一个不可分割的单位,变量和对变量的操作组成了类。

2)类中必须提供对外联系的方法,但又得尽可能隐藏某些实现的细节。

为了实现隐藏类内部的信息,Java定义了类及其成员访问的四种权限修饰符:public(公有)、protected(保护)、default(默认)、private(私有)。

1)public修饰的成员,可以被程序中所有的类访问,它的访问权限是最低的。

2)protected修饰的成员,可以被类内部,同一包(package)中的类和其子类访问。

3)default修饰的成员,可以被类内部和同一个包中的类访问,其他地方的类都不可以访问,包括其子类。

4)Private修饰的成员,只能被类内部访问,由此实现类内部信息隐藏最重要的关键字是private,它的访问权限是最高的。

3 继承性

继承性是一种由已有的类创建新类的机制,是面向对象程序设计中实现软件可重用性的最重要手段。

3.1 继承的概念

由一个已有的类,通过使用关键字extends定义一个新类,称为新类继承了已有类。新类被称为子类或派生类,已有类被成为父类或基类。用个例子来说明:

3.2 继承的作用

通过继承,子类自动拥有父类的所有成员变量和方法(除构造方法),使得父类的优良特性得以代代相传并且大大减少了子类的代码量。继承是实现软件可重用性的一种重要方式,增强了软件的可扩充性,提高了软件的可维护性。对此我们在设计类时,一般将通用性功能设计在父类中,将特殊性功能设计在子类中。

3.3 继承的原则

1)只允许子类单继承和多层继承,不允许多继承。

2)子类可以增加自己的成员变量和方法。

3)子类可以重定义父类的成员变量和方法。

4 多态性

多态又称动态绑定,是指程序运行时,系统根据参数或对象的实际类型调用其相应的方法。方法的多态性主要有重载和覆盖。

4.1 方法重载

重载表现为同一个类中的多态性,同一个类中可以定义多个名字相同参数个数或参数类型不同的方法。程序在运行时,根据参数个数或参数类型,调用其相应的方法。

4.2 方法覆盖

覆盖又称重写,表现为父类与子类间的多态性。方法重写时应注意相应的原则:

1)重写方法必须和被重写方法具有相同的方法名,参数列表和返回值类型。

2)重写方法不能使用比被重写方法更严格的访问权限。

方法覆盖所表现出来的多态性必须具备以下条件:

1)要有继承。

2)要有重写。

3)父类引用指向子类对象。

5 结束语

面向对象思想的产生是编程语言发展史上质的飞跃,它使问题域中的各种关系明朗化,各类对象形象化。三大特征机制(封装性,继承性,多态性)使程序的设计更加严谨,结构更加清晰。

参考文献

[1]叶核亚.Java2程序设计实用教程[M].2版.北京:电子工业出版社,2007.

[2]马鲁宁.JAVA语言面向对象程序设计的特点[J].黑龙江科技信息,2007(2):52.

[3]笪斌,苏建元.实现面向对象的继承性、封装性和多态性[J].电脑学习,2005(6):18-19.

[4]孙巍.面向对象机制在Java中的运用[J].长春教育学院学报,2007(4):38-39.

篇9:java程序设计心得体会范文

关键词: Java; 面向对象; 程序设计课程; 教学方法

中图分类号:G642 文献标志码:A 文章编号:1006-8228(2013)01-37-03

Pondering over teaching of “java programming designing”

Lan Wenfei, Li Zimao

(School of Computer Science, South-central University of Nationalities, Wuhan, Hubei 430074, China)

Abstract: Java is becoming one of the most popular object-oriented programming languages in developing areas based on Internet and one of the core programming curriculums for universities. In this paper, some Java teaching problems are discussed, such as the choice of teaching materials, the choice of developing environment, filtering of teaching content, using of teaching method, design of the teaching cases. The feasible ideas for above are given.

Key words: Java; object-oriented; programming curriculum; teaching method

0 引言

在Java面世短短的十来年间,Java以其简单易学、安全可靠、面向对象、多线程及平台独立性等许多特点[1-3],被越来越多地推广和使用,它已成为Internet上最受欢迎的开发语言之一。

目前,许多高校已将“Java程序设计”列为程序设计的核心课程之一,肯定了它在培养计算机开发类人才中的地位和作用。

本人已连续多年担任高校计算机专业Java程序设计课程的主讲教师,针对Java教学中存在的问题,积累了一些教学经验,希望能与同仁共同探讨。

本文就Java语言的教学,包括教学时数的安排、教材的选择、开发环境的选取、教学内容的筛选、教学方法的运用、教学实例的选用等方面[4,5],给出了一些自己的做法,实践证明,这些方法是可行的。

1 教学准备环节

首先讨论Java程序设计课程教学的准备工作。

1.1 合理安排教学时数

我们授课的对象是软件工程实验班本科学生,该课程安排在大一第二学期,鉴于学生在大一第一学期已具备基本的计算机原理及专业基础知识,这样来安排教学计划是比较合理的。考虑到学生在大一已具备C/C++高级语言程序设计的基础,而多数学生在国内修完本科课程后会选择到国外继续深造学习,所以Java语言程序设计课程的教学设计必须考虑全方位,此外Java语言衍生自C++,它的基本语法同C语言,而其面向对象的基本特征同C++。鉴于此,我们将Java程序设计课程的上课时数设置为48个授课学时,18个实践学时,这样设置是比较合适的。

1.2 精选教材

选择合适的教材,是保证有效教学的重要手段之一[6]。合适的Java教材, 应具有较好的知识覆盖面,难度适中,适合学生的具体情况[4]。由于我们讲授的对象是实验班学生,需要使用全英文教学,此外,他们已具备一定的面向对象程序设计基础,所以诸如《Thinking in Java》、《Objects First with Java》、 《The Java Programming Language》等经典书籍都适合作为该课程的教材。

选择国外经典教材,能保证我们的教学内容与国外接轨[7]。学生在阅读英文原版教材的同时,可同时参考对应的中文翻译本,能使学生加强对所学知识的理解。

1.3 选择合适的实验环境

由于JDK(Java Development Kit)是命令行的编程环境,需要用编辑器建立Java源程序。如果选用Windows自带的记事本notepad来编辑程序,首先程序中若出现语法错误是很不容易被发现的;其次每次必须打开cmd窗口并输入一大堆命令,如编译命令、运行命令等;再就是对于applet小程序还要自编html文件,非常麻烦。但是,如果选用超智能、傻瓜型的集成开发环境,如JBuilder、NetBeans,因其耗内存,所以速度慢,慢到不能忍受;更重要的是不利于入门级的学生掌握Java的基本语法。因为Java上机实践的一个重要训练内容就是熟练使用Java编译器(java.exe)去检查语法错误,并能修改错误,这样做的目的是使学生能较快地掌握Java语法。

本文简要介绍一种既简单又方便入门者使用的Java编辑器TextPad。TextPad作为Java编辑器需要做简单配置,首先把TextPad装上(先装JDK),安装完毕就可按下面的方法配置:在菜单的Configure中选择Preference,选择Tools,点add下拉菜单,选择Java SDK commands。之后Tools中多了3项:Compile Java、Run Java Application、Run Java Applet。从这一点来看它确实比其他的Java编辑器更容易配置,如EditPlus。

按上述方法配置TextPad Java编辑器后,还可适当优化TextPad Java IDE环境,使它更适合编写、执行Java程序。优化环境方法在此省略,有兴趣的作者可参见文献[2]。

2 教学内容

根据多年的Java程序设计课程教学经验,我们认为讲授该课程的内容主要包括三个方面:一是Java语言基础;二是Java语言的新特性;三是在讲授上述内容时穿插介绍JDK类库的常用类。

Java语言基础包括:数据类型、表达式、基本语句、类和对象、继承和多态、异常处理机制、小程序、图形用户界面设计、输入/输出、多线程、网络编程和数据库编程。考虑到我们面授的学生已经掌握了C++面向对象程序设计基础内容,而且Java教学内容偏多、教学时数较少[8],因此对于衍生自C++的Java语言,它和C++类似的部分,包括数据类型和表达式、基本语句、类和对象、继承和多态及异常处理机制等,应讲授较少的学时数;而对于Java语言特有的部分,如小程序、图形用户界面设计、输入/输出、多线程、网络编程和数据库编程,则应讲授较多的学时数。由于篇幅有限,在此省去对每个章节学时数的具体编排。

1996年Sun公司发布了JDK1.0,在短短的十年时间里,JDK从1.0版本升级到6.0版本。特别值得一提的是2004年发布的JDK5.0版本,它在旧版本的基础上增加了一些非常有意义的新特性,比如,泛型编程、增强的for循环、自动装包/拆包、类型安全的枚举、可变参数和静态导入等,使用这些特性有助于我们编写更加清晰、精悍、安全的Java代码。为了与时俱进,让学生掌握较新的Java特性,我们认为很有必要在课堂上向学生传授新技术,以拓宽学生的知识面。

一方面为了节约有限的学时数,另一方面为了鼓励学生在课余积极使用、查阅JDK帮助文档,我们不安排专门的章节介绍JDK类库的使用,而是在讲授Java程序例子时,将重点介绍一些重要类的使用,比如,在讲授图形用户界面这一章时,则会讲授一些重要包的使用,包括java.awt、java.awt.event、java.applet、javax.swing等,概述这些包的类层次结构。这样做既节约了时间,也使学生通过对例子的学习较好地掌握了一些常用类的使用。特别需要说明的是,容器类很重要,这些类在程序设计中会普遍使用到。

总之,在教学内容的选择上,我们推崇简化的原则,忽略一些不常用的知识点,如带标号的跳转语句、复杂的表达式运算规则、嵌套类等,这样做既节约了课时,也能充分引导学生编写简单、可读性好的程序代码[4]。

3 教学方法

充分利用多媒体教学设施,为上课讲述的例子做编译、运行演示。对于学生编程时常常出现的错误,在编辑程序时可设置类似的错误障碍,让学生修改错误,以杜决今后再出现此类错误,此外还能现场教会学生如何使用JDK TextPad开发环境。到了学期的中后期,鉴于学生们已基本掌握Java的语法,上课可适当减少演示例子的次数。

对于Java基本类库的授课,根据多年的Java开发经历和教学实践,我们认为学生应该对基本类库有个整体了解,要重点掌握 Java类库中的Java.lang和Java.util两个包,特别是容器类的应用是难点,需要结合实际例子阐述。这两个包提供的是Java编程要用到的基本类,学生需要清楚这些类或接口的继承关系、主要功能[5]。我们在授课时适当介绍JDK API文档的使用和阅读,提倡使用最新版本的英文API文档;在教学中注意总结相关类的联系和区别,如String和StringBuffer在使用上的区别,以及FileInputStream和RandomAccessFile在用于读文件时的区别。

在实施Java教学时,应注意Java和C++的区别。Java和C++都是面向对象的语言,而且Java衍生自C++,在基本语法及面向对象特征方面均有很多相同之处。比如,我们在讲授Java的数据类型、常量、变量、表达式、语句、类和对象、继承和多态等内容时,应着重指出它和C++的区别,简略细节知识。这样既能节约课时,也能使学生快速掌握Java的基本语法和面向对象特征。

在学生掌握了Java的基本语法及面向对象特征的基础上,我们会考虑将重点放在图形用户界面、多线程、网络编程和数据库编程上,以使学生能进行一般的Java应用编程。

如果课堂教学时数比较宽裕,则可介绍Java和UML、Java和设计模式相关的知识,强调软件开发新技术,特别是对于软件工程专业的学生,更应该这么做。

4 教学实例

可将程序例子分为非算法型和算法型两种类型。在介绍Java基本语法时,我们提倡用非算法型的例程,利于学生对例子程序的阅读和理解。而在讲授计算机典型问题,如排序、查找、递归时,则使用算法型的例程,以加强学生对一些典型问题的掌握。

在选择例程时,以例程中是否含有JDK类作为筛选原则,目的在于能让学生掌握更多的JDK类。

此外,在期中阶段,可选择一两个游戏项目作为综合的例程,如用于Java学习的Robocode游戏实验项目。Robocode是IBM的一位工程师MatNelson用Java语言所创造的机器战斗仿真引擎,是一款专门为程序员设计的游戏半成品。利用该引擎,只要编写几行简单的代码,就可以创造出一个在屏幕上四处疾驰的机器人坦克,参加游戏对战[4]。这样能增强例子的实用性和趣味性,调动学生学习Java的积极性。在此基础上,再布置一个游戏项目,作为学生在课余时间的练兵题。

5 结束语

衍生于C++的Java语言,作为一种面世较晚的语言,它集中体现和充分利用了若干当代软件技术新成果,如面向对象、多线程、平台无关等[9],使其拥有众多优秀的特性,从而成为面向对象软件开发的首选语言。

出于“Java程序设计”这门课的重要性和教学中存在的问题,本文提出了“Java程序设计”教学实施的诸多方面,并在作者施教的班级进行了多次实践,实践表明,上述教学思路是可行的,能在一定程度上提高教学效果。

下一步我们将在“Java程序设计”实践教学和后续课程改革方面进行实践探讨。

作者多年从事Java教学和Java软件开发工作,积累了一些教学经验,本文将它提练总结,希望能给Java同仁一些启示。

参考文献:

[1] 秦学礼,汪迎,郑淑红.Java程序设计实用教程[M].清华大学出版社,2012.

[2] 刘正林等.Java技术基础(第2版)[M].华中科技大学出版社,2004:30-40

[3] 印旻.Java语言与面向对象程序设计(第二版)[M].清华大学出版社,2007.

[4] 叶恒舟.Java程序设计教学探讨[J].科技信息,2007.1:23-25

[5] 李纯玉,胡丽娜.Java语言程序设计教学中的几点思考[J].科技信息,2007.2:10-13

[6] 张延军,乔德军,温炎耿等.构建Java教学体系[J].邯郸学院学报,2007.17(9):41-44

[7] 蓝雯飞,郑波尽.高级语言程序设计课程建设思路[J].计算机教育,2012.6:30-32

[8] 陆萍.浅议Java程序设计教学改革[J].电脑知识与技术,2007.27:32-35

上一篇:小学生集结号观后感下一篇:草原承包(政府发48号)