JAVA编程语言
JAVA编程语言(精选11篇)
JAVA编程语言 第1篇
(1)简单性
Java继承了C/C++的语法,丢弃了其中不常用又容易引起混淆的功能,特别是非面向对象的内容,取消了C语言的结构、指针、#define语句、多重继承、全局变量和函数、GOTO语句、操作符重载和自动类型转换等等。
(2)面向对象
Java是一种纯面向对象的语言,具有封装、继承和多态的特性,无全局变量或函数,可以被用于面向对象这种现代软件工程。
(3)分布式
Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。因此,Java应用程序可凭借URL打开并访问网络上的对象,象本地一样。
(4)解释型
Java写成的源代码需要被编译成高阶的字节码,其与机器架构无关。然后,这种字节码在任何Java的运行环境中由Java虚拟机解释执行,保证了Java与平台无关性和可移植性。解释执行与及时编译技术的完美结合,提供了相当高的运算性能。
(5)多态的支持
Java是一种非常注重对象形态转换的语言,所以在编译时期就会做形态转换检查,在执行时期,Java也会做一些形态上的检查。
(6)垃圾收集和异常处理
由于Java垃圾收集器会做自动的垃圾收集,这里的垃圾指一些不会被再使用的对象,所以程序设计者不需费心,内存会被自动地管理,Java本身提供了许多面向对象的异常(Exception)处理,所以程序在执行时期所发生的错误,都可以由程序自己来处理。
(7)安全性
Java设计时对系统的安全,特别是网络安全做了周密的考虑。通过字节码验证、内存调用方式、资源使用权限等进行多层次的安全管理。Java被认为是在任何系统上最安全的应用程序之一。
2 Java的技术平台
Java不仅仅是一种语言,更重要是一种区别于传统系统,遵循“网络就是计算机”信条的平台技术。Java平台将面向对象系统扩展成包括程序和数据的网络计算机,而这个平台的核心就是Java虚拟机。Java虚拟机的概念和实现使Java平台成为万能开发平台,实现了Java程序“编写一次,到处运行”。Java虚拟机是一种抽象化的计算机,可以在其上面执行Java的字节码。其本身的设计原则是“小而简单”,目的是为了尽可能在所有机器上都能安装。这样的精简原则,使得其能够在现有的各种平台上都可以顺利执行,适合各种网络的环境。Java的技术平台的工作原理:第一步Java用一个编译器将源程序代码(.java)转换成可执行程序(.class),Java编译器生成的是独立于处理器结构的字节代码。第二步字节代码用一个Java虚拟机来执行,JVM是理想化的Java处理芯片,通常是在软件上实现而不是在硬件上实现。
3 Java语言和C++语言的比较
C++和Java都属于杂合语言,允许采用多种编程风格。C++是一种杂合语言,支持与C语言的向后兼容能力。由于C++是C的一个超集,所以包含的许多特性都是C语言不具备的,这些特性使C++在某些地方显得过于复杂。但在Java中,设计者觉得这种杂合并不象在C++里那么重要。Java保留了C++的语法,但忽略了资源引用、指针算法、操作符重载等潜在危险,是C/C++的简化版本。所以Java虽然是从C++衍生出来,Java和C++之间仍存在一些显著的差异,这些差异代表着技术的极大进步,证明了Java是一种比C++更优秀的程序设计语言。从面向对象(00)程序设计的角度,论述一下Java和C++的重要差异:
(1)单根结构
在C++中,可在任何地方启动一个新的继承树,所以最后往往看到包含了大量树的“一片森林”。在Java中,采用了一种单根式的分级结构,因此所有对象都是从根类统一继承。尽管这表面上看似乎造成了限制,但由于每个对象肯定至少有一个object接口,所以往往能获得更强大的能力,Java的强制单根结构更好地符合了面向对象(00)语言的标准。
(2)取消指针
Java和C++用new创建一个对象的时候,例如:Strings=new String(″object″);都会获得一个对象引用。然而,C++对象引用在创建时必须进行初始化,而且不可重定义到一个不同的位置。但Java对象引用并不一定局限于创建时的位置。可根据情况任意定义,这便消除了对指针的部分需求。指针通常被看作在基本变量数组中四处移动的一种有效手段。在C++里,必须用大量采用指针指向任意一个内存位置,这同时会使其变得不安全,也是Java不提供这一支持的原因。在Java里,没有象C++那样的指针,Java允许其以更安全的形式达到相同的目标。Java没有全局函数,只有类,因而可以用传递的方式实现对象的引用。
(3)自动垃圾收集机制
Java中没有C++“破坏器”,变量不存在“作用域”的问题。Java有个finalize()方法是每一个类的成员,在某种程度上类似于C++的“破坏器”。但finalize()是由垃圾收集器调用的,而且只负责释放“资源”,如打开的文件、套接字、端口、URL等。如需在一个特定的地点做某件事情,必须创建一个特殊的方法,并调用它,不能依赖finalize()方法。由Java不支持破坏器的概念,针对类内的基础类以及成员对象,Java采用垃圾收集器自动清除,所有对象都会被当作“垃圾”收集掉。自动垃圾收集意味着在Java中出现内存漏洞的情况会少得多,但也并非完全不可能。若调用一个用于分配存储空间的固有方法,垃圾收集器就不能对其进行跟踪监视。而在另一方面,C++中的所有对象必须用finalize()方法破坏,然而,内存漏洞和资源漏洞多是由于编写不当的finalize()造成的,或是由于在已分配的一个块尾释放一种资源造成的。Java垃圾收集器是在C++基础上的一种极大进步,使许多编程问题得以解决。
(4)异常控制机制
Java的异常规范比C++的出色得多。Java中的所有异常都是从基础类Throwable里继承而来的,所以可确保得到的是一个通用接口。丢弃一个错误的异常后,不是象C++那样在运行期间调用一个函数,Java异常规范是在编译期间检查并执行的。被取代的方法必须遵守那一方法的基础类的异常规范,可丢弃指定的异常或者从那些异常衍生出来的其他异常。这样一来,最终得到的是更为“健壮”的异常控制代码。
(5)单一继承
Java中的继承具有与C++相同的效果,但采用的语法不同。Java用extends关键字标志从一个基础类的继承,并用super关键字指出准备在基础类中调用的方法,与当前所在的方法具有相同的名字。然而,Java中的super关键字只允许访问父类的方法,亦即分级结构的上一级。通过在C++中设定基础类的作用域,可访问位于分级结构较深处的方法,亦可用super关键字调用基础类构建器,所有类最终都会从Object里自动继承。和C++不同,Java不存在明确的构建器初始化列表,但Java编译器会强迫在构建器主体的开头进行全部的基础类初始化,而且不允许在主体的后面部分进行这一工作。其语法如下:
Java提供了一个interface关键字,其作用是创建抽象基础类的一个等价物。在其中填充抽象方法,且没有数据成员。这样一来,对于仅仅设计成一个接口的东西,以及对于用extends关键字在现有功能基础上的扩展,两者之间便产生了一个明显的差异。不值得用abstract关键字产生一种类似的效果,因为不能创建属于那个类的一个对象。一个抽象类可包含抽象方法,并不要求在其里面包含什么东西,但其也能包含用于具体实现的代码。因此,其被限制成一个单一的继承。通过与接口联合使用,这一方案避免了对类似于C++虚拟基础类那样的一些机制的需要。为创建一个实例的一个interface(接口),需使implements关键字。其语法类似于继承的语法,如下:
4 结束语
尽管Java以C++为基础,但Java是一种更纯粹的面向对象程序设计语言,面向对象编程(OOP)具有多方面的吸引力。Java语言不仅可以用来开发大型的应用程序,而且特别适合于Internet的应用开发。
参考文献
[1][美]John Zukowsi.Java2从入门到精通[M].北京:电子工业出版社,2000.
[2][美]David Flanagan.Java in a Nutshell:A Desktop Quick R-eference[M].美国:O′Reilly&Assoc,1997.
[3][美]Patrick Chan和Rosanna Lee.The Java Class Libraries:An Annotated Reference[M].美国:Addison-Wesley,1997.
JAVA编程语言 第2篇
1990年代中期以前,美国的计算机编程入门教育以Pascal为主。我的一位美国程序员朋友至今还怀念他与Pascal为伴的高中年代。到了1990年代中后期,由于ANSI C语言“纠正”了早期C语言的一些不适合编程教学的问题,因此成为很多美国高中和大学编程入门课的教学语言。1998年,美国指导编程教学的一个协会推荐将C++作为入门教学语言,在当时引起很大的反响,认为是编程教育方面的一个重要进步。但遗憾的是,C++非常复杂,而当时C++语言的教育体系又非常不成熟,因此很多地方的教学方法不得当,把学生迅速拖入无边无际的语言细节当中,引起了学生痛苦的抱怨。大约经过两三年不成功的实践之后,在本世纪初,美国计算机教育界普遍接受Java作为编程入门语言。此后在很短的时间里,Java迅速成为美国高中和大学里的首选编程教学语言,老师教得轻松,学生学得甜蜜,所以这个局面一直持续到现在。
而在中国,BASIC语言及其变体一直到1990年代中期都还是“算法语言”课程的主要教学内容,充分折射出当时中国计算机教学与工业应用之间的脱节。只是到了1990年代后期,C语言才确立了在中国工科计算机编程入门教育中的主流地位。到现在为止,大部分工科学生都“必修”“C程序设计语言”这门课程。不过事实上,根据我的了解,这门课程的总体教学质量相当糟糕,大部分学生可以说是满怀希望而来,两手空空而去。在这种情况下,中国高校计算机编程入门教育已经开始悄悄向Java过渡了。据我所知,有一些名校已经开始将Java设为编程入门课程,并且认为这是与国际接轨进步标志。
在我的朋友圈子里,大多数真正的一线开发者和技术领导者,对于将Java作为入门教学语言的“发展方向”都持质疑态度。他们中很多人目前主要的工作都集中在Java上,因此这种态度并非来自所谓语言宗教情绪,而是来自他们招聘和实际工作中的感受。他们发现,只学习Java、C#、VB等“现代”编程语言的学生,精于拿来主义,长于整合和快速开发,思维活跃,生产效率高,让他们来做直截了当的、有章可循的、非研究性和非创新性的工作比较合适,但是基础不扎实,对计算机系统的理解薄弱,处理细节和矛盾的能力不足,一旦他们熟悉的套路用不上,则缺少自主分析问题、解决问题的知识、能力和经验。
今天看到两位教授的“上书”,才知道原来他们也有同感。只不过这两位教授说的更直白,直接反对将Java作为入门编程语言,而是冒天下之大不韪,公然号召开历史倒车,要求退回到C、C++、Lisp和Ada去。
我是支持两位教授的。我认为,Java、C#、VB和其它虚拟机之上的语言都不适合作为专业程序员的入门教学语言。在中国还非常缺乏具有创新和独立解决问题的高水平程序员的局面下,我们应该认真做好的事情是努力提高C/C++的教学质量,而不是图快活转向Java。
教学语言的选择是至关重要的事情。作为大多数学生第一种需要认真学习理解的编程语
言,教学语言将会成为他们中间很多人的“编程母语”,深深地烙印在学生的思维方式中。这个编程母语要帮助学生破除计算机和软件的神秘感,建立对于程序的基本认识和对计算机模型的最初理解。在后续专业基础课和专业课程的学习中,这门编程语言应该作为主要工具贯穿始终,帮助学生认识计算机系统,掌握算法与数据结构技能,熟悉操作系统概念,理解编译原理知识,理解软件抽象及软件设计的基本思想,完成一定量的课程及课外项目实践,建立正确的软件开发实践习惯。不但如此,这种教学语言必须是工业界的主流语言,否则学生学非所用,学习动力无法保证。
按照这个标准来衡量,Java适合于作为主要的编程教学语言吗?我不这么认为。首先,我承认Java在教学上有一些优势,比如其开发环境和工具支持非常成熟,有助于培养学生正确的编程习惯;Java是当今第一工业主流语言,标准类库非常全面,可以迅速地开发具有实际用途的程序,有助于激发和保持学生的兴趣;而在数据结构、算法、编译原理的教学方面,Java也毫不落于下风,在软件抽象设计(面向对象)方面,Java还有着明显的优势;特别是在并行编程的教学方面,Java 1.5 concurrency包提供的优势是压倒性的。尽管有如上这些优势,但Java作为教学语言存在着一个致命的缺陷,即它是一个虚拟机语言,这一点就足以把它从教学语言的名单上去掉。
作为一个虚拟机语言,Java对开发者隔绝了下层的真实系统,从而构造了一个近乎完美的环境,在这个环境里,世界上只有一种机器,一个操作系统,内存是无限的,所有的机器都具有相同的字节顺序和一致的类型约定,为了设计的优美而牺牲速度永远是正义行为,从反射到运行时自动加载,从完备的容器类到统一字符编码,一大堆漂亮的功能都可以不费吹灰之力唾手而得。要是这个世界上每台计算机都是一个Java机器,每项编程任务都可以在这样一个近乎完美的环境中开发,那毫无以为,Java是最合适的编程教学语言。但是事实上呢?这样一个完美的环境是Java力量的源泉,但这却不是真实的世界。在真实世界里,我们可能面对非常原始的环境,苛刻的运行时限制,复杂多变的系统环境,令人窒息的细节魔鬼,要对付这些东西,需要开发者具有在应对复杂性,自己构造环境,在诸多限制条件下寻找解决方案的能力。而这种能力,被无数人无数次地证明是软件开发、特别是软件创新的核心能力。把Java作为教学语言,恰恰会导致这种核心能力的缺失。除此之外,如果耐心观察的话,不难发现,几乎在任何软件领域里的创新性成果都首先是由C/C++语言实现的,原因很简单,Java是站在C/C++基础之上的,只有C/C++先把大路趟开,Java才能够顺势而上。
相反,尽管C/C++语言作为教学语言有很多的不足,比如不同环境下开发模式差异大,细节繁多,开发效率低,容易犯错,测试和调试困难,学习者难以保持动力,等等,但是这些问题都可以解决。而C/C++的关键优点,是能够让学习者在真实的计算机抽象上、在大量的细节和矛盾中学会思考,学会解决问题,学会了解真实的系统,知轻重,明生死,从而建立核心能力。掌握了C/C++语言,再去学习和理解Java、C#、Python、Ruby和其它语言,就比较容易达到更高的境界。反之,如果习惯了舒舒服服躺在完美世界里当阔少,那就很难有勇气面对真实的世界。当然,很多开发者认为,现在更重要的能力是理解业务、整合现有资源的能力,而不是处理底层细节的技术。这种说法放在个人身上没有问题,但是不能成为整个编程教育的指导思想。我们需要各个层面上的人才,精通业务和设计的架构师固然很重要,但能够在底层作出创新成果的编程高手实际上更为稀缺和珍贵,很多时候也能够创造更大的价值。而且,更重要的是,一个精通系统知识的开发者在往上走的时候不会遇到大的障碍,而一个只知道拼装组合的“高级设计师”,往往连往下看的勇气都没有。
Java的另外一个问题,是其所倡导的繁琐设计风格,一个对象套一个对象,一个对象叠一个对象,概念之间彼此横七竖八地互相依赖,人为制造出一大堆貌似精美、实则累赘的所谓设计。这个问题我已经批评过多次,并且相信这股歪风一定会最终被人们抛弃,Java最终会归于质朴。但是在这一天到来之前,Java对于初学者来说,很可能蒙住他们的双眼,使他们看不到软件设计中最可贵的简单性和优美的统一,体会不到数据和程序的统一。在这一点上,C表现的非常好,而C++如果教学得体,可以做的更好。
当然,这并不是为现在的C/C++教学辩护。恰恰相反,从我了解的情况来看,目前普通高校的C/C++教学质量非常令人担忧。学生学不会,而且越学越没有兴趣,老师则感到教起来很棘手,迫于现实情况往往选择敷衍了事。反而是教Java,无论如何学生还能学到一点东西,对就业也有直接的帮助。至于学生的核心能力确实,发展后劲不足等问题,就让他们在现实工作中自己解决吧。坦率地说,这种想法也很有道理。不过,从教学角度来说,我认为老师们还是应该积极考虑如何提高C/C++的教学质量。毕竟学生阶段是十分宝贵的,基础不在这个时期夯实,将来想弥补,就算不是完全不可能,也将付出十倍的代价。本着对学生职业生涯的负责态度,还是应该帮助学生达到这个阶段应该达到的目标。在两位教授的公开信里,也充分表达出这个意思。
JAVA编程语言 第3篇
关键词:计算机;软件开发;JAVA编程;语言分析
【中图分类号】TP312.2
引言
随着计算机科学技术的提升和国家经济的飞速发展,互联网技术也在不断更新和完善。JAVA编程语言作为计算机软件开发中最基拙的语言,得到了软件开发人员的广泛应用。基于JAVA编程语言的计算机软件开发能够保证软件完成后的安全性与可靠性,而且编程过程较为简便、可操作性强,能够满足各大平台的使用需求。早期JAVA编程语言主要是以一种嵌入式的方式构成计算机软件的组件,逐步过渡到以移置性的方式置入软件中。随着互联网技术的迅猛发展,JAVA编程语言也逐步成为计算机软件编程的主流语言。
一、JAVA编程语言的含义
随着计算机信息技术的发展,计算机软件编程语言如雨后春笋般冒出,推动了计算机编程语言的多元化发展,但是就大部分编程语言的使用情况来看往往不尽如人意,主要体现在编程语言繁琐、复杂,而且缺乏良好的可操作性,不能满足多平台的综合应用。JAVA编程语言相对而言更为简单明了、在进行软件开发的过程中操作极为简便,同时也能够满足多操作平台的使用需求,也能够在网络运行的状态下进行软件程序的编制。
二、JAVA编程语言的基本特征
(一)、面向对象
计算机软件编程技术的不断发展与更新,使其应用范围更加广泛,应广大用户的使用需要,一个全新的编程思维理念快速产生,面向对象的使用,对于整个计算机软件编程技术来说有很大的促进作用,面向对象方法使计算机软件编程技术可以更好的对客观元素进行基本的分類工作,通过成员变量及参数的封装方式等方法来进行元素基本特性的及时,JAVA 语言可以充分利用面向对象方法的优点,使每个计算机应用软件的特点都达到用户的使用要求。
(二)、平台独立
这个特征主要是针对JAVA虚拟机,首先是编译为中间码后再装载与校验,被解释之后就转变为机器码被执行,就是这种特征就让JAVA可以避免特殊平台环境要求,在编写只要系统可以支持JAVA虚拟机,也就能够运行JAVA程序。以 JAVA7.0为例,通过升级类加载class loader架构的应用和Better type inference这一卓越的类型推断的应用,JAVA7.0 在提升系统独立性的同时也促进了自身运行速度的有效提升。
(三)、可移植性
JAVA 编程语言的可移植性能比较好,能够在 Web站点上灵活地下载应用程序并使用。用户能在 Web 网页上下载需要的程序,包括图像、图像和 HTML 等,网络浏览器就会在 Web 网页上组织这些片段,方便用户查看。Java 编程用户能够确保 Web 运行的程序运行在任何计算机上。还有,JAVA编程语言对基本的数据类型长度进行了严格的规定。相对于其他的编程语言来说JAVA编程语言能够更加方便计算机用户使用网络资源,包括各种图片、视颂资料等,这个特点对于计算机的远程资料传输有很大的帮助,这就是JAVA编程语言的可移植性。
(四)、安全可靠性
运用JAVA编程语言,可以实现加密技术,JAVA软件以秘钥技术为基础实现了一些确认技术。JAVA程序显示器也可以根据不同情况产生不同的改变,当JAVA显示器产生改变时,可以尽快切断对外界数据的访问,进而更有效地防止了数据的丢失和破坏,提高了数据的安全性,避免数据被病毒侵蚀而造成不可挽回的损失。因此,计算机软件开发中的JAVA编程语言更加安全可靠。
三、基于计算机软件开发的JAVA编程语言分析
JAVA编程语言因为其独有的优越性因此被许多平台的软件开发者所青睐。同样JAVA编程语言在计算机软件开发中也有重要作用。以下从几个方面出发,对基于计算机软件开发的 JAVA编程语言进行分析。
(一)、JAVA Database Connectivity技术
JAVA Database Connectivity (JDBC)是一种数据库的连接技术,在计算机软件的设计活动中主要用于对数据库的规范,能够在不同的数据库之间建立信息交互的通道,保证数据库的数据输出保持一定的程序接口,也就是实现了数据库的统一访问和统一管理。在具体的计算机软件设计活动中设计人员经常使用这一技术对软件内部不同的数据库进行规范,能够极大的提升数据库的运行速度和质量。同时JAVA Database Connectivity还为PC软件的开发提供数据库查询和数据库更新的功能。这些功能的存在改变了计算机软件设计的数据库管理形式,极大的提升了计算机软件设计的质量和效率。
(二)、JAVA Annotation技术
这种技术属于一种特殊元数据语法;JAVA Annotation技术能够被添加进 JAVA代码之中。而且其中的参数与变量均能够被有效标注,说明这种标签注解能够被反射的。在计算机软件开发中应用JAVA Annotation技术能够合理连接JAVA编程语言中相关的变量、属性以及参数,同时还能够确保连接机制具备有效整合方式。并且应用JAVA Annotation技术技术还能够给开发人员提供不属于程序的数据。比如开发计算机软件者在编写代码过程中,经过编译器就能够阐明一些特殊的禁止情况,还能够有效分析错误数据。JAVA Annotation技术中的Java Beans属于一项重要技术,这种技术具备开发平台外的特征,并且属于独立的,所以在开发计算机软件过程中,就能够有效提升安全性与一致性,所以在开发计算机软件过程中应用比较广泛。它具有独立于开发平台之外的特性。
(三)、Remote Method Invocation技术
该技术所用程序可分布式就可以得到实现,另外一个方面,经过调用JAVA编程语言中对象和类,并且运行客户机和服务器间的程序,将这种技术应用到程序开发中,可以有效整合资源信息,并且可以分布式运用调试不同的小程序,促使程序的完整性和安全性得到保证。
四、JAVA语言未来前景
因为JAVA语言具有诸多优点,故其具有美好的应用前景,其未来发展定会和互联网需求相互绑定。JAVA语言应用前景包括以下几方面内容:面向对象(全部) 应用的开发;在软件工程中用于开发实现、系统设计、需求分析及维护;中型及小型多媒体系统的设计过程和实现;用于消息传输系统的实现;在分布计算交易的管理应用,Internet系统管理功能模块设计过程,主要包含 Web 页面动态设计、网站信息管理及交互操作等内容的设计;WEB服务器后端和各种数据可连接管理器;Internet系统管理功能模块设计、Internet上基于WEB及JAVA的应用开发。数据库、用户及网络的安全扫描等诸多系统;应用及网络管理系统;其他应用类型程序设计之中。
结束语
随着计算机技术的不断发展和计算机软件开发水平的不断提高,JAVA编程语言在计算机软件开发中的应用范围也越来越廣,计算机应用软件的不断更新给计算机语言带来了极大的挑战,JAVA 语言下计算机软件编程既可以顺应计算机应用软件的编写需求,同时可以完善计算机软件的编写与开发过程,提高技术人员的工作效率与工作质量,给我国的计算机应用软件的开发与发展提供了一个很好的发展平台。相关的研究开发人员需要通过努力,促使JAVA语言将更多的功能支持给提供出来,深入的分析编程技术,对其不断的完善,以便跟上时代发展的脚步,满足人们日益多样化的需求。
参考文献
[1] 程蓉蓉. 基于计算机软件开发的JAVA编程语言分析[J]. 宿州教育学院学报,2015,01:55-56+58.
[2] 孙鹏. 基于计算机软件开发的JAVA编程语言分析[J]. 电子制作,2015,10:94.
[3] 赵相宇. 以计算机软件开发为基础探讨JAVA编程语言[J]. 通讯世界,2015,14:221.
[4] 刘芳. 计算机软件开发中JAVA编程语言的应用价值[J]. 电子技术与软件工程,2015,13:253.
职校Java语言教学浅析 第4篇
1 职业院校学生学习java存在的问题
1.1 基础知识薄弱
我们知道职业院校学生入学成绩比较低, 很多同学的英语和数学的基础差。JAVA程序设计中的成员变量、方法、事件处理等都是由英文单词构成的。这就使部分学生会因为怕英文, 而对java的学习产生抵触情绪。
1.2 学习缺乏上进心、求知欲, 厌学成风。
由于职业院校学生的学习不像高中生那样有升学的压力, 也没有良好的学习习惯, 宽松的学习氛围使他们很多学生缺乏学习的主动性和积极性, 这使他们上课容易走神, 注意力不集中, 失去了消化和理解所学知识的必经过程, 进而影响了java学习的效果。
2 端正学生思想, 激发学习热情, 培养学习兴趣
2.1 端正学生思想, 消除顾虑
所谓磨刀不误砍柴工, 思想是行动的指南, 态度决定行为。对上述的种种困难, 首先要端正学生思想, 让学生明白java所涉及的英语知识并不难, 大部分是常见的英语单词, 且涉及的单词量不多。这样就可消除学生的疑虑。对学生的学习方法给予指导, 坚定学生学习的信心是必须要做的工作。
2.2 培养学生兴趣, 激发学习热情
兴趣是学习的催化剂, 只有使学生培养起浓厚的学习兴趣, 才能使其真正熟练掌握所学的知识和技能。因此, 在教学中, 要从培养学生的兴趣入手, 选择一些有趣的、贴近生活的、有实际意义的程序, 培养学生的兴趣, 激发学习热情。
3 java教学见解
3.1 教材的选取
“磨刀不误砍柴工”一本好的教材能够很好地方便教学, 使教师上课轻松、学生受益良多。书店里的java教材虽然种类繁多, 但是教材相对滞后, 课本知识与实际发展相脱节, 实际例子比较少。很多书没有介绍java可视化编程的软件, 如My Eclipse、JCreator等, 这也是教材的一个缺点。所以, 在选择教材上, 最好多参考案例教程教材, 同时要选择好相应的参考书目。
除了选择优质的教材外, 还要给学生推荐良好的网络学习资源。网络资源可以为学生提供开放的学习形式, 开拓学习视野, 有利于学生自主学习。可以给学生提供比较好的java网络学习资料, 比如java论坛、java精品课程网站等等。
3.2 java开发工具配置的重要性
在教学中, 教师往往使用已经配置好的java开发工具来给学生使用, 却不知道这样的缺点。这样会造成一个严重的问题, 就是学生的动手能力得不到真正的提升。因为对一门编程语言要真正了解, 不靠自己的动手实践是不行的。在教学过程中教师应该一切从“零”开始的教授。从java开发工具的下载、安装、环境变量的设置等, 这些都应该让学生亲自动手操作之后才能真正了解java语言的运行机制。这对于学生自己课下学习java是必不可缺的。
对java开发工具的选择也是非常重要的, 目前java的开发工具比较多, 有些工具是可视化的, 有些工具不太直观, 如在cmd环境下运行java就不太直观。我们的教学中应该选择可视化的开发工具, 如My Eclipse、JCreator等, 这样教师教学方便, 学生动手实践也轻松有趣些。
3.3 提高课堂的兴趣
兴趣是最好的老师, 在知识学习过程中, 有无兴趣, 学习的效果是很不一样的。可以通过以下方法来提高课堂的趣味性:
(一) 愉快导入:良好的开端是成功的一半。在第一堂《java》课上, 可以先让学生玩几个用java做的游戏, 比如扑克游戏、俄罗斯方块等等, 让学生感知java语言的魅力所在, 从而激发他们学习的兴趣。还可以给学生演示一些用java做的学生管理系统、画笔程序、简单计算器等等, 让学生感知java语言在日常生活中的实际作用。课堂上, 用富有感染力的语言, 激发学生良好的情感体验, 激起他们的兴奋点。
(二) 在课堂中加入“兴奋元素”:所谓“兴奋元素”是指一些能引起学生兴趣的元素。如在讲解java语法知识时, 可在教学中以动态的实例图像、简洁的提炼来引起学生的注意, 激发其兴趣, 使之牢牢地把握所学的知识。例如, 在讲述图形用户界面设计时, 可以通过设计一个奥运宣传图来引起学生的兴趣。在学习for循环语句时, 可以通过“打印九九乘法表”来吸引学生的注意。
3.4 理论知识教学
Java的基础理论知识是教学过程中必不可少的部分, 由于比较抽象, 学习起来枯燥乏味, 而且学生难以发挥主动性, 理解起来比较困难。因此, 教师要把抽象的概念与实际生活相结合起来, 使之形象具体。例如, 在讲类的相关概念时, 可以用人类来做个讲解。人就是一个类, 人的年龄、身高、体重、性别是类的成员变量, 即类的属性。人具有的吃饭、睡觉这些动作就是类的成员方法, 也就是类的行为。
理论知识的教学也可以通过“相关案例演示理论讲解代码修改模拟解题”这4个步骤来完成。首先, 案例演示要选择学生感兴趣的案例, 选择容易激发学习兴趣的案例。比如在讲解Grahpics类的绘图方法时, 因为很多人对小车比较感兴趣, 可以选择一个“绘制小车模型的案例”。这样, 通过“小车模型”案例演示, 一下子激发了学生的学习热情, 为接下来的学习打下了良好的基础。其次, 理论讲解可以把抽象的概念形象化、具体化。再次, 通过修改案例的代码来改变案例的运行效果图, 使学生更加深刻理解理论知识。比如在讲“绘制小车模型案例”时, 通过修改set Color (Color.red) 、fill Oval (120, 120, 50, 50) 中的参数, 来改变小车轮胎的颜色、形状、大小等等, 使学生对Grahpics类的绘图方法理解更加深刻。最后, 以例题为模版, 引导学生模拟类似问题的解决方案, 最好提供具体题目, 引导学生完成思路设计和关键代码的实现, 直到学生最终写出可运行的代码。
3.5 改进考核方式
Java程序设计是一门实践性比较强的专业技能课, 传统的考核方式已经不能实现以考促学的目的, 基本上不能很好地反映学生的技能。因此, 在考核方式上, 实现了评价主题的多元化和评价指标的多样化。课程考核主要由平时成绩考核 (30%) 、期中期末考试 (60%) 、其他依据 (10%) 。平时成绩考核:每讲授完一个章节的知识都要布置一次实验, 收集学生的作品, 根据完成的状况记录ABC三个等级。期中期末考试:试卷的题目要能考核出学生的综合运用能力、动手实践能力、分析和解决问题的能力等等。试卷的组成可由理论题 (20%) +程序填空 (20%) +项目作业 (60%) 。其他依据:比如学生态度、上课纪律、出席情况等。
4 结束语
教学方法在计算机专业教学中举足轻, 它制约着教与学的效率。虽然教无定法, 但万变不离其宗, 在教学中要遵循学生的认知规律。本文所浅谈的几点体会在教学实践中收到了良好的效果, 对于计算机语言类的课程是相通的, 该文的几点经验值得在其他相近的课程中尝试。
摘要:java语言是目前非常流行的编程语言。很多高校和职业院校都开设了java语言课程。在java教学过程中, 如何解决程序设计本身枯燥、难懂这个问题, 找到一些比较新颖的教学方式, 一直是广大计算机教师颇感兴趣的课题。本文就java的教学工作中有关内容进行了一些探讨。
关键词:java语言,教学方法,考核机制
参考文献
[1]张艳琼.高职院校聋生《三维动画基础3DS Max》课程研究与实践[J/OL].[2011-7].
JAVA编程语言 第5篇
Java 语言的Calendar(日历),Date(日期),和DateFormat(日期格式)组成了Java标准的一个基本但是非常重要的部分。日期是商业逻辑计算一个关键的部分。所有的开发者都应该能够计算未来的日期,定制日期的显示格式,并将文本数据解析成日期对象。
创建一个日期对象
让我们看一个使用系统的当前日期和时间创建一个日期对象并返回一个长整数。这个时间通常被称为Java 虚拟机(JVM)主机环境的系统时间。
importjava.util.Date;
public class DateExample1 {
public static void main(String[] args) {
// Get the system date/time
Date date = new Date;
System.out.println(date.getTime());
} }
在星期六,9月29日,下午大约是6:50的样子,上面的例子在系统输出设备上显示的结果是 1001803809710。值得注意的是我们使用了Date 构造函数创建一个日期对象,这个构造函数没有接受任何参数,而这个构造函数在内部使用了System.currentTimeMillis() 方法来从系统获取日期。现在我们已经知道了如何获取从1970年1月1日开始经历的毫秒数了。我们如何才能以一种用户明白的格式来显示这个日期呢? 在这里类java.text.SimpleDateFormat 和它的抽象基类 java.text.DateFormat 就派得上用场了。
日期数据的定制格式
假如我们希望定制日期数据的格式,比方星期六-9月-29日-20. 下面的例子展示了如何完成这个工作:
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateExample2 {
public static void main(String[] args) {
SimpleDateFormat bartDateFormat = new SimpleDateFormat(“EEEE-MMMM-dd-yyyy”);
Date date = new Date();
System.out.println(bartDateFormat.format(date));
} }
只要通过向SimpleDateFormat 的构造函数传递格式字符串“EEE-MMMM-dd-yyyy”,我们就能够指明自己想要的格式。格式字符串中的ASCII 字符告诉格式化函数下面显示日期数据的哪一个部分。EEEE是星期,MMMM是月,dd是日,yyyy是年。字符的个数决定了日期是如何格式化的。传递“EE-MM-dd-yy”会显示 Sat-09-29-01。
将文本数据解析成日期对象
假设我们有一个文本字符串包含了一个格式化了的日期对象,我们希望解析这个字符串并从文本日期数据创建一个日期对象。我们将再次以格式化字符串“MM-dd-yyyy” 调用SimpleDateFormat类。但是这一次,我们使用格式化解析而不是生成一个文本日期数据。我们的例子,显示在下面,将解析文本字符串“9-29-”并创建一个值为001736000000 的日期对象。
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateExample3 {
public static void main(String[] args) {
// Create a date formatter that can parse dates of
// the form. MM-dd-yyyy.
SimpleDateFormat bartDateFormat = new SimpleDateFormat(“MM-dd-yyyy”);
// Create a string containing a text date to be parsed.
String dateStringToParse = “9-29-2001”;
try {
// Parse the text version of the date.
// We have to perform. the parse method in a
// try-catch construct in case dateStringToParse
// does not contain a date in the format we are expecting.
Date date = bartDateFormat.parse(dateStringToParse);
// Now send the parsed date as a long value
// to the system output.
System.out.println(date.getTime());
}
catch (Exception ex) {
System.out.println(ex.getMessage());
}
} }
使用标准的日期格式化过程
既然我们已经可以生成和解析定制的日期格式了,让我们来看一看如何使用内建的格式化过程。方法 DateFormat.getDateTimeInstance() 让我们得以用几种不同的方法获得标准的日期格式化过程。下面是我们获取了四个内建的日期格式化过程。它们包括一个短的,中等的,长的,和完整的日期格式。
import java.text.DateFormat;
import java.util.Date;
public class DateExample4 {
public static void main(String[] args) {
Date date = new Date();
DateFormat shortDateFormat = DateFormat.getDateTimeInstance(
DateFormat.SHORT, DateFormat.SHORT);
DateFormat mediumDateFormat = DateFormat.getDateTimeInstance(
DateFormat.MEDIUM, DateFormat.MEDIUM);
DateFormat longDateFormat = DateFormat.getDateTimeInstance(
DateFormat.LONG, DateFormat.LONG);
DateFormat fullDateFormat = DateFormat.getDateTimeInstance(
DateFormat.FULL, DateFormat.FULL);
System.out.println(shortDateFormat.format(date));
System.out.println(mediumDateFormat.format(date));
System.out.println(longDateFormat.format(date));
System.out.println(fullDateFormat.format(date));
}
}
注意我们在对 getDateTimeInstance的每次调用中都传递了两个值:第一个参数是日期风格,而第二个参数是时间风格,
它们都是基本数据类型int(整型)。考虑到可读性,我们使用了DateFormat 类提供的常量: SHORT,MEDIUM,LONG,和 FULL。
运行我们的例子程序的时候,它将向标准输出设备输出下面的内容:
9/29/01 8:44 PM
Sep 29,2001 8:44:45 PM
September 29,2001 8:44:45 PM EDT
Saturday,September 29,2001 8:44:45 PM EDT
Calendar 类
我们现在已经能够格式化并创建一个日期对象了,但是我们如何才能设置和获取日期数据的特定部分呢,比如说小时,日,或者分钟? 我们又如何在日期的这些部分加上或者减去值呢? 答案是使用Calendar 类。
假设你想要设置,获取,和操纵一个日期对象的各个部分,比方一个月的一天或者是一个星期的一天,为了演示这个过程,我们将使用具体的子类 java.util.GregorianCalendar。 考虑下面的例子,它计算得到下面的第十个星期五是13号。
import java.util.GregorianCalendar;
import java.util.Date;
import java.text.DateFormat;
public class DateExample5 {
public static void main(String[] args) {
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL);
// Create our Gregorian Calendar.
GregorianCalendar cal = new GregorianCalendar();
// Set the date and time of our calendar
// to the system´s date and time
cal.setTime(new Date());
System.out.println(“System Date: ” + dateFormat.format(cal.getTime()));
// Set the day of week to FRIDAY
cal.set(GregorianCalendar.DAY_OF_WEEK, GregorianCalendar.FRIDAY);
System.out.println(“After Setting Day of Week to Friday: ” +dateFormat.format(cal.getTime()));
int friday13Counter = 0;
while (friday13Counter<= 10) {
// Go to the next Friday by adding 7 days.
cal.add(GregorianCalendar.DAY_OF_MONTH,7);
// If the day of month is 13 we have
// another Friday the 13th.
if (cal.get(GregorianCalendar.DAY_OF_MONTH) == 13) { friday13Counter++;
System.out.println(dateFormat.format(cal.getTime()));
}
}
}
}
在这个例子中我们作了有趣的函数调用:
cal.set(GregorianCalendar.DAY_OF_WEEK,
GregorianCalendar.FRIDAY);
和:cal.add(GregorianCalendar.DAY_OF_MONTH,7);
set 方法能够让我们通过简单的设置星期中的哪一天这个域来将我们的时间调整为星期五。注意到这里我们使用了常量 DAY_OF_WEEK 和 FRIDAY来增强代码的可读性。add 方法让我们能够在日期上加上数值,润年的所有复杂的计算都由这个方法自动处理。
我们这个例子的输出结果是:
System Date: Saturday,September 29,2001
当我们将它设置成星期五以后就成了:
Friday,September 28,2001
Friday,September 13,
Friday,December 13,2002
Friday,June 13,
Friday,February 13,
Friday,August 13,2004
Friday,May 13,
Friday,January 13,
Friday,October 13,2006
Friday,April 13,
Friday,July 13,2007
Friday,June 13,
时间掌握在你的手里
有了这些Date 和Calendar 类的例子,你应该能够使用 java.util.Date,java.text.SimpleDateFormat,和 java.util.GregorianCalendar 创建许多方法了。
JAVA编程语言 第6篇
关键词:Java语言,学习方法,编程思想
Sun公司在1995年开发出Java语言。它是一种能跨平台的纯面向对象的编程语言。Java名字的由来据说是Sun公司的研发人员在印尼爪哇岛度假喝咖啡时产生的灵感。如今,Java语言同Visual C++语言一样是很多高校计算机专业学生必学的一门编程语言。经过多年的教学实践,笔者认为正如当年的BASIC语言引领众多人学习计算机软件开发那样,Java语言也能让现在的大学生尽快掌握面向对象编程的思想,从而深入学习其它面向对象编程的语言。
1 Java语言相对比较容易学习和使用
相比与另一门面向对象编程的语言VC++,Java语言是比较容易学习和使用的。这也能解释为什么Java语言将成为一门流行的编程语言。
1) 语法简单、功能强大及易于调试
Java语言的优势是其取消了VC++中一些比较难学、难理解的内容[1,2]。比如,在Java语言中没有指针和结构体的概念;程序员不用自己手动释放内存空间,这也就避免了因为内存冲突导致程序崩溃的现象。还有就是程序员利用Java的纯面向对象特性及其提供的丰富的类库,可以像搭积木那样编写出功能强大的程序。
2) 易学易用的API文档[3]
正如微软公司提供的MSDN一样,Sun公司也提供了详细的API文档,且这些文档的结构清晰、简单。由于MSDN包括了许多编程的原则和方法,许多VC++的初学者认为它很难学习和使用。相反,许多的Java初学者发现API文档相当简单、方便使用。并且,利用API文档很容易理解类库里面类与类之间的关系。
3) 程序框架由程序员自己建立
为了节省开发时间,VC++利用应用程序向导帮助程序员建立程序框架。然而,正是由于这些应用程序向导使得初学者不能很好地掌握程序的框架,并增加调试程序的难度。这将成为他们学习VC++的一个重大障碍,并影响他们对VC++的学习兴趣。相反,Java语言的框架是由程序员自己创建的,这看似有些难,但这能让初学者完全掌握程序的整体结构。
另外,虽然类向导能加快程序的开发进度,对于初学这来说,一行接一行地输入某个类代码比用类向导创建代码更容易理解和接受。
2 Java语言的学习方法
对于很多初学者来说,Java语言有着天然易学的优势,但这仅是一个基本条件。为了让学生利用Java语言更好地学习面向对象编程的思想,笔者总结出以下方法。
1) 有个良好的学习开端
很多初学者仅仅知道Java语言是Sun公司开发的编程语言,并不知道其它的相关技术,更谈不上Java语言未来的发展趋势。教师在一开始就应该向学生介绍Java语言在各个领域的应用极其将来的发展方向。比如,J2EE和J2ME当前的应用领域和今后的发展趋势。这样能激励学生学习Java语言的热情和兴趣。
2) 选择开发工具
对于初学这来说,使用纯文本编辑器输入Java源程序,并在命令行方式下编译和运行,能让他们掌握相关的环境变量及程序运行的相关步骤。相反,如果一开始就让初学者使用JBuilder或Elipse之类的集成开发环境,会让他们在开发工具的使用上花费太多的精力,从而分散他们学习Java语言的注意力,甚至,他们根本就不知道Java程序本来的运行步骤。另外,Visual J++更不值得初学者使用,因为它会影响学生理解面向对象编程的概念。
3) 初步了解GUI编程
很多初学者在一开始就想知道GUI界面是怎么来的。这对于VC++来说很容易实现,但初学者并不知道它的实现原理。教师可以在一开始时介绍几个简单的GUI界面程序和普通的GUI编程方法,这样能消除学生对Java语言的陌生感及增强学好Java语言的信心。
4) 重点讲解面向对象编程的思想
Java是一门纯面向对象编程语言。在一学完Java语言的基本语法后,教师就应该通过一些简单的例程重点介绍面向对象编程的方法和思想。另外,因为面向对象的编程思想与现实生活中的很多现象相似,所以可以采样类比的方法讲解相关的概念。比如,继承的概念可以与人类社会的继承类比,蛋糕和模具可以类比于对象和类。同时,要让学生懂得理解面向对象编程思想是学好Java语言的基础。
5) 教会学生如何使用API文档
对于初学这来说,API文档就象学习外语时使用的词典。所以,教师要花一定的时间教会学生如何去下载和参考API文档。当学生学会了如何去使用API文档后,他们会通过API文档里面的类的关系理解面向对象编程的相关内容。这将为他们扫除阅读Java程序时遇到的障碍。同时,为他们进一步学习Java语言打下扎实的基础。作为教师,我们可以在程序里面使用java.lang包里面的Math类提供的常量“π”来计算圆的面积和周长。以此为例,让学生感受API的使用方法。
为了满足初学者编写自己具有自己特点的GUI程序,教师可以引导学生如何结合API提供的类设计自己的界面。比如,可以启发学生如何用自己喜欢的图标代替Java的标志(一杯冒热气的咖啡)。以此激发学生学习Java的热情和兴趣。
3 教学过程中需注意的几个问题
经过多年的教学实践,笔者认为在讲授Java语言的过程中需要注意以下几个问题:
1) 在讲解语法时最好通过程序让学生理解语法的内容,而不应该是机械地记忆语法。比如以下的程序
这个程序看似很简单,但是Java的编译器javac却提示“非法使用unicode编码”。从这个例子我们可以看出,Java语言对语法的要求非常严格。再比如一个使用String类的例子
这个例子强调的是“==”与方法“equals()”的区别。通过这两个例程,学生会很容易理解相关的语法内容。2) 当学生上机操作时,教师可以通过学生遇到的问题追溯到相关的语法知识点,以帮助他们更深刻地理解相关的内容。比如,以下是一个关于“this”关键词使用的例程。
学生可能会被程序的执行结果搞糊涂。教师可以帮学生找到教材上相关的知识点,以让学生深刻理解“this”关键词的用法。3、教师可以通过某些措施激励学生阅读一些优秀的Java程序,以让他们理解写程序就像写作文那样,要多读多写。
4 总结
增强学生面向对象编程思想是计算机软件教学过程中的一项基础工作。如果在教学过程中能恰到好处地利用Java语言,这个问题将会得到很好的解决。这也能帮助学生顺利地完成今后相关的学习任务。
参考文献
[1]Harvey M.deitel and Paul J.Deitel,Java How to program,3E[M].Prentice-Hall,N.J.,1999.
[2]Bruce Eckel,Thinking in Java[M].4th ed.Prentice Hall,N.J.,2007.
JAVA编程语言 第7篇
1 套接字及TCP编程的流程
互联网中使用IP地址来标识一台机器、用端口号来标识不同的进程, 通过采用相应协议进行通信。这就要使用本地协议、本地IP地址、本地端口号这个三元组来唯一标识网络中通信的一方。由于通信双方在传输层必须使用相同的协议, 所以可以用协议、本地IP地址、本地端口号、远端IP地址、远端端口号这五元组来唯一标识网络中两个通信端间的进程。
套接字 (Socket) 是介于网络应用程序和网络通信协议之间的一组应用程序, 通过配置好五元组, 在两个实体间进行通信, 并可创建一个能被多个用户使用的分布式应用, 实现与服务器的双向通信。
TCP是面向连接的协议, 将在通信的两台机器间建立一条逻辑通路, 主要用于数据量大、可靠性要求高的场合, 而UDP是无连接的协议, 只能保证进程间通信的最基本要求, 主要用于数据传输量小的场合。TCP协议的应用中, 服务器作为提供服务的一方, 必须先于客户方先启动, 从创建套接字到进入监听状态, 才能开始接收客户端的连接请求。由于要客户端主动连接, 所以要求服务器端有一个固定且周知的三元组。下图是面向连接的套接字编程的工作模型:
在客户端连接时, 服务器端用accept响应客户端的连接, 同时生成一个新的套接字, 并用这个新套接字保持与客户端的连接, 从而解放了用Server Socket创建的套接字, 并让其等待下一客户的连接。
2 Java语言流式套接字编程需使用的相关类
1) Inet Address类
IP地址是IP协议中标识主机位置的唯一标识, 由32位 (IPv4) 或128位 (IPv6) 无符号数字构成, 在Java中采用net包中的Inet Address类对IP地址进行封装, 常用方法有:get By Name () :根据主机名确定主机IP地址;get By Address () :根据IP地址返回Inet Address对象;get Host Address () :获取IP地址;get Host Name () :获取主机名等。
2) socket通信相关类
Java.net包中提供了Server Socket和Socket两个类表示服务器端和客户端的套接字。Server Socket类的构造方法可通过设置端口号参数在创建套接字时同步绑定到指定端口, 设置客户连接请求队列长度确定服务器能同时监听的客户数, 针对多网卡主机, 通过设置绑定IP地址 (Inet Address.get By Name (“IP地址”) ) 参数指定地址。Socket类的构造方法可通过设置服务器的IP地址或主机名及端口号连接, 客户端连接到服务器时, 服务器调用accept () 方法响应客户端的请求, 并生成一个新的套接字与客户端进行通信。
3) 数据流类
Java.io包中的数据流 (Stream) 是一组有顺序、有起点和终点的字节集合, 分为输入流 (Input Stream) 和输出流 (Output Stream) , 输入流只能读不能写, 用read () 方法读取字节, 输出流只能写不能读, 用write () 方法写字节。Socket类通过get Input Stream () 和get Output Stream () 方法获得相应的输入/输出流的读写操作, 并返回Input Stream和Output Stream类的对象, 在实际运用中为了便于数据的读写, 使用字节过滤流如Data Input Stream和Data Output Stream直接读写Java的基本数据类型, 用字符流如Input Stream Reader和Output Stream Writer读写文本流对象。
3 服务器端和客户端的设计思路
根据图1, 服务器首先用Server Socket类创建套接字对象, 并绑定到指定端口, 启动线程, 在循环体中用accpet () 响应客户连接请求并生成新的套接字, 基于该套接字创建输入/出流, 通过按钮写输出流, 在线程的run () 方法中读输入流。但针对多客户端连接服务器的情况, 还需解决:1) 如何处理多客户端的对象;2) 如何接收相应客户端发送的信息;3) 发送信息前选择客户端等问题。
为解决多客户端对象, 将Socket创建的对象改为数组, 同步将输入/出流对象也改为数组, 当有客户连接accept () 响应时, 返回到套接字数组, 并基于此套接字数组元素实例生成相应的输入/出流数组元素实例, 即数组下标相同。接收信息时, 在run () 方法中通过对数组中的有效元素进行遍历, 用read UTF () 读出每个输入流的内容。为了解决发送信息时客户的选择, 在客户连接成功时, 将客户加入到JCombo Box中, 在发送信息前通过在JCombo Box选择客户, 确定输出流数组的下标用write UTF () 发送信息, 在整个程序中要求套接字、输入/出流、JCombo Box中的内容的序号要一致。
客户端用Socket类套接字对象, 并连接到服务器指定端口, 基于该套接字创建输入/出流, 通过按钮写输出流, 在线程的run () 方法中读输入流。
4 部分代码及运行结果
本示例已初步解决了一服务器与多客户的通信问题, 但当客户端断开连接时, 服务器端如何释放出套接字供新连接客户端使用尚需加以判断处理, 以上设计思路也为多客户间通信提供了一个良好的参考。
摘要:该文首先对套接字及TCP编程进行介绍, 结合Java语言分析了套接字编程所需的类, 继而提出了单服务器与多客户通信的设计思路, 最后通过示例演示了程序, 并提出改进意见。
关键词:socket,套接字,面向连接
参考文献
[1]刘新.Java开发技术大全[M].北京:清华大学出版社, 2009.
JAVA编程语言 第8篇
JAVA语言是目前在计算机软件开发中应用最广泛, 最符合设计编程人员需求的一种计算机语言。它起源于Sun Microsystems公司的Oak语言, 经过多年的发展, 相较于其他电脑编程语言例如VB、VC等有着明显的优势和应用前景, 成为PC软件、手机软件、游戏平台等各种软件设计研发的基础语言。
二、JAVA编程语言在计算机软件开发中的优越性
2.1 语法简单。与其他编程语言相比, JAVA语言的语法规则、语法结构相对简单。一方面, 它没有C++ 语言中复杂的指针命令, 取而代之的是引用功能, 这样很大程度上避免了在庞杂的编程项目中由于逻辑上的多重性导致指针的混乱, 使程序出现问题。
2.2 平台独立。平台独立是JAVA语言应用于计算机软件开发的最大优势之一。JAVA语言的核心设计思想是“JAVA虚拟机”, 凡是能够接受JAVA虚拟机的平台, 都能没有阻碍的运行JAVA程序。JAVA语言能够恰到好处的屏蔽掉具体应用平台对程序语言的不同要求, 打造出JAVA应用的巨大优势, 为其在软件开发设计中拓宽了应用面。
2.3 易于移植。现在很多软件需要有很好的可移植性, 能够进行计算机和手机端口之间的移植, 以满足人们的应用需求, 而使用JAVA语言为编程语言的软件可以很快速的进行二者间的转换, 并最大程度上保证软件功能的完整性, 最贴近用户使用要求。
2.4 面向对象。面向对象是JAVA语言在计算机软件开发应用中另一个明显的优势。JAVA语言在面向对象的过程中将一个复杂庞大的程序根据功能划分成很多不同的模块, 每个模块相对独立。这样每个模块由于编写人员的思维不同, 完成模块功能的方案也不同, 增加了程序的多样性, 有利于集思广益找到最适合的编程方案。模块化不仅减轻分散了编程人员的压力, 也对维护人员检查、维护、修改程序有益处。面向对象的编程思想已经越来越成为软件开发的要求, 更成为了编程人员提高自己编程质量与素养的要求。面向对象的JAVA语言拥有多态性、继承性、封装性、动态联编性, 能够划分元素的类、封装参数、多方式描述元素的状态和性质、实现软件功能。
2.5 安全性高。JAVA语言拥有双重保险为程序的隐私安全护航, 第一重保险是最基本的公共密钥技术, 对程序进行基本的保护, 不被一般病毒所破坏。第二重保险是JAVA语言在基础公共密钥技术上突破形成的确认技术, 可以对程序进行更高级的保护, 阻挡大多数的病毒入侵数据。一旦JAVA指示器发生任何改变, 程序都会终止对一切数据的访问, 确保系统安全。
2.6 多线程并行。并行的多线程优势使得多个软件可以同时执行。
2.7 多元动态化。多元化是指JAVA语言由于平台的独立性, 形成了对操作系统的低要求, 不管是技术人员设计开发软件惯用的Linux操作系统, 还是一般人经常使用的Windows系列操作系统, 都能满足JAVA语言的编辑运行环境。
动态化是指JAVA语言随时随地跟进软件系统的发展步伐。在JAVA语言的类库中, 设计者可以依据自己的想法和需要添加新东西丰富类库内容, 并且不会影响到整个程序的执行。
三、基于计算机软件开发的JAVA编程语言技术
3.1 JAVA Database Connectivity技术。该技术能够提供方法将数据库连接起来, 并检查客户端程序和数据库应用程序的接口, 发现问题解决问题, 为实现端口之间的统一访问互动提供基础, 方便管理员对数据库的后台维护。
3.2 JAVA Annotation技术。作为JAVA语言中一种独特的语法, 该技术联系并整合了JAVA语言中的参数、变量、类等元素之间的关系, 方便开发人员对各种程序元素进行归类标注。
3.3 JAVA Remote Method Invocation技术。该技术通过分布式应用程序实现服务器和客户端之间的互动, 并且能够整合资源信息, 进而实现程序的完整顺利运行。
四、总结
在互联网技术迅猛发展的现代社会, JAVA语言作为计算机软件开发中应用最广泛的电脑编程语言, 必将为人类社会生活提供更可观的经济效益, 和更多的舒适便利。所以我们需要加强对JAVA语言应用的研究探索, 不断提高其应用水平。H
摘要:JAVA语言在计算机软件中的应用地位不断提高, 大量的实践已经证明了它是合理有效, 适合大多数软件编程的科学技术。本文简单介绍了JAVA语言的概况, 并分析了其在计算机软件开发中的应用优势和技术, 以为相关人员提供借鉴。
关键词:计算机软件,JAVA语言,软件编程
参考文献
[1]田智.基于计算机软件开发的JAVA编程语言分析[J].硅谷, 2014 (19) :59-59, 37.
JAVA编程语言 第9篇
关键词:计算机,软件开发,JAVA编程语言
0前言
JAVA编程语言是在现代C、C++ 语言的基础上形成的一种计算机软件编写语言,继承了C、C++ 语言的大部分优点,同时对C、C++ 语言实际编程应用中存在的含混部分进行了拓展和改良,使得JAVA拥有加简易、独立和泛用的特点,当前在PC软件、手机软件、游戏平台软件中得到了广泛的应用,在计算机软件快速发展、拓展的形势下,对计算机软件开发的JAVA编程语言的分析具有鲜明的现实意义。
1 JAVA 编程语言应用优势概述
1.1 简易性
从设计角度来看JAVA编程语言的内容和形式很大程度上借鉴了C、C++ 语言的内容和形式,所以在实际应用中已经熟练掌握C、C++ 语言使用方法的设计人员能够很容易的掌握JAVA编程语言的使用技巧。在具象的计算机软件设计活动中,JAVA设计角度的延展性外化为应用的简易性。同时JAVA在C、C++ 语言基础上的扬弃和发展,使得原本C、C++语言应用中的一些难点和容易引起错误操作的内容都得到了相应的简化处理,这种处理让JAVA在操作性能上超越了C、C++ 语言,在计算机软件编程语言的简易性上更进一步。
1.2 独立性
JAVA的独立性是其卓越性能的另一个重要原因,在具象的计算机软件编程工作中,虽然独立性较强的JAVA在功能上无法与解释性的高级脚本相比,但是由于JAVA拥有较高的独立性,所以其应用中的资源需求较少,对应用载体的性能要求较低,能够在微型客户端上实现独立运行,而且因为独立性较高在其军机处上设计的计算机软件程序线程较短,在运行速度和反应速度有较大的优势。同时JAVA的这种独立性并不盲目的对外在先进理念和技术形式的排斥和不兼容,其本身的性能可以通过独立的升级得到提升,这种提升是在独立性基础上进行的,既保证了JAVA的性能提升同时也保证了JAVA的独立性特点,让JAVA在计算机软件编程语言领域始终保持独特的优势。
1.3 泛用性
泛用性是计算机编程语言的重要应用性能参数,对计算机编程语言的跨平台应用具有鲜明的现实作用。JAVA的泛用性是其主要卖点之一,也是当前JAVA在计算机软件开发领域大量应用的重要因素。从计算机软件的设计角度来看,计算机软件的泛用性实质上是计算机软件编程语言在不同环境下的适应性。在计算机软件设计活动中,设计形成的计算机软件能否在不同的平台环境下正常运行,是考量计算机软件实用性的重要标准,进而这种标准要求也渗透到计算机软件编程语言中。对比其他两种主要软件编程语言来看,C、C++ 语言尽管能够实现在不同平台和操作系统环境下的应用,但是从计算机软件开发角度来看,迁移以后的C、C++ 语言编程语义发生了较大的变化,不能保证整个软件在非设计环境下的精确运行,经常会出现异常和报错的现象。在泛用性层面来看JAVA有着压倒性的优势。
2 JAVA Aatabase Connectivity 技术
JAVA Aatabase Connectivity(JDBC)是一种数据库的连接技术,在计算机软件的设计活动中主要用于对数据库的规范,能够在不同的数据库之间建立信息交互的通道,保证数据库的数据输出保持一定的程序接口,也就是实现了数据库的统一访问和统一管理。在具体的计算机软件设计活动中设计人员经常使用这一技术对软件内部不同的数据库进行规范,能够极大的提升数据库的运行速度和质量。同时JAVA Aatabase Connectivity还为PC软件的开发提供数据库查询和数据库更新的功能。这些功能的存在改变了计算机软件设计的数据库管理形式,极大的提升了计算机软件设计的质量和效率。
3 JAVA Annotation 技术
JAVA Annotation技术是JAVA语言中的原数据语法,借助这一技术设计人员能够将一些变量和数据加入到JAVA代码中,并且能够被JAVA程序所识别并执行,这样在计算机软件的具象设计活动中设计人员就可以直接将对软件某些语段的限制和解释性参数编写在JAVA程序当中,而不需要在程序之外再做单独的引申和说明,这种技术的存在极大的提升了JAVA语言应用的灵活性,让借助JAVA语言进行的计算机软件设计工作变得更加高效、灵活。
4 结论
JAVA编程语言 第10篇
关键词:IDEA;MA乘加模块;JAVA
中图分类号:TP312.1 文献标识码:A文章编号:1007-9599 (2011) 08-0000-02
The Programming Application of IDEA Algorithm on JAVA
Zhu Jun
(Shenyang Automotive Industries Institute,Shenyang110015,China)
Abstract:IDEA is a good block cipher,with hardware and software are relatively easy to implement,is widely used in various commercial software.Article focuses on the IDEA algorithm in JAVA language theory and implementation technology,and gives some of the key source code.
Keywords:IDEA;MA multiply-add module;JAVA
一、算法描述
(一)MA模块。IDEA密码算法采用混合的乘加(MA-Multiplication Addition)特殊网络结构来实现混淆和扩展功能,明文分组长度为64比特,但密钥长度为128比特,加密和解密算法相同,但解密时各轮子密钥要由加密时的子密钥按相应的运算推导出。加解密过程各采用8轮迭代实现。对任何加密算法的设计,混淆(Confusion)及扩数(Diffusion)是两个最重要的安全特性。混淆是说加密算法的密文与明文及密钥的关系十分复杂,无法从数学上描述,或从统计上去分析。扩散是说明文中的任一位以及密钥中的任一位,都对全体密文位有影响。经由此种扩散作用,可以隐藏许多明文在统计上的特性,增加密码的安全。IDEA的混淆特性是经由混合下述三种函数面达成。
1.以位为单位的Exclusive-OR即逐位MOD2加,用⊕表示。2.定义在模216(=MOD 65536)的模加法运算,其操作数都可以表示成16位整数,用图表示这个函数,为了表示方便下面用+号代替。3.定义在模216+1(=mod 65537)的模乘法运算。因为65537是一素数.所以对任何数(除0以外)的乘法逆元是存在的。值得一提的是,为了保证即使当“0”出现在16位的操作数时也有乘法逆元存在,“0”被定义成2M。用⊙表示这个函数。
其中需要提示的是:MA结构(如图)中相异符号不满足分配率和结合率。如
1.a⊙(b+c)≠(a⊙b)+(a⊙c)
2.a+(b⊙c)≠(a+b)⊙(a+c)
(二)加解密算法描述。将64比特的数据块分成4个子块,并定义4个子块为:X1,X2,X3,X4,每个子块16个比特作为第一轮迭代的输入。整个过程需要8轮迭代来完成。算法的每轮迭代都是在4个子块之间进行,主要执行与16比特的子密钥异或操作,MOD2加法运算和MOD(216+1)乘法运算。在每一轮的迭代运算中,输出的第
二、第三子块交换,具体的每一轮迭代运算顺序如下:
(1)X1和第一个密钥子块Z1相乘:H1(1)=X1(1)⊙Z1
(2)X2和第二个密钥子块Z2相加:H2(1)=X2(1)+Z2
(3)X3和第三个密钥子块Z3相加:H3(1)=X3(1)+Z3
(4)X4和第四个密钥子块Z4相乘:H4(1)=X4(1)⊙Z4
(5)将(1)和(3)结果相异或:H5(1)=H1(1)⊙H3(1)
(6)将(2)和(4)结果相异或:H6(1)=H2(1)⊙H4(1)
(7)将(5)的结果与第五个密钥子块相乘:H7(1)=H5(1)⊙Z5(1)
(8)将(6)和(7)的结果相加:H8(1)=H6(1)+H7(1)
(9)将(8)的结果与第六个密钥子块相乘:H9(1)=H8(1)⊙Z6(1)
(10)将(7)和(9)的结果相加:H10(1)=H7(1)+H9(1)
(11)将(1)和(9)的结果相异或:H11(1)=H1(1)⊕H9(1)
(12)将(3)和(9)的结果相异或:H12(1)=H3(1)⊕H9(1)
(13)将(2)和(10)的结果相异或:H13(1)=H2(1)⊕H10(1)
(14)将(4)和(10)的结果相异或:H14(1)=H4(1)⊕H10(1)
上述为第一轮情形的运算结果,经过第一轮迭代输出的四个子块形式分别为:第(11)、(12)、(13)、(14)步的运算结果。除最后一轮迭代运算外,其中每轮迭代过程均是第2、第3块交换(前面算法已根据交换后结果直接输出),分别作为下一轮的输入,即
X1(2)==Y1(1)=H11,X2(2)=Y2(1)=H12,X3(2)=Y3(1)=H13,X4(2)=Y4(1)=H14,
整个加密算法经8轮迭代运算后,最后输出变换产生Y1到Y4作为输出:
X1(8)和第一个密钥子块作乘法运算:Y1=X1(8)⊙Z1(9)
X2(8)和第二个密钥子块作加法运算:Y2=X2(8)+Z2(9)
X3(8)和第三个密钥子块作加法运算:Y3=X3(8)+Z3(9)
X4(8)和第四个密钥子块作乘法运算:Y4=X4(8)⊙Z4(9)
(三)子密钥的产生。IDEA的初始密码为128比特,所有子密钥总长度为6*16*8+4*16=832比特。8轮迭代每轮使用6个16比特的子密钥,输出变换使用4个6个16比特的子密钥。具体密钥的扩展算法为:将128比特初始密码按16比特分成8个子块,作为前8个16比特的子密钥,接着将128比特密钥向左循环移位25位,再将其按16比特划分为接下来的8个子密钥,其它依次类推!
IDEA的加解密子密钥满足:
(1)(Zi(j))-1⊙Zi(j)=1(mod216+1)
其中:(Zi(j))-1表示子密钥Zi(j)的乘法逆;1≤i≤6,1≤j≤9
(2)-Zi(j)+Zi(j)=0(mod216)
其中:-Zi(j)表示子密钥Zi(j)的加法逆;1≤i≤6,1≤j≤9
(四)加解密密钥对应关系表
轮数加密子密钥解密子密钥
1Z1(1)Z2(1)Z3(1)Z4(1)Z5(1)Z6(1)Z1(9)-1-Z2(9)-Z3(9)Z4(9)-1Z5(8)Z6(8)
2Z1(2)Z2(2)Z3(2)Z4(2)Z5(2)Z6(2)Z1(8)-1–Z2(8)-Z2(8)Z4(8)-1Z5(7)Z6(7)
3Z1(3)Z3(3)Z3(3)Z4(3)Z5(3)Z6(3)Z1(7)-1–Z2(7)-Z2(7)Z4(7)-1Z5(6)Z6(6)
4Z1(4)Z2(4)Z3(4)Z4(4)Z5(4)Z6(4)Z1(6)-1–Z2(6)-Z2(6)Z4(6)-1Z5(5)Z6(5)
5Z1(5)Z2(5)Z3(5)Z4(5)Z5(5)Z6(5)Z1(5)-1–Z2(5)-Z2(5)Z4(5)-1Z5(4)Z6(4)
6Z1(6)Z2(6)Z3(6)Z4(6)Z5(6)Z6(6)Z1(4)-1–Z2(4)-Z2(4)Z4(4)-1Z5(3)Z6(3)
7Z1(7)Z2(7)Z3(7)Z4(7)Z5(7)Z6(7)Z1(3)-1–Z2(3)-Z2(3)Z4(3)-1Z5(2)Z6(2)
8Z1(8)Z2(8)Z3(8)Z4(8)Z5(8)Z6(8)Z1(2)-1–Z2(2)-Z2(2)Z4(2)-1Z5(1)Z6(1)
输出变换Z1(9)Z2(9)Z3(9)Z4(9)Z1(1)-1–Z2(1)-Z3(1)Z4(1)-1
三、IDEA在Java环境下的实现
(一)进行加密操作
private void idea_encrypt(int[]key,byte[]inbytes,byte[]outbytes)
{
int temp=0;
int a1=bytesToInt(inbytes,0);
int b1=bytesToInt(inbytes,2);
int c1=bytesToInt(inbytes,4);
int d1=bytesToInt(inbytes,6);
for(int i=0;i<8;i++) //经过8轮迭代
{
A1=x_multiply_y(a1,key[temp++]);
B1+=key[temp++];
B1&=0xffff;
C1+=key[temp++];
c1&=0xffff;
d1=x_multiply_y(d1,key[temp++]);
int tmp1=b1;
int tmp2=c1;
c1^=a1;
b1^=d1;
c1=x_multiply_y(c1,key[temp++]);
b1+=c1;
b1&=0xffff;
b1=x_multiply_y(b1,key[temp++]);
c1+=b1;
c1&=0xffff;
a1^=b1;
d1^=c1;
b1^=tmp2;
c1^=tmp1;
}
intToBytes(x_multiply_y(a1,key[temp++]),outbytes,0);
intToBytes(c1+key[temp++],outbytes,2);
intToBytes(b1+key[temp++],outbytes,4);
intToBytes(x_multiply_y(d1,key[temp]),outbytes,6);
}
(二)加密子密钥产生过程
private int[]idea_encrypt_subkey(byte[]byteKey)
{
int[]key=new int[52];
if(byteKey.length<16)
{
byte[]tmpkey=new byte[16];
System.arraycopy(byteKey, 0, tmpkey,
tmpkey.length-byteKey.length,byteKey.length);
byteKey=tmpkey;
}
for(int i=0;i<8;i++)
{
key[i]=bytesToInt(byteKey,i*2);
}
for(int j=8;j<52;j++)
{
if((j&0x7)<6){
key[j]=(((key[j-7]&0x7f)<<9)|(key[j-6]>>7))&
0xffff;
}else if((j&0x7)==6)
{
key[j]=(((key[j-7]&0x7f)<<9)|(key[j-14]>>7))&
0xffff;
}else
{
key[j]=(((key[j-15]&0x7f)<<9)|(key[j-14]>>7))&
0xffff;
}
}
return key;
}
四、结论
IDEA 算法加密速度快,密钥产生方法简单,硬件、软件均容易实现。目前还没有找到明显的安全漏洞,是一个被广泛使用的分组密码好算法。Java语言以其强安全性、平台无关性、硬件结构无关性、语言简洁同时面向对象,在网络编程语言中占据无可比拟的优势,使用Java实现基于IDEA的数据加密传输可以在不同的平台上实现并具有实现简洁、安全性强等优点。
参考文献:
[1]张青凤,殷肖川,李长青.IDEA算法及其编程实现[J].现代电子技术,2006,1:26-28
[2]李萍,蒋晓瑜,汪熙,梁艳.基于IDEA加密算法的语音保密通信系统的实现[J].计算机应用与软件,2010,1:23-25
[3]杨建武.IDEA加密解密算法的设计与实现[J].电脑知识与技术,2009,19:32-33
[作者简介]朱军(1972-),男,辽宁沈阳人,讲师,本科,学士,毕业于沈阳师范大学,研究方向:信息安全与计算机应用。
JAVA编程语言 第11篇
Java是网络时代最重要的语言之一, 也是软件从业者应当掌握的一门基础语言[1]。在Java课程的教学目标中, 不仅要求学生对所学的知识进行充分的理解与掌握, 还要求学生具备面向对象的设计思想, 并运用其解决实际问题[2]。Java基本语法是Java面向对象程序设计的重要内容, 本章内容如果掌握得好, 会大大减少后续章节学习的时间和难度。结合教学大纲和学生特点, 从如下三个方面制定了本章的教学目标:
(1) 知识目标:理解标识符和关键词、掌握Java的基本数据类型 (包括罗杰类型、整数类型、浮点类型、字符类型) 。
(2) 能力目标:能够运用Java的基本数据类型解决实际问题, 逐步培养学生自我探索、自主学习、团队协作的能力。
(3) 情感目标:让学生在上机实践环节中自我展示、相互评价。通过展示体验成功、通过评价直面问题, 在不断尝试中激发求知欲, 在不断摸索中培养进取心[3]。
2 教学内容
为了达成如上三方面教学目标, 选取了以下教学内容, 分配4学时进行教学, 其中2学时课堂讲授, 2学时上机实践。具体内容如下:
2.1 标识符和关键词
(1) 标识符
(2) 关键词
2.2 Java的基本数据类型 (重点)
(1) 逻辑类型boolean
(2) 整数类型byte, short, int, long
(3) 浮点类型float, double
(4) 字符类型char
(5) 基本数据类型转换
结合以上教学内容, 针对高职学生特点, 采取了下面三种教学方法以实现教学目标。
3 教学方法
3.1 实例贯穿教学法
在Java的教学过程中引入实例化教学方法, 是提高教学质量的一种有效途径[4]。
例如在本章开篇, 就抛出问题“在内存中存储本金5000元, 如何解决?”, 其基本代码如下:
借此来导入2.1节标识符和关键词及2.2节Java基本数据类型, 2.3节数据类型的相应教学内容。其中的Test和money就是标识符;public、class、static、void、int就是关键词;同时int又表示整数数据类型, 5000是存储的整型数据。结合该实例, 按照提出问题分析问题解决问题的思路[5], 在连续流畅的教学过程中, 让学生逐步理解标识符、关键词、数据类型等抽象概念。
3.2 任务驱动教学法
“任务驱动教学法”将以往以传授知识为主的传统教学理念转变为以解决问题、完成任务为主的多维互动式的教学理念, 强调学习过程中学习者的主动性、构建性, 支持学习者完成任务的自主权和中心地位。换言之, 它的核心是让学生学会学习, 能进行知识的迁移和运用[6]。
例如在学习2.2节Java基本数据类型中整数类型时, 就采取了这种任务驱动的策略。首先, 制定任务即如何处理人数问题, 其中包括处理班级人数 (30人) 、处理某高校在校学生人数 (13000人) 、处理某国人口数 (1312392146人) 、处理世界人口数 (7000000000人) 。然后通过不断的尝试, 逐步引导学生采用byte、short、int、long这四种整数类型来完成相应的任务。同时辅以现场演示, 在演示中深化认知、强化能力。
3.3 设置程序陷阱
对于一些琐碎的知识点, 我还采取了设置程序陷阱的方式来引起学生的注意, 从而避免了在编程过程中由于细节疏忽而导致程序设计失败的现象[7]。例如, 在使用long型常量时需要在其后面添加字符“L”或“l”, 在使用float型常量时需要在其后面添加“F”或“f”。如果只是这样简单的提一提, 大部分学生可能会左耳听、右耳冒、过后依然不知道。所以我采取了如下的策略:先暂时不提及这些注意事项, 而是在程序中直接以错误的形式给出long型常量和float型常量的使用方法, 然后在编译时由学生自己发现错误、分析原因, 最后教师再对相关注意事项加以说明。经过这样的步骤, 学生自然就能够掌握知识的细节了。
布鲁姆曾经说过:未来的文盲不是不识字的人, 而是不会学习的人。以这一教育思想为指导, 根据教学内容和学生基础, 本章以“案例贯穿”和“任务驱动”教学法为主, 使学生在明确目标任务的前提下, 充分发挥主体作用, 发现方法、解决问题, 最大限度地发挥了学生的学习积极性[8]。
4 考核与评价
如前所述, 对于教师而言, 主要采用案例贯穿、任务驱动的方法去教。对于学生而言, 则需要采用听、练、讲、评的方法去学。其中听指的是听老师讲课, 练指的是练实训题目, 讲指的是讲解自己编写的代码, 评指的是评价他人设计的程序。这也是考核与评价的主要依据。
因为Java语言程序设计是实践性很强的一门课程, 所以考核的重点主要放在上机实践这个环节[9]。首先采用分组实训的方法, 以学习小组为单位, 如五人为一组, 共同讨论, 互相帮助, 完成实训题目;然后随机挑选学习小组中的一名同学进行讲解 (讲解程序是如何设计和编写的) , 其他小组的同学在讲解过程中可以提出疑问、展开评价;最后根据各个小组成员的表现给予成绩评定[10]。这样做不仅使学生学到了知识、掌握了技能, 还培养了他们的集体荣誉感和团队协作意识。
以上是关于Java基本语法教学的初步研究, 在今后的教学实践中还应不断改革创新, 以期达到更好的教学效果。
参考文献
[1]耿祥义.Java课程设计[M].北京:清华大学出版社, 2009
[2]刘瑜.杨玫.赵秀丽.“项目驱动”教学法在JAVA教学中的应用[J].科技教育创新.2010 (16)
[3]许明, 郭佳, 闫旻.Blackboard平台支持下的“二级Access数据库程序设计”课程的建设[J].软件, 2013, 34 (4) :79-81
[4]王晓.关于改进JAVA教学方法的研究[J].青岛远洋船员学院学报.2010 (3)
[5]张继燕, 欧莹元.关于信息管理与信息系统专业《信息存储与检索》课程的研究[J].软件, 2013, 34 (5) :155-156
[6]杨艳红.任务驱动教学法在JAVA教学中的应用[J].考试周刊.2012 (88)
[7]梁宏涛.基于Java的设备故障诊断系统的设计与应用[J].软件, 2013, 34 (7) :5-6
[8]佟延秋.基于教育游戏的“Java程序设计”课程教学改革与实践[J].实践教学.2009 (22)
[9]田平.Java Web开发的环境配置[J].软件, 2013, 34 (7) :40
JAVA编程语言
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。


