Java程序设计语言(精选12篇)
Java程序设计语言 篇1
1 Java历史
Java是由Sun Microsystems公司于1995年5月推出的一种程序设计语言, 主要应用于互联网、个人PC、数据中心、游戏控制台、科学超级计算机。它刚开始的名字叫“Oak”, Java最初是为电视、控制烤面包机等家用电器的交互操作而设计的, 但当时并没有得到成功的推广、随着互联网的发展, Java经过数次的设计和改进后演变成当前受到极大欢迎的Java。
基于Java前身设计的特点, 其具备了可移植性和平台无关性, 成为了可以运行于不同的环境、不同的CPU上的程序语言。当前Java在全球得到了大量的推广和应用, 在计算机应用中发挥着强大的作用。
2 Java的特征
人们在传递信息时常利用自身的器官进行表达, 如声音、情绪、动作、姿态等。但这些声、图、像是转瞬即逝的, 在当前计算机发达的社会, 为保留这些信息并把信息进行传递, 程序语言便应运而生。
程序设计语言是表达软件的工具, 是面向机器的人工语言。Java作为一种高级的程序语言, 在实际应用中拥有面向对象, 简单性, 可移植性, 分布性, 动态性, 健壮性, 体系结构中立性, 安全性等多种优点。
2.1 简单性 (Simple)
Java语言是对C++语言的升华, 有不同与C++语言, 它在C++语言的基础上进行了很大的改进, 在保留了C++语言精华部分的同时也摒弃了C++语言中不常用、不易于理解、繁杂的部分。因为Java是在C++语言的基础上发展的所以懂得C++语言的人如果学校Java就会变的很简单, 同时, 学习Java语言也不需要拥有C++语言基础。
2.2 面向对象 (Object-oriented)
Java语言虽然是杂合语言, 但它是纯面向对象的编程语言。出了基本的数据类型外, 为了使程序语言更容易理解, Java程序语言的编写思想是纯粹面向对象的。
2.3 体系结构中立 (Architecture-neutral)
Java源程序经编译后的字码节与计算机体系结构及平台无关, 可在多种系统上运行。
2.4 可移植性 (Portable)
体系结构的中立性使Java程序可以在不同的平台上运行, 但Java语言的文本是统一的, 在面对不同的机器结构时, 整数32位、长整数64位保持不变。Java系统提供的类库是可以访问任意不同的平台的, Java语言的可移植性实现了软件的“一次开发, 处处运行”。
3 Java运行原理
程序语言是需要经过编译或者解释后才能被电脑执行的, Java程序语言需要经过编译和解释两个过程后才能够被电脑执行, Java源程序准备好, 第一步需要将其翻译成源代码;第二步由虚拟机将源代码转换成电脑能够识别的程序。
Java虚拟机 (Java Virtual Machine) 是想象中的机器, 它的实现需要通过在现实中的计算机上进行软件模拟, Java虚拟机有自己想象中的硬件, 如处理器、堆栈、寄存器等, 还具有相应的指令系统。虚拟机是机器与编译程序之间的连接者, 它具有抽象性, 在编译程序翻译成虚拟机能够识别的源代码之后, 解释器就能够将源代码转换成电脑能够执行的程序。由于编译程序与虚拟机拥有共同的接口, 所以编译程序主要的面向对象即是虚拟机, 只需要生成虚拟机能够理解的程序。在Java中称能够被虚拟机理解的代码为字节码, 虽然各个平台的解释器各不相同, 但是虚拟机都是相同的。Java源程序经过编译器编译后变成虚拟机能够理解的字节码, 虚拟机对字节码进行解释, 虚拟机将字节码发送给解释器, 解释器将其翻译成特定机器能够理解的机器码, 然后进行运行。
Java虚拟机由指令集、寄存器、栈、无用单元收集堆和方法区域五个部分组成, 它是Java语言的基础, Java语言相对于其他的程序语言而言比较容易学习, 使用的概念不多, 较简单。而且Java自身具有自动内存垃圾收集功能, 在运用Java时不需要对内存进行释放。
4 Java编译案例
4.1 Java开发工具
Java可采用的开发工具有多种, Sun公司开发的Java开发工具包JDK (Java Development Kit) 在Java开发中较为常用。
4.2 Java编译
在编写Java程序时, 首先需要按照Java语言的语法规则编写相应的源文件代码利用编译程序将Java源程序编译成可执行的程序, 生成由虚拟的机器代码组成的类文件。下面简要分析简单的Java程序。
使用编辑程序时, 输入上例中的源代码, 并以普通文本格式保存, 且保存时文件名必须为Hello Lucy.java。
然后用编译程序javac.exe编译上述源程序文件, 在Windows系统中输入javacHello Lucy.java
经编译后生成类文件Hello Lucy.class
然后使用解释程序java.exe进行解释运行, 命令为:java Hello Lucy
解释运行后, 屏幕将输出:
Hello, Lucy!
5 结语
Java的诞生是对传统传统计算机模式的挑战, 对计算机软件产业都产生了深远的影响, 随着信息时代的发展, Java在未来的时间里将会有更广阔的应用前景。
摘要:Java是随着软件开发技术的演变而出现的, 它是一种功能强大的新型的面向对象的程序设计语言, 可以解决很多传统上的程序设计难题。本文主要从java语言的历史、特点、编译等方面对Java程序设计进行了简要阐述。
关键词:Java语言,软件开发,程序设计,信息
参考文献
[1]冀振燕, 程虎.Java编译程序技术与Java性能[J].软件学报, 2000 (2) .
[2]闫伟, 谷建华.Java虚拟机即时编译器的一种实现原理[J].微处理机, 2007 (5) .
[3]余俊, 于瑞涛.Java RMI的原理和实现方法[J].青岛大学学报:工程技术版, 1999 (3) .
Java程序设计语言 篇2
Java语言简介: 背景
1991年 ,SUN MicroSystem公司的 Jame Gosling、Bill Joe等人 ,在电 视、控制烤面包箱等家用消费类电子产品上进行交互式操作的开发,开始时是使用C++语言,但是,后来发现C++在某些方面并不能很好的满足设计者的需要,从而考虑自行设计一门新的语言,这种新的语言并不局限于扩充语言机制本身,而是更注重语言所运行的软硬件环境。主要是可以使用其建立一个系统,这个系统运行于一个巨大的、分布的异构网络环境中,完成各种电子设备之间的通信与协同工作。基于这种思想而开发了一个名为Oak 的(即一种橡树的名字)新语言。
Java语言简介
Oak先是被用于家电控制中,可通过手持设备控制家电。在当时并没有引起人们的注意 ,直到1994年下半 年 ,Internet的迅猛发展 ,环球信息网 WWW的快速增长 ,促进了 Java语言研制的 进展 使得它逐渐成为 Internet上受欢迎的开发与编程语言。用java编写的Applet应用小程序能够嵌入到网页中运行,而实现声音、动画等功能。同时,在一般的应用程序设计方面也不逊色,完全可以用面向对象的技术与方法进行开发,符合最新的软件开发规范的要求。由于oak已经被注册,所以,最终更名为java。
Java对软件开发技术的影响
工业界不少人预言 :“Java语言的出现 ,将会引起一场软件革命 ”,这是因为 传统的软件往往都是与具体的实现环境有关 ,换了一个环境就需要作一番改动 ,耗 时费力 ,而 Java语言能在执行码(二进制码)上兼容 ,这样以前所开发的软件就 能运行在不同的机器上 ,只要所用的机器能提供 Java语言解释器即可。
Java对软件开发技术的影响重要体现在以下四个方面:
1、软件的需求分析 :可将用户的需求进行动态的、可视化描述 ,以提供设计者更加直观的要求。用户的各色各样的需求都可以用 Java语言描述清楚。
2、软件的开发方法 :由于 Java语言的面向目标的特性 ,所以完全可以用 O-O 的技术与方法来开发。
3、Java语言的动画效果。利用 WWW提供的巨大 动画资源空间 ,可以共享全世界的动态画面的资源。
4、软件最终产品 :用 Java语言开发的软件可以具有可视化、可听化、可操 作化的效交互、动画与动作 “,要它停就停 ,要它继续就继续 ,而这是在电影与电视播放过程中难以做到的。
Java是一个广泛使用的网络编程语言 ,它是一种新的计算概念。首先 ,作为一种程序设计语言 ,它简单、面向对象、不依赖于机器的结构、具有可移植性、安全性、并且提供了并发的机制、具有很高的性能。其 次 ,它最大限度地利用了网络 ,Java的小应用程序(applet)可在网络上传输而 不受 CPU和环境的限制。另外 ,Java还提供了丰富的类库 ,使程序设计者可以很 方便地建立自己的系统。
Java的特点: 简单性
Java语言衍生自C++,是一种面向对象的语言 ,它通过提供最基本的方法来完成指定的 任务 ,只需理解一些基本的概念 ,就可以用它编写出适合于各种情况的应用程 序。Java略去了运算符重载、多重继承等模糊的概念 ,并且通过实现自动垃圾收集大大简化了程序设计者的内存管理工作。另外 ,Java也适合于在小型机上运行 ,它的基本解释器及类的支持只有 40KB左右 ,加上标准类库和线程的支持也只有 215KB左右。库和线程的支持也只有 215KB左右。
面向对象性:
Java语言的设计集中于对象及其接口 ,它提供了简单的类机制以及动态的 接口模型。对象中封装了它的状态变量以及相应的方法 ,实现了模块化和信息隐藏;而类则提供了一
类对象的原型 ,并且通过继承机制 ,子类可以使用父类 所提供的方法 ,实现了代码的复用。
体系结构中立:
Java解释器生成与体系结构无关的字节码指令 ,只要安装了 Java运行时系统 ,Java程序就可在任意的处理器上运行,使得 Java程序可以方便地被移植到网络上的不同机器。同时 ,Java的类库中也实现了与不同平台的接口 ,使这些类库可以移植。这样大大降低了开发、维护和管理的工作。安全性 :
用于网络、分布环境下的 Java必须要防止病毒的入侵。Java不支持指针, 一切对内存的访问都必须通过对象的实例变量来实现 ,这样就防止程序员使用 ”特洛伊 “木马等欺骗手段访问对象的私有成员 ,同时也避免了指针操作中容易 产生的错误
支持网络编程:
Java语言的特性使它可以最大限度地利用网络。Applet是 Java的小应 用程序 ,它是动态、安全、跨平台的网络应用程序。Java Applet嵌入 HTML语 言 ,通过主页发布到 Internet。网络用户访问服务器的 Applet时 ,这些Applet 从网络上进行传输 ,然后在支持 Java的浏览器中运行。由于 Java语言的安全机 制 ,用户一旦载入 Applet,就可以放心地来生成多媒体的用户界面或完成复杂的计算而不必担心病毒的入侵。分布性:
Java是面向网络的语言。通过它提供的类库可以处理 TCP/IP协议 ,用户 可以通过 URL地址在网络上很方便地访问其它对象。丰富的类库:
语言包提供的支持包括字符串处理、多线程处理、例外处理、数学函数处理等。 实用程序包提供的支持包括哈希表、堆栈、可变数组、时间和日期等。
输入输出包用统一的 “流 ”模型来实现所有格式的 I/O,包括文件系统、网络、输入
低级网络包用于实现 Socket编程。
抽象图形用户接口包实现了不同平台的计算机的图形用户接口部件
网络包支持 Internet的 TCP/IP协议 ,提供了接口。面向对象程序设计——对象、类与实体
“对象”译自英文的“object”,现实世界实际上是由object组成的,我们看到的一切都是object。程序设计语言为解决现实世界的问题而存在,因此,我们自然会想到,让程序设计按照我们平常看世界的方式运作,这样才最自然,这就是面向对象的程序设计的出发点。面向对象程序设计,确切的说,对象是现实世界的某个具体的物理实体在计算机逻辑中的映射和体现。比如:每个人都是一个具体存在的实体,有高度、体重等很多属性,也有走路、工作等很多行为。这样的实体在程序设计中可以表达为计算机可以理解和操作的对象。
类:每个对象都是属于某种类别的。也就是说类是同种对象的集合与抽象。属于类的某个对象被称为是类的一个实例。
对象的状态与行为:对象的状态也称为静态属性。用计算机术语来说也就是变量。每个对象都有自己专有的变量。比如,具体的一个人,有身高、体重等。
对象的行为也称为动态属性,在计算机内部用方法来表示。比如,人有走路、工作的行为。
对象的关系:
包含:当对象A是对象B的属性的时候,称对象B包含对象A。比如电脑与主板
继承:当对象A是对象B的特例的时候,称对象A继承了对象B。比如,鲤鱼是鱼的一种特例。
关联:对象A的引用是对象B的属性,A和B之间是关联关系。Java和 C、C++之间的比较:
对于变量声明、参数传递、操作符、流控制等 ,Java使用了和 C、C++ 相同的传统 ,使得熟悉 C、C++的程序员能很方便地进行编程。同时 ,Java为 实现其简单、安全等特性 ,也摒弃了 C和 C++中许多不合理的内容。
全局变量: Java程序中 ,不能在所有类之外定义全局变量 ,只能通过在一个类中定 义公用、静态的变量来实现一个全局变量。例如 : Class GlobalVar{
public static global_var;}
在类 GlobalVar中定义变量 global_var为 public static,使得其它类 可以访问和修改该变量。Java对全局变量进行了更好的封装。而在C和 C++中 ,依赖于不加封装 的全局变量常常造成系统的崩溃。
Goto语句:Java不支持 C、C++中的 goto语句 ,而是通过例外处理语句 try, Catch, final等来代替 C、C++中用 goto来处理遇到错误时跳转的情况 ,使程序更可读 且更结构化。
指针:指针是 C、C++中最灵活 ,也是最容易产生错误的数据类型。由指针所进行的内存地址操作常会造成不可预知的错误,从而破坏安全性 ,造成系统的崩溃。而 Java对指针进行完全的控制 ,程序员不能直接进行任何指针操作。同时 ,数组作为类在Java 中实现 ,良好地解决了数组访问越界这一C、C++中不作检查的错误。
内存管理:在 C中 ,程序员通过库函数 malloc()和 free()来分配和释放内存 , C++ 中则通过运算符 new和 delete来分配和释放内存。再次释放已释放的内存块或未被分配的内存块 ,会造成系统的崩溃;同样 ,忘记释放不再使用的内存块也会逐渐耗尽系统资源。而在 Java中 ,所有的数据结构都是对象 ,通过运算符new 为它们分配内存堆。通过new得到对象的处理权 ,Java对此自动地进行管理并且进行垃圾收集 ,有效防止了由于程序员的误操作而导致的错误 ,并且更好地利用了系统资源。
数据类型的支持:在 C、C++中 ,对于不同的平台 ,编译器对于简单数据类型如 in t,float 等分别分配不同长度的字节数 ,例如:int在 IBM PC中为 16位 ,在 VAX-11中为 32位 ,这导致了代码的不可移植性 ,但在 Java中 ,对于这些数据类型总是分 配固定长度的位数 ,如对 int型 ,它总占 32位 ,这就保证了 Java的平台无关性。
类型转换:在 C、C++中 ,可以通过指针进行任意的类型转换,而 Java中 ,运行时系统对对象的处理要进行类型相容性检查 ,以防止不安全的 转换。
头文件:C、C++中用头文件来声明类的原型以及全局变量、库函数等 ,在大的系 统中 ,维护这些头文件是很困难的。而 Java不支持头文件 ,类成员的类型和访 问权限都封装在一个类中 ,运行时系统对访问进行控制 ,防止对私有成员的操作。同时 ,Java中用 import语句来与其它类进行通讯 ,以便使用它们的方法。
结构和联合:C、C++中的结构和联合中所有成员均为公有 ,这就带来了安全性问题。Java中不包含结构和联合 ,所有的内容都封装在类中。
预处理:C、C++中用宏定义来实现的代码给程序的可读性带来了困难。在 Java 中 ,不支持宏 ,它通过关键字 final来声明一个常量 ,以实现宏定义中广泛使 用的常量定义。
简 单 的 Java程 序:
Application 与 Applet程序 java程序可以分为两类:java application 和java applet。前者是完整的应用程序,需要独立的解释器来解释运行;后者则是嵌在网页中的非独立程序,由浏览器所自带的java解释器来解释运行。
简 单 的Application程序:
public class HelloWorldApp { //an application
public static void main(String args[ ]){
System.out.println(”Hello World!“);} }
简 单 的 Applet程序: import java.awr.*;import java.applet.*;
public class HelloWorldApplet extends Applet { //an applet
public void paint(Graphics g){
g.drawString(”Hello World!“,20,20);} }
由 于 Applet中 没 有 main()方 法 作 为 Java解 释 器 的入 口 ,我 们 必 须 编 写 HTML文 件 ,把 该 Applet嵌入 其 中 ,然 后 用 appletviewer来 运 行 ,或 在 支 持 Java的 浏 览 器 上 运 行。HTML文 件 如 下 :
Java程序设计语言 篇3
关键词:编程思维算法编程技术
编程主要是一种实践性的技能,它主要基于一些计算技术,包括一些科学和算法。当然,对工具和编程语言是否熟悉也是非常关键的。随着java的出现,java语言逐渐成为了编程语言的角色。程序的设计比编程更为重要,并且它同样依赖于经验和技巧。一个专业开发人员使用专业的方案进行系统开发,他知道如何应用好的设计以及优秀的编程技术。而业余爱好者及黑客仅仅把程序拼凑到一起。而我们教学的目的在于培养学生成为专业的java开发人员,所以我重点想阐述的是如何才能使学生成为优秀的java开发人员,并通过具体的方法来实现这个目的。
人们常说好的程序员需要接受适当的培训,然而编程技术并不是仅仅通过讲授就能掌握的,人们必须通过自己的实践和学习才能掌握它。幸运的是,学生也可以通过实践和学习掌握设计和编程的技巧。学习这些技巧的最好的方法是进行程序的设计以及在有专家指导的情况下进行大量的编程的练习。什么是好的编程方法,什么是差的编程方法等,最关键的是寻找合适的算法,模式和编程计划。如何才能使学生掌握这样的能力呢?
首先,实践是学习编程的最好的方法,同时也必须研究别人做的一些好的甚至差的编程实例,这样学生就可以区分好的编程和差的编程。很多人认为编程仅仅意味着学习编程语言的语法和语义然后就付诸于实践。习惯于这样做的人总是编写一些简单的程序,重复编写一些质量很差的代码:而我们提倡在抽象层次上编程,在构建一些复杂的程序时在抽象层次上进行复用,这样可以避免进行重复性的工作。就如同制造酒,你可以了解制酒的设备,但只有通过尝试并制造出自己的酒时,你才真正掌握了制酒的技术。而且在专家的指导下来学习如何制酒可以使你更快地学会这些技术,并且避免犯一些常见的错误。
编程的技术不仅仅使用了嵌入到类和包的抽象技术,有时也利用编程语言的特色来达到特定的编程目的。编程技术的这些组成部分又称为编程计划、编程模式,我们只有通过观察和研究别人的代码才能了解到他。一般的程序员没有花足够时间来阅读别人写的代码以了解他们是如何处理的、他们的编程做的好的方面以及差方面。大多数开发人员总是利用先前开发的系统,然后进行升级,而很少从头开始一个新的系统设计,这就要求他们能够读懂并理解旧系统的代码,从而进行升级。一些开发人员参与代码的审查工作,然而这样的代码审查工作并没有达到使参与者学习别人代码的目的,他们仅仅关注如何编制他们自己的代码。很少考虑通过审查代码来提高编程开发人员的编程水平,并没有把代码审查的活动看作系统开发活动中的一部分,这种做法是不足取的,这意味着开发这样的系统并没有相应提高开发者的编程水平,开发都只有通过要求他们进行编码的那部分工作来学习。
其次,示例越简单、越短小为标准,并且每次讲解解问题的一个步骤或操作,以便学生能够容易真正的理解和吸收每一个知识点。虽然这样会影响描述和解决真实世界的问题,但是我发现对于学生来讲,能够真正的理解例子中的每个细节,而不是它所能够解决问题的领域。前者往往能够为他们带来兴趣,反之,如果给出比较大而复杂的程序,往往会使一部分学生望而止步。所以,我们要思考如何找出这样的例子,提高学生对学习java的兴趣。
再次,做到每章的重点明确,以便缩短教学和练习之间的时间。这样不但可以使学生可以参与到讨论课时思维更为活跃和集中,充分调动学生的积极性和主动性,从而加强学生的成就感,给学生打下坚实的理论和实践的基础,使学生能够充分的理解问题和解决问题的方法。从而,遇到复杂或更难的现实问题,学生们也可以势如破竹的解决这样的问题。
最后,在教学中讲解一些精典的案例,这些案例是基于事实,使不断合理化的案例在开发过程中存在一些待解决的困难和问题。通过这种方式把案例开发的整个过程呈现给学生,最终通过一系列的步骤把相关的问题和困难进行解决。最终达到让学生领悟到最核心的策略以及系统的结构,从而使学生能够明白开发过程的最关键的因素。
结束语
Java程序设计语言 篇4
FTP(File Transfer Protocol),是文件传输协议的简称,用于在Internet上控制文件的双向传输。用户在Internet上通过FTP服务器可以进行文件的上传(Upload)或下载(Download),也可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量资源。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有网络应用编程接口(java.net),提供了用于网络应用编程的类库。Java语言支持多个线程的同时执行和多线程之间的同步机制,提供了安全机制以增强在网络环境中的安全性。因此使用Java语言开发FTP client(客户端)程序是一个合适的选择。本文中就如何使用Java语言实现FTP客户端程序进行了探讨。
2 基于Java语言的FTP Client程序设计
2.1 FTP的特点
FTP是实时联机服务,在使用它之前必须是具有该服务的一个用户(用户名和口令),工作时客户端必须先登录到作为服务器一方的计算机上,用户登录后可以进行文件搜索和文件传送等有关操作,如改变当前工作目录、列文件目录、设置传输参数及传送文件等。
FTP有两种使用模式:主动和被动。主动模式要求客户端和服务器端同时打开并且监听一个端口以建立连接。在这种情况下,客户端由于安装了防火墙会产生一些问题。所以,创立了被动模式。被动模式只要求服务器端产生一个监听相应端口的进程,这样就可以绕过客户端安装了防火墙的问题。
FTP的主要操作都是基于各种命令基础之上的。常用的命令有:
1)设置传输模式,它包括ASCⅡ(文本)和BINARY二进制模式。
2)目录操作,改变或显示远程计算机的当前目录(cd、dir、ls命令)。
3)连接操作,open命令用于建立同远程计算机的连接;close命令用于关闭连接。
4)发送操作,put命令用于传送文件到远程计算机;mput命令用于传送多个文件到远程计算机。
5)获取操作,get命令用于接收一个文件;mget命令用于接收多个文件。
6)退出操作,BYE命令。
2.2 编程思路
根据FTP的工作原理,在主函数中建立一个服务器套接字端口,等待客户端请求,一旦客户端请求被接受,服务器程序就建立一个服务器分线程,处理客户端的命令。如果客户端需要和服务器端进行文件的传输,则建立一个新的套接字连接来完成文件的操作。编程技巧说明如下:
2.2.1 主函数设计
在主函数中,完成服务器端口的侦听和服务线程的创建。利用一个静态字符串变量initDir来保存服务器线程运行时所在的工作目录。服务器的初始工作目录是由程序运行时用户输入的,缺省为C盘的根目录。关键代码如下:
2.2.2 线程类的设计
在Java中,根据多线程应用程序继承或实现对象的不同可以采用两种方式:一种是应用程序的并发运行对象直接继承Java的线程类Thread;另外一种方式是定义并发执行对象实现Runnable接口。不管使用哪种方法,线程类的主要设计都是在run()方法中实现。用run()方法得到客户端的套接字信息,根据套接字得到输入流和输出流,向客户端发送欢迎信息。
2.2.3 FTP命令的处理
1)FTP访问控制命令:
User命令和Password命令分别用来提交客户端用户输入的用户名和口令。相应的username(user)和password(pass)命令处理代码如下:
此外,还有CWD命令用来改变工作目录到用户指定的目录,CDUP命令改变当前目录为上一层目录和QUIT命令用于退出及关闭与服务器的连接,限于篇幅代码从略。
2)传输参数命令:
Port命令用于FTP服务器IP地址和端口号的传输。使用该命令时,客户端必须发送客户端用于接收数据的32位IP地址和16位的TCP端口号。这些信息以8位为一组,使用十进制传输,中间用逗号隔开。Port命令处理代码如下:
此外,还有用来完成类型设置的TYPE命令,限于篇幅代码从略。
3)FTP服务命令:
文件传输命令包括从服务器中获得文件RETR和向服务器中发送文件STOR,这两个命令的处理非常类似。处理RETR命令时,首先得到用户要获得的文件的名称,根据名称创建一个文件输入流,然后和客户端建立临时套接字连接,并得到一个输出流。随后,将文件输入流中的数据读出并借助于套接字输出流发送到客户端,传输完毕以后,关闭流和临时套接字。STOR命令的处理也是同样的过程,只是方向正好相反。RETR(RETEIEVE)命令处理的关键代码如下(STORE命令类似,代码从略):
LIST命令用于向客户端返回服务器中工作目录下的目录结构,包括文件和目录的列表。处理这个命令时,先创建一个临时的套接字向客户端发送目录信息。这个套接字的目的端口号缺省为1,然后为当前工作目录创建File对象,利用该对象的list()方法得到一个包含该目录下所有文件和子目录名称的字符串数组,然后根据名称中是否含有文件名中特有的“.”来区别目录和文件。最后,将得到的名称数组通过临时套接字发送到客户端。LIST命令处理代码如下:
DELE命令用于删除服务器上的指定文件。则DELE(DELETE)命令处理代码如下:
3 结论
上文中对如何使用Java语言实现FTP客户端程序进行了探讨,并给出了关键代码实现。实践证明,通过这种方法实现的FTP客户端程序实用效果良好,能够完成网络上的文件传输与共享任务。
参考文献
[1]万江平,黄卓明,夏志忠,等.用Java开发的FTP服务器[J].华南理工大学学报:自然科学版,2001(8):65-69.
[2]杨洋,杨涛,武丽.基于Java的计算机辅助学习系统设计[J].微计算机信息,2006(21):156-15.
[3]冀志刚,王祥.用JAVA语言实现FTP客户端[J].唐山师范学院学报,2006(5):81-82.
[4]刘冲,张海玥,张卫东,等.用Java JDK编写FTP客户程序[J].计算机应用,2001(S1):99-100.
[5]杨淑萍.基于Java的FTP客户端程序的设计与实现[J].现代计算机,2005(10):90-91.
[6]周凤艳,余华鸿.FTP研究及基于JAVA的客户端实现[J].今日科苑,2008(14):198.
[7]张景葳,万江平,刘尚余.用Java开发FTP代理服务器[J].计算机应用研究,2001(5):104-107.
Java程序设计语言 篇5
201509考试批次
《JAVA语言程序设计》结课作业 学生姓名
学习中心 学号
考 号 专 业
年级层次 北京语言大学网络教育学院
《JAVA语言程序设计》结课作业 注意:
本学期所布置的结课作业,请同学一律按照以下要求执行:
一、学生必须预约才能在学生平台看见相关课程的“结课作业”按钮;
二、提交路径:个人平台首页--学习中的课程,点击该课程名称--点击“结课作业”--点击“浏览”按钮,选择要上传的文档后点击“提交作业”即可。
三、结课作业提交起止时间:2015年8月1日—9月27日。(届时平台自动关闭,逾期不予接收。)
四、提交的文档格式必须为word文档,截止日期前可多次提交,平台只保留最后一次提交的文档;
五、严格按照课程名称提交相应课程结课作业,提交错误的结课作业,按0分处理。
一.论述题(本大题共5小题,请任选其中两道题作答,每小题25分,总分50分)1.JAVA的基本数据类型数字型、布尔型和字符型三种,请详细说明这三种基本类型包括的子类型及其长度、最小值和最大值。
2.构造方法(Constructor)是一种特殊的方法。Java中的每个类都有构造方法,用来初始化该类的一个新的对象。请简述构造方法的特点。至少说出6个特点。3.论述JAVA语言中的继承、单继承和多继承的定义。4.JAVA语言中的对象创建的方法和数据成员的创建方法。
5.根据类成员的访问控制权限,填写下表,可以访问的填写yes,不可以访问的填写no。类型
Private 无修饰
Protected
Public 同一类
同一包中的子类
同一包中的非子类
不同包中的子类
不同包中的非子类
二.编程题(本大题共5小题,请任选其中两道题作答,每小题25分,总分50分)1.
建立两个JList,双击其中任何一个中的某一项,此项就会跑到另外一个JList中。2.
练习使用对话框。包括一个JLable和两个JButton,按任何一个JButton都会产生一个对话框,按确定后将输入内容在JLable中显示出来。
3.设计一个长方形类,成员变量包括长和宽。类中有计算面积和周长的方法,并有相应的set方法和get方法设置和获得长和宽。编写测试类测试是否达到预定功能。要求使用自定义的包。
谋学网
浅谈Java语言实验教学 篇6
关键词:Java;实验教学;教学方法
中图分类号:TP312.1-4 文献标识码:A 文章编号:1674-7712 (2014) 18-0000-01
Java语言作为一门面向对象的编程语言,已经成为高校的一门必修课程,在进行Java语言的教学过程中,理论教学面向全体学生,主要采用教师课堂讲解(讲解基本语法,知识内容,编程技巧,学生随堂练习,教师边讲边操作),学生互动的授课方式,让学生掌握基础知识。而实验教学必须辅以实训实习和课程设计来提升教学的深度和广度,让学生将所学理论知识通过实验进行深化,加深理论知识的掌握,同时也锻炼了自己的实践操作能力。在Java语言的整个实验教学过程中,教师要根据学生的实际能力,采用以学生为主体、教师为主导、逐步引导、启发式的教学方法,充分发挥学生自主学习的能力。采用“项目驱动,案例教学,一体化课堂”的教学模式,让学生多进行上机演练,让学生通过动手练习发现问题、提出疑问,首先自己思考解决问题,解决不了再找教师帮助,根据学生提出的问题教师进行综合答疑,最后根据实验过程进行全面总结。这种方法已在本校的实践教学中进行应用,取得了较好的效果。
一、教师需做必要的实验准备
首先,应该充分了解教学大纲的内容,因为教学大纲是教师进行教学的指导棒,它对于理论教学有指导的作用,并且,对于实验教学也有一定的指导意义。也就是说教学大纲无论是理论教学还是实验都是非常重要的。如果要想做好实验前的准备事项,必须充分掌握教学大纲中涉及到的知识点。详细说来,应该设计出实验题目,实验题目要满足两个要求,第一个要求,学生在实验前必须能够掌握必要的基础知识,以便为下一步的学习打下一定的基础。第二个要求,设计的题目要有深度,为开发实用程序提供可能。
其次,作为教师,应该在实验的教学之前备课,备课主要包括实验内容的确定,教学目的的确定。在实验课以前,必须要让学生清楚的知道每次实验课都要做什么、学什么;除此之外,实验内容的设计也是非常重要的,因为实验内容必须围绕大纲,内容必须紧靠大纲,必须使得学生充分了解教学大纲中的重点和难点。另外,作为一个教师,必须在实验课上课前提前把给学生做的题目做一遍以便做到心中有数,在做题过程当中,对于不同的题目难易系数也要做到心中有数,以便学生在做题过程当中遇到问题时能够及时帮助其解决,这样能够节省课堂时间。因为Java的实验性很强,多联系能发现很多问题。在开始上课之前教师还要对实验室机房的机器进行调试,确保机器和软件都能正常运行。
最后,教师应该了解学生状态,做到因材施教。因材施教是教学中非常重要的原则,如果想上好计算机Java语言实验课,这是一个的重要前提条件。不同学生的实际情况不同,有的同学喜欢编程,并且具有一定的编程基础(其他语言),但是,有的同学对编程知识了解的较少,甚至一无所知,这就需要教师在教学过程中采用因材施教的方法,而不能采用填鸭式的一鞭子赶,也就是说,在教学中要避免注入式教学,采用启发性教学。应该启发学生学习Java,让学习的学习动机变成内部动机,使得学生主动学习,主动思考如何解决问题。可以根据学生的情况,将学生分组进行教学,编程基础较好的同学可以去设计一些小项目做一下,基础一般的同学可以联系相对难的题目,基础较差的同学需要巩固基础,多加练习,总结经验,为进一步学习做准备。
二、教师的实验教学方法
对于编程语言的初学者来说,因为Java语言是一门面向对象的课程,所以对于学生而言是相当难理解的。他们缺少编程的思想和模式,编程对学生而言就是新鲜的。所以,在实验课要指导学生在学习过程中逐步建立编程理念和编程模型,要比让学生机械的把程序敲入电脑,查看程序结果修改程序重要的多。因此如何通过实验课提高学生对Java语言的学习兴趣,如何建立编程思想才是教师上实验课应该考虑的重要内容。具体的讲课过程如下:首先简要复习一下理论上所学的知识,加深学生对Java理论知识重点和难点的理解,实验操作需要有扎实的理论知识作基础,只有深入透彻的理解了理论知识才能上好实验课;其次让学生进行预习,针对学生遇到的不好理解,不好掌握的问题,教师要进行重点详细的讲解,然后再针对实验教学计划进行实验课的教学。教师应该布置比较有综合性的题目,将题目用到的重点知识进行讲解,引导学生思考解题思路,留给学生足够的时间自己思考,自己练习,在这其间老师可以进行指导,学生遇到问题,引导学生进行解决,不仅可以加深学生对基本知识的理解,还可以培养学生的编程思路。
三、让学生动手,强化实践环节
当学生掌握了一定的Java编程基础知识以后,学生缺少的是实际的开发经验和全面应用Java技术的能力。该能力可以通过实际项目来锻炼提升,首先对所学知识进行巩固复习,然后通过做项目来获取实际的开发经验,尽快达到实际锻炼的要求。比较典型的实验项目有纸牌游戏,在线购物系统,图书馆系统等,需要学生自己进行课题设计。学生可以几个人一组完成一个课题,每个课题都要有新穎性,在设计性实验中,为了使得学生充分了解自己的进展,把每个作业分成几大块,规定每一个学时中应完成的内容,给出每个块要完成的功能,并给出详细描述,要求学生编写相应代码。学生在实际项目的开发中,不可避免的会遇到各种问题,这就需要教师在教室内巡视,学生一旦遇到问题,教师要给学生进行讲解指导,对于普遍性问题,需要进行归纳总结,统一讲解。这种方法比较符合学生的现状,在实际教学中取得了教的效果,比较值得推广。
四、结束语
Java语言教学重点培养学生面向对象的编程思想和实际的应用开发能力,注重培养学生自主学习能力和独立思考能力,独立解决问题能力,为更深入的学习打基础,教学过程中要采用多媒体,并且引入项目驱动。以上是对Java教学问题的一点简单概述,提出了自己的观点和意见,并实际应用于Java教学,取得了很好的效果。
参考文献:
[1]耿祥义,张跃平.Java 2实用教程(3版)[M].北京:清华大学出版社,2006:95.
程序设计语言C与Java之探讨 篇7
软件必须依托硬件。在计算机发展的初期, 软件湮没于复杂的机械和电子装置, 要操作这些笨重的装置, 所需要的只是有限的运算控制。只有当硬件复杂到足够的程度, 软件才有用武之地。而这种依赖关系也决定了软件以及软件设计语言的演化进程。
在计算机技术发展的不同时期出现了门类众多的程序设计语言。计算机程序设计语言发展历程经历了由低级到高级, 由紧密结合硬件到平台无关。这些语言大体上可分为机器语言、汇编语言、高级语言、脚本语言, 以及已经出现的第四代语言。
2 目前流行的程序设计语言
随着硬件的不断发展, 计算机的处理速度和存储器容量都有了质的飞跃, 体积趋于微型化, 应用领域也趋于多元化。众多的高级语言也进化到了一个新的阶段。
在编程语言流行度的评估方面, TIOB一直是最为权威的机构之一。它每个月都根据有经验的使用者、相关课程、第三方厂商以及来自多个大型搜索引擎的统计数据, 发布前100名编程语言的排名情况, 并进行跨年度同期比较。图1是2010年2月发布的统计图。
从图1可以清晰的看出, C和Java牢牢占据了半壁江山, 另外还可以看出在VB .Net逐渐推广之后, Basic开始没落, 值得关注的是C++的下滑和PHP的异军突起。PHP (Hypertext Preprocessor) 主要用于服务器端动态网页生成, 它的成长得益于互联网快速发展的需要。C++受累于严格且复杂的语法, 逐渐失去市场。
3 C和Java的对比
3.1 共同特性
在面向对象的程序设计时代到来之时, C++应运而生。C++是C的扩展, 和C是同一个家族, 经过多年进化, 可谓是高级语言中的极品。但阳春白雪和者寡也, 又错过了与网络时代之俱进, 目前排名日渐下滑。与C++同时开始大规模推广的是Java, 这是一个专门为面向对象设计而生的语言。风格极其类似于C++, 是C++的一个简化版, 保留了C++的严谨和便捷, 去除了C++中过于深奥刻板的东西, 添加了内存垃圾自动回收功能。Java的另一大优势就是开源, 这奠定了其数量庞大的用户群, 也包括许多知名公司, 并且拥有巨量的代码库支持, 这一点与C语言具有惊人的相似性。
C和C++目前担负着系统级的程序开发, 在开源世界里 (GNU) 几乎全是C的天下。而微软最为骄傲的也是VC++和MFC类库。在Windows2000之后的版本中可以清晰的看到Linux的影子, 很多后台服务的命令行开关符都一改微软发明的“/”, 变成了Linux系统通用的“-”。GNU无疑是软件领域的急先锋, 吸引了大批高手参与其中的项目, 许多超前的构想源自那里, 许多优秀的设计也源自那里。也正是大量的用户群造就了C和C++的完美。后来发展壮大的Java也从中受益匪浅。
早期的Java与C++相去甚远, 但目前从语法以及代码设计风格上来看, Java和C++如出一辙。网络造就了Java, 但后来的嵌入式时代却让Java陷入了尴尬。Java最初的目标是嵌入式系统, 但是却一直被应用于服务器软件开发, 是一个歪打正着的典型案例。虽然目前有Java开发操作系统的项目 (Jnode) 在进行着, 但离实用还有相当大的距离, 而且其底层依然无法摆脱C或C++。据说也有将Java作为嵌入式主打开发语言的产品推出, 但还无法与C在嵌入式领域相提并论。
3.2 运行时模式
Java与C的本质不同在于, Java应用必须运行于JVM (Java Virtual Machine) 之上, 而JVM又必须运行于相应的操作系统之上。这样就实现了Java应用层与操作系统的隔离, 只要JVM对Java应用层接口不变, 那么运行在任何操作系统的JVM都可以跑同一个Java应用, 而无需顾及JVM之下是什么。这一点与Basic是异曲同工之妙。
C和C++做出的程序直接被CPU执行, 被操作系统调度。C编译器生成的是CPU的机器码, 而Java编译器生成的更像C编译器产生的中间码 (OBJ文件) 。Java与C程序运行时的分层结构如图2-3所示。
3.3 面向对象的设计
通常认为C++和Java是面向对象的, 而C是面向过程的。Java是为面向对象而生, 这一点无可挑剔, 并且是从C++吸取了许多面向对象的理念。而C++又是从C而来, C就不支持面向对象。实际上, 如果撇开为面向对象而设计的语法规则, C也是支持面向对象的, 而且来得更简洁明快。
类的概念是面向对象的核心, 下面例子就是类的相关代码, 分别用C, C++和Java实现。代码在VC++, GCC和Java1.5.0编译运行通过。
3.3.1 类的声明
C语言没有类的关键字, 而Java和C++有。所以C语言实现的类跟后两者有些不同。需要注意的地方是关于类成员覆盖/重载。
从表1中可以发现, C中的结构就相当于类, 函数指针型成员就相当于类的方法。从这个层面来看C也能很好的实现类的封装, 也能完美实现类的接口定义。实际上在大型的工程项目中, 比如Linux的文件系统驱动程序的服务层, 就大量使用这样的声明形式, 以保证底层接口的一致性。
还可以看出, Java的风格和语法, 与C++惊人的相似。Java的类声明和实现都放在了一起, 不像C++那样可以放在不同的文件中。如果另外去观察一下微软的.Net语言, 特别是C#就可以发现, 其实和Java是一回事, 实际上.Net也是基于运行时库 (也是个虚拟机) 才能跑起来, 而且也支持内存垃圾回收。前面提到过VB的没落, 传统的VB和VB.Net正是由于虚拟机的不同而无法兼容, 若要重新改写程序还不如用C#或Java来得快, 所以传统的Basic要出局了。
3.3.2 类的实现
由于语法不支持类的概念, C语言必须通过设计来实现。所谓设计就是指通过合理安排代码和变量的作用域, 来达到隐藏和开放的功效。这样看似要多付出劳动, 其实细心观察可以发现, 这样一来反而要自由灵活很多。注意观察评估函数 (方法) 和变量的作用域。Java的代码包含了测试部分的代码。类的实现如表2所示, C和C++测试文件如表3所示。
通过观察上面的代码可以看出, 通过合理的设计, C同样能够实现类的封装、隐藏和多态, 而且比C++和Java更加直观。
3.4 跨平台与可移植性
由于硬件的蓬勃发展, 大量种类繁多的硬件平台涌现出来, 面对如此数量的新兴平台, 出于成本或者性能的选择, 软件的跨平台和可移植性日益显得重要起来。
Java的广告词里特别强调自己是跨平台的, 具有无比优越的可移植性。但是应该加一句, “仅限于应用程序”。基础软件领域和系统级的程序开发依然被C和C++控制。所谓基础软件领域通常指操作系统、编译系统和数据库系统。
另外, 经过长期进化, C和C++已经发展出非常完备的编译系统, 借助于这些强大的编译系统, 可以有效管理庞大的系统级的软件开发。比如复杂的操作系统的开发和编译, 无一例外的用到了MakeFile编译系统。而GNU的编译系统的兼容性是Java所望尘莫及的, 可以方便快速的加入对新型CPU的支持, 目前所有的CPU厂商都对GCC提供支持。
对于上文提到的测试程序来说, C和C++的跨平台性要优于Java, 特别是在嵌入式系统上。
从系统的角度讲, 做到与平台无关是不可能的。这也是嵌入式开发必须面对的大问题。GCC之所以在此大有作为, 原因在于它能涵盖硬件的变化。而Java只有寄希望于JVM, 而JVM又寄希望于操作系统——问题就出在这里。图4是从系统的角度来看各部分的依赖关系。
3.5 内存垃圾回收机制
VB早就支持内存垃圾回收机制。这也是VB的一大亮点。可以随心所欲的New对象, 而不用关心内存泄漏。VB甚至提倡无类型的变量, 以便于在运行时动态绑定实际对象。这些都是由于VB有后台内存管理的支持, VB的内存释放是隐式的, 不依赖于代码的控制。Java也支持自动内存管理, 但是不支持无类型变量。C/C++不支持自动内存管理, 与Java一样都是强类型限制的语言。
3.5.1 C和C++的内存管理
通常, C和C++的库函数提供内存分配和释放函数, 通过调用这些函数实现动态内存分配。至于何时申请, 何时释放, 完全取决于代码显式控制。虽然malloc一族的函数已尽量避免内存碎片的产生, 但是单从C或C++本身来看, 这依然会引起很大问题。
假设malloc函数被随机调用, 分配随机大小的内存块, 这时malloc通常会以最小管理单元为单位, 尽可能分配整块的内存来用。再假设free函数也被随机调用, 以释放先前获得的内存。并且内存获得与释放的总量保持动态平衡, 也就是说无内存泄漏。不管以何种概率模式推演, 最终会导致这样一种事实:大小相间的有用内存块与空闲内存块混杂在一起, 且单个块的大小趋近于malloc的最小管理单元。如此一来会导致无法分配比最小分配单元大的可用块。这个问题是C和C++最受攻击的软肋。
做个实验, 就在Linux系统 (32位) 上写一个简单的测试程序, 以不同的方式申请内存, 使用内存, 然后释放。
首先以数组的方式使用内存, 声明的用量不小于比实际内存的一个数量级 (10倍) 。在此用两种方式来分配和使用内存。C和C++的内存使用测试如表4所示。
在main中调用这两个函数, 在调用这两个函数之间插入一个停顿。运行这个程序, 同时观察这个程序的内存消耗情况 (用top或类似工具) 。可以分别在Linux和Windows中运行测试, 以便于对比分析。分两种情况编译测试, 一种是将ACCESSALLOFBLOCK设为0, 另一种是将ACCESSALLOFBLOCK设为1。当ACCESSALLOFBLOCK=0时不遍历分得的内存, 设为1时遍历分得的内存。
测试运行结果摘录如表5所示。
在Linux中用GCC编译, 在运行生成的测试程序之前, 需要扩大堆栈配置 (ulimit -s 131072) 。在Windows中编译需修改链接器的堆栈设置 (stack reserve size:134217728) , 编译成功后直接运行。
测试程序在Linux中运行时的屏幕截图如图5-6所示。
分析测试数据可以发现, 在测试程序整个运行过程中, 当不遍历取得的内存块时, 在Linux系统中, 该进程实际消耗的内存连1MB都不到, 不管是数组的方式还是的方式。原因是原来操作系统使用了一种虚拟内存管理的技术, 在操作系统一级进行内存管理, 只分配进程需要访问的内存, 暂时不访问的都不分配或者加以回收。在Windows中, 虽然一开始按照申请满额分配, 但在系统内存紧张或空闲一段时间后, 实际用量也回归到1MB以下。
当使用局部数组变量时, 占用的内存是从进程的栈内分得的。而malloc获得的内存则是从可能原本不属于该进程的堆内分配的。栈和堆是不一样的, 后面有讨论。当遍历取得的内存块时, 不管以何种方式获得内存, 实际内存用量立即上升。而且在使用数组的方式占用内存时, 即便是已退出数组的作用域, 但无用的内存并不会被马上回收, 如果进一步做实验可以发现, 这些内存在系统内存紧张的时候会被回收。
在测试的过程中还会发现, 在使用malloc获取内存的时候, 该进程的虚拟内存用量立即增加, 但free时立即就被系统回收了。
即便是进程的内存获取和释放会造成内存碎片, 但是操作系统会进行内存整理。从这个意义上说, 操作系统对所有的进程进行内存垃圾回收。这种回收仅在系统内存紧张或者空闲的时候进行。而malloc和free则是受程序直接控制的, 只要调用它们就会立即影响到内存的使用状态。
3.5.2 Java的内存管理
能够自动回收垃圾被认为是Java的一大亮点, 这个优点被无数的人推崇。前文分析了C和C++的内存管理模式。现在来看看Java是如何管理内存的。
在Java中, 当没有对象引用指向原先分配给某个对象的内存时, 该内存便成为垃圾。JVM的一个系统级线程会自动释放该内存块。垃圾回收意味着程序不再需要的对象占用的是“无用内存块”, 这些内存被回收利用, 以便给后来的新对象提供更多的可用内存。除了释放没用的对象, 垃圾收集器还可以整理已经存在内存碎片。碎片整理就是将被占用的内存集中转移到移到堆的一端, 使得空闲区域尽可能的连成一片, JVM将整理出的空闲内存分配给新的对象。JVM的动态内存整理机制造成了这样一种情况:在对象的整个生存周期, 它的实际地址有可能发生改变。这就造成了Java无法直接支持指针操作, 由于基于指针的操作本质上是基于地址的操作。
垃圾自动回收最直接的好处就是能减轻编程中内存管理的工作量, 但这种减少是有限的, 后面将有说明。垃圾自动回收的另一个好处是能保护程序的安全性, 垃圾收集是Java语言安全性策略的一个重要部分。
垃圾自动回收也有不利的方面。由于垃圾收集器和Java程序是并发交互运行的, 它不可避免地会影响到程序性能。垃圾收集器必须追踪运行着的程序中有用的对象, 同时释放没用的对象, 这一个过程需要和正在运行的程序争用CPU。L另外垃圾收集算法不可能保证收集到所有的无用内存。
Java的垃圾回收机制建立在其特定的对象声明和使用方法之上, 在使用对象之前必须先new一个, 这是Java的语法。在new的时候, JVM就开始追踪这个对象了, 当程序使用该对象的方法或者属性的时候, JVM就做相应的登记, 使用完之后, 通常是return到引用点的上一层函数, JVM会再次登记。以此来保证在执行垃圾回收的时候能准确辨别无用的垃圾和还在生存的对象。这种算法基于的概念通常被称作根集 (root set) 。根集包含了正在执行的Java程序可以访问的变量的集合 (包括局部变量、参数、类变量) 和可以使用的方法与属性的集合。从根集可达的对象都是活动对象, 它们不能作为垃圾被回收, 不可达的对象应该被回收。
垃圾回收的常用算法有:引用计数法 (Reference Counting Collector) , tracing算法 (Tracing Collector) , compacting算法 (Compacting Collector) , copying算法 (Coping Collector) , generation算法 (Generational Collector) , adaptive算法 (Adaptive Collector) 。
在后台运行的垃圾回收器实际上是在不可预知的某个时刻开始执行, 而且极有可能挂起应用程序。垃圾回收器在程序运行过程中开始执行的确切位置是不能确定的。这些使得程序无法精确控制执行的时间。这对于实时应用来说是无法接受的。
Java提供给应用程序的栈空间取决于系统的默认设置。Windows中通常是1MB, Linux中通常是10MB。所以Java中也会有栈溢出错误, 比如深层嵌套调用, 类似的例子很多, 本文不再列举具体代码。Java中new出来的对象都在堆中, 这样才能在比操作系统更高的层面上实现内存管理。
4 结束语
由于Java不能直接操作CPU, 这就限制了它在面向底层的应用。除非整个JVM能被轻松地包含在系统里头, 也就是说, CPU足够快, 内存足够大。而随着硬件技术的发展, 这是完全可能实现的。而实现的那一天, 说不定就是Java扬眉吐气之时。
古老的C/C++目前还是整个软件领域的中流砥柱。随着计算机技术的发展演化, 不断有后起之秀向它的统治地位发起挑战, 而它自身也日趋完善。虽然如此它还是会逐步退出应用程序的开发阵营。
参考文献
[1] TIOBE Programming Community Index for February 2010. [EB/OL].http://www.tiobe.com/.
Java程序设计语言 篇8
Java是一种非常流行的面向对象程序设计语言, 由于其优秀的跨硬件平台和跨操作系统能力, 被广泛应用于桌面、Web及移动平台各种应用的开发中, 因而在如今的高校计算机语言教学体系中占有重要的一席之地。然而, 在传统的Java教学过程中, 教师通常按照教材的教学内容介绍Java语言的各个知识点:语法元素、面向对象的概念:类、继承、封装等, 然后通过课后习题和验证型的实验题目来巩固和加深学生对于Java语言的理解程度。这种按部就班的教学方式是一种普遍适用的方式, 适合于大多数学生入门Java程序设计语言。但是, 这种教学方式无法体现Java程序设计语言的强大功能, 不能让学生直观地感受到Java语言的功能和作用, 甚至于很多学生在学习完了Java课程以后, 对于Java语言的知识要点缺乏整体性和连贯性的认识, 更没有建立起Java语言的功能和作用的感性认识。另外, 对于少数对Jav程序设计有着浓厚兴趣的学生而言, 这种教学方式的教学内容、作业和上机实验相对较为简单, 在规定的教学时间内, 大量的教学时间学不到真正感兴趣的、实用的内容。因此, 这种传统的教学方式, 不能做到因材施教, 不利于培养优秀的程序开发人才。
作为一种应用性很强的程序设计语言, 在Java语言的教学过程中, 如果教学环节采用孤立的案例介绍知识点, 在实验环节采用简单的、验证式的上机实验, 是很难激发学生学习兴趣, 也很难培养学生的实践应用能力。因此, 对于Java程序设计语言的教学内容和教学手段进行改革显得迫在眉睫。
一、Java课程教学改革实践
为了改变这种单一的Java语言教学模式, 我们在《Java程序设计语言》课程中进行了大胆的尝试。
1.1教学内容的改革。
在进行Java程序设计语言课程设计时, 应该围绕培养Java程序的应用能力进行分析和设计, 根据Java程序设计语言课程教学目标及应用能力培养要求, 我们将Java程序设计语言课程的主要教学内容分为:基本语法元素、控制流语句、数组、类和方法、数据库操作五大模块。为了让学生掌握Java软件开发的完整实现过程, 在介绍以上教学内容时, 不是孤立地介绍这些知识点, 而是以一个兼顾趣味性和实用性的小软件 (例如:股票持仓管理软件、家庭理财软件等) 作为贯穿整个教学内容的教学案例。另外, 为了让学生在学习Java程序设计语言的同时, 学习到一些实用的编程技术, 我们将Java编码规范穿插在教学内容中, 以培养学生良好的编程习惯。调试程序和阅读帮助文档等实用编程技能作为重要的编程素质和能力, 也穿插在教学内容中, 向学生进行讲授。
1.2教学和实验平台的改革。
我们选择了Android智能手机作为Java程序语言教学和实验平台。原因如下:
随着Android操作系统的流行和普及, 相对于价格高昂的苹果智能手机而言, Android手机的机型更为丰富, 市面上有大量600元——5000元的各种价位的Android手机。许多大学生使用的都是Android智能手机。在学习Java程序设计语言之前, 很多学生对于Android平台的App应用是如何开发出来的, 知之甚少。教师可以在Java程序设计语言教学之初引入相关的教学内容, 让学生了解到很多Android平台的App应用都是用Java语言开发的, 以此培养学生的求知欲。实验教学时, 让学生在自己的Android手机上运行自己开发的应用程序, 对于很多学生而言, 都是有吸引力的, 可以激发学生的兴趣和爱好。
1.3教学方式的改革。
对于Java程序设计语言的学习, 兴趣是最好的老师。传统的教学方式下, 教师主导了整个教学活动, 教学时间被教师大量占用, 用于介绍知识点、演示程序等, 重在Java语法的教学, 而不注重编程能力的培养。学生很容易在相对枯燥的语法教学中丧失了对编程的兴趣和爱好。
在课堂教学内容上, 侧重点从语法教学转向编程能力的培养。传统的教学方式以PPT和演示程序结合的方式。所有的程序源代码都是准备好的, 教师可以直接使用, 优点是对于教师而言, 快捷方便、可以节省大量的时间, 但对于学生而言, 未必是好事。许多学生反馈这种教学方式, 感觉程序就像“天上掉下来一样”, 搞不清Java程序实现的来龙去脉, 听完一堂课以后, 很难从零开始进行编程。因此, 我们改变了这一做法, 采用现场编程的方式, 边讲边做, 从Java程序建立工程、程序结构的划分、每一条语句的实现、类和变量的引入在课堂上逐一展示给学生, 把一个程序从无到有的完整实现过程展现给学生。
在实践教学内容上, 压缩验证型实验的内容, 增加项目驱动型实验的内容。并针对不同层次的学生布置完成不同的题目, 具体做法是:提供不同难度的实践题目供学生选择, 其中, 难度较低的题目有详细的完成步骤, 学生只要照葫芦画瓢, 写少量的代码即可完成, 另外几个题目相对较难, 例如:手机App软件开发, 需要学生主动学习和探索才能完成。
1.4考核方式的改革。
传统的Java程序设计语言课程通常采用笔试或者上机考试来评判学生学习的效果, 学生要在记忆和理解的基础上才能获得较好的考试成绩。这种评价方式操作简单, 但也存在一些问题, 例如:不能真正体现学生掌握和运用Java语言的真实能力。部分学生动手能力很强, 可以独立进行Java软件开发, 但是在笔试中往往无法获得较高的分数。取得好的考试成绩不一定代表学生具备了很强的对Java应用开发能力。
作为一门实践性很强的计算机专业课程, 我们认为:会“考”不如会“用”, 在评价学生成绩和学习效果时, 应该把会“用”放在会“考”之前。因此, 在课程开始之初, 我们制定了相应的课程成绩评定方法, 让期末总评成绩不再拘泥于笔试成绩:对于较好地完成了难度较大的实践题目的同学, 可以灵活地选择将实践题目的分数和笔试成绩中的最高分数作为期末综合成绩评判的主要依据。
在教学实施的过程中, 为了让优秀学生有充足的时间完成难度较大的实践题目, 可以根据软件完成的进度, 给予他们适当的“特权”:不需要完成书面作业、不打考勤等。这样可以放开这些优秀学生的手脚, 让他们做学习的主人, 最大限度地激发有编程天赋和爱好的学生的实践动手意愿, 真正地做到了因材施教, 可以更有利于培养高端的计算机软件人才。
二、实践效果分析
实践证明, 采用了新的教学模式以后, 学生的学习兴趣和学习积极性有了明显地提高, 学习效果也有了显著的提高, 分析原因如下:
(1) 采用一个贯穿教学的案例, 可以让学生从无到有地体验到一个完整的Java软件开发过程, 从而建立起Java软件开发的感性认识, 激发学生从事软件开发工作的兴趣和爱好, 充分调动学生的学习积极性。
(2) 这种教学方式给予优秀学生以自由的发挥空间。对于普通学生而言, 从优秀学生完成的手机App软件中, 也可以近距离地了解到这门语言所具备的功能, 认识到自己与同龄人中编程方面的佼佼者之间的差距, 从而对自己的编程能力有一个清晰的定位。
三、结论
本文讨论了Java程序设计语言的教学改革实践的一些问题, 旨在抛砖引玉, 为Java程序设计语言课程建设提供一些有益的思路和方法。随着IT技术的飞速发展, Java程序设计语言课程改革也要与时俱进, 紧跟市场需求, 勇于创新, 才能培养出社会所需要的高端软件开发人才。上述的分析和讨论仅仅是初步的, 尚有许多问题需要在课程教学实践中加以完善。
参考文献
[1]张席, 王志强.国内外Java教学模式的比较与探讨[J].计算机教育, 2007, 01:44-47.
[2]陈红军, 耿永军, 闫洪亮."JAVA程序设计"课程教学改革探讨[J].信息系统工程, 2010, 01, 128-130.
[3]姜大志, 孙浩军.基于CDIO的主动式项目驱动学习方法研究-以Java类课程教学改革为例[J].
[4]邵奇峰.Java系列课程的教学改革与实践[J].计算机教育, 2010, 20:40-42.
Java程序设计语言 篇9
关键词:WebQuest,技术,JAVA语言
随着时代的发展, 新旧交替的步伐越来越紧迫, 特别在计算机程序领域, 这种现象更加普遍寻常。在此基础上的的JAVA语言程序自身存在极大的弊端, 无论对于普通院校和广大的学生都产生了极大的困扰。与此而来伴生出现的变革的呼声也越来越明显。而Web Quest的引入无疑成为一剂药力十足的强心剂。到底效果如何实在值得我们进行必要的探究。
1 Web Quest概述
1995, 美国圣地亚哥州立大学的汤姆·马奇 (Tom March) 博士和伯尼·道奇 (Bernie Dodge) 提出了一种基于网络的教学模式, 是为Web Quest。Web Quest最初属于针对于培训普通教师的在线教学的模式。在风行当时的建构主义之下, Web Quest以普通的学生为教学中心, 宣称在由教师进行必要的引导, 利用网络泛资源, 由学生自主完成教师布置的学习任务。这种教学方法能够极大程度上提高学生的自主认知技能和解决实际工作突发问题的能力。这一教学方法不仅可以极大地提高学生的自主能力, 还可以培养学生自身创造力。
近年来, Web Quest教学模式在我国也有了一定的发展应用, 肇始于2000年的“英特尔未来教育”便是其中一大范例。作为英特尔公司大力普及课堂计算机技术在课堂应用而广泛开展的全球性的培训项目, 此活动通过培训一线的学科教师, 促进探究型学习的发展演变, 使得计算机与现有课程进行密切合作, 从而提高学生的学习效率。自2000年该活动在中国全国启动以来, 在31个省市地区取得了显著的发展成果。
2 java语言程序的现状分析
2.1 现状分析
现行的高职JAVA语言程序中, 实际企业所需求的知识与学校教授知识存在严重的脱节。在学习过程中, 学生缺乏对实际职业岗位所需求的切实能力的培养, 很多情况下学生们甚至缺乏必备的职业岗位素质培训。在学校方面, 将相当大比重的课程用于理论性知识的传授上, 应用在前沿领域的科技与趋势被严重忽略。学生没有足够的机会去训练自己的动手能力。很多情况下仅仅靠书写来设计java程序。这种情况下培养出来的工程师在进入到企业之后无法胜任java编程过程中的实际工作。另外, 师生缺乏必要的互动也严重影响了工作。
2.2 缺乏操作
缺乏明确的学习目的使得学生无法彻底明晰java程序。在很多学生眼中, JAVA仅仅在于掌握书本理论知识。加之老师未将企业在实际操作中要求的应用与技术导入到实践操作中, 学生一味钻研理论知识, 而缺乏对java的实际作用的了解。在学习过程中不能为参加工作后的Web程序开发、J2EE程序设计打下良好的操作能力积累。这种情况下的高职学生缺乏程序设计中惯常情况下积累出来的开发经验, 也无法达到企业对java程序员的实际要求。
2.3 缺乏创新
JAVA语言程序课程缺乏创新。基本上以学生教材中的内容硬性进行, 教师对语句和语法的讲解有着特殊的偏好。沿用一般意义的模式传统, 着重进行理论知识的讲授。通过程序语言导入编程思想的思维尚未普及, 进而未能很好的培养学生参加工作后所必备的实际操作技能。实践活动中所缺乏的实际能力培养环节使得学生只能对简单的程序进行读解而很难解决现实生活中存在的程序问题。更不要说那些伴随着工作产生的新的实际问题。很多学生在参加工作之后无法高效的思考程序算法, 开发技能的新突破口。很大程度上阻挠了学生的全面发展和工作潜能, 贻害极深。
3 JAVA语言程序的改进
3.1 过滤与精选
高职院校的JAVA课程在开设之前要加以筛选。借鉴OA办公框架作为教学范例, 力求知识点与项目的结合, 培养学生的程序设计与大胆面向对象的思想。从而实现分析项目、设计程序的习惯与思维。
在实际活动中, 也要适当分解整体, 结合教学大纲讲解知识要点, 以面向对象的软件设计思维引导进行步骤拆分:可行性、需求、概要设计、详细设计、编码、测试、运行、维护等环节循序渐进、分别展开。每一步骤又一定程度上被划分成不定的小任务。最终的目的在于培养学生对软件的开发流程掌握。从而实现初步具备初级程序员的各方面素质;可以对质量控制与开发模板进行初步使用, 完善编程规范。在明确学习任务与目标之后, 学生才能更好的完成既定任务, 与此同时还能极大的提高基本技能。
3.2 引入Web Quest技术
Web Quest的引入可以极大的调动学生自主学习的积极性。不同于传统的方式, 在Web Quest指导下的模式中仅仅对学生起到指导、帮助、促进的职责, 而学生则要通过自身的努力去探索, 从而掌握知识。学习兴趣在这种教学模式下被大大激发, 学生的学习动机增强之后可以自主创设适合自身的学习情境。而项目小组的划分也会培养孩子们的的团队协作能力与集体精神。
3.3 资源的建构
创新改进后的高职JAVA程序要充分利用网络资源的优势, 在Java课程、课件、前沿技术资讯等资料共享的平台上, 依托论坛、邮件、BBS等手段积极进行课外交流, 拓宽沟通渠道、拓展各种辅导材料的使用, 完成对应程序设计项目的练习, 巩固固有知识, 扩大未知知识面。另外, 网络平台对学生的学习效果的进行测试, 一定程度上可以提高Java的效率。
4 结语
本文对Web Quest技术与java语言程序设计的进行了现状分析, 分析现行资源与学生的学习情况。提出了二者的结合提案。Web Quest技术的导入可以极大提高学生的学习兴趣与积极性、自主性、合作精神, 减少求知盲目性, 为终身学习打下了良好的基础。
参考文献
[1]王晓光, 李娜, 张少龙, 齐应杰.基于WebQuest的高职java教学改革探索[J].考试周刊, 2012.
[2]石立霞.基于WebQuest的高职计算机基础课程教学模式探究[D].天津大学, 2010.
Java程序设计语言 篇10
会议中, 针对现今占了高等教育半壁江山的高等职业教育也提出大力发展的口号:坚持以就业为目标, 整合教育资源, 改进教学方式, 着力培养学生就业创业能力。
这次会议的精神给我们很大触动, 更高的要求给我们提供了更为明确的方向。作为高职教育体系中最为重要的课程教学环节成为了教学改革的“先锋部队”, 作为信息类课程——Java语言程序设计课程的授课教师, 我对深化教学体制改革、创新教育教学工作有了更深刻的思考和更实际的行动。
具体表现在以下方面:
1、进一步提升学生在课堂中的主
“体”地位, 突出教师的主“导”地位, 从真正意义上实现“教、学、做”一体化。在课程教学中形而上学地谈论高等职业教育中的“理论精、实践多”, 永远显得虚无缥缈, 与实际相差较远。真正意义上实现“教、学、做”一体化不应该仅仅成为一句口号, 而应该体现在具体的课程教学的分分钟里。为了能够更好地体现对学生能力的培养, 在课堂上我坚持以教材为牵引, 以案例为主体, 以实践为重心, 以培养学生能力为目标, 在一个实际案例中穿插入各个知识点, 不仅让学生可以真正掌握知识, 各个小项目教学法也让学生对于课程的理解更加深刻, 将知识最大限度地转换为能力。
抛却教师对课件的依赖性, 对教师自身提出更高的要求, 使用“记事本”做电子黑板, 一堂课下来, 从空白的文档, 逐步完善内容到完整的知识体系形成, 再辅以Java面向对象语言中常用的API文档的展示、传统教学模式——黑板的应用等等多种教学媒体交相呼应, 不仅有利于学生作记录, 同时学生的思路也一直在跟着教师的思路走, 这样的教学效果较之以往产生了明显的积极作用, 从而让我发现, 在信息技术类课程的教学中, PPT的使用较之“电子黑板”, 有一定的不足之处。
“记事本”中的内容精简、实用, 重点突出, 在讲课过程中不断穿插案例, 而案例的内容由浅入深, 由小到大, 由课堂到生活, 逐层递进, 体现实用型价值。授课的思想以抛出案例题目——分析案例内容——师生共同设计——改进程序缺失——学生自行设计的思想贯穿始终, 培养学生的编程思想和分析问题、解决问题的能力。一段时间下来, 学生真的可以抛却课本, 只凭课堂记忆和课后复习, 随堂做出具体的实训题目, 这对于学生以后走进企业有很大好处。
2、课程教学中突出重点, 分散难
点, 树立学生的编程思想, 塑造学生的专业素质。在重点和难点的把握上, 我们不再直接告知学生什么是重点和难点, 加重学生的畏难情绪。而是另辟蹊径, 将各个分散的实训一、实训二, …一一设计, 最终再整合成大的实训项目, 并辅以必要的程序相关的注释, 深入浅出地将思想渗透给学生。为了能够将难点分散, 采取先设置实例需求, 师生共同分析, 将大实例项目拆分成若干个子程序块, 即各个“点”, 之后各个击破, 这时学生看到的就是各个具体的学过的“点”, 最终再合成整体实例。这样学生不但了解了知识的具体应用领域, 也通过分析掌握了知识“点”与“点”间的联带关系, 能寻踪溯源, 真正锻炼学生的实际能力。
3、考试形式的改变, 摒弃应试教
育, 突显能力培养。一张卷纸定分数, 是一直以来的应试传统做法。正因为这种应试的心理, 在高等院校中, 很多学生的学习方法是在考试前突击能及格即可, 不仅对知识的掌握无益, 学生也浪费了太多的时间, 学习质量更是无法提升, 更重要的是并没有达到培养学生能力的目的。深入思考后, 我们创新Java课程的考核形式, 平时加大对学生随堂小实训项目的考核, 在期末考试时不给学生任何题目, 不给任何范围, 以开卷的形式考核。这种方式让学生无法不在平时学习, 提高教学质量的同时, 也提升了学生的学习积极性, 营造了更好的学习氛围。而从学生的期末考试成绩的总体分析来看, 确有积极作用。
Java程序设计语言 篇11
关键词:Java语言;安卓手机;软件开发
中图分类号:TP311.52
1 安卓软件应用程序
总体来说,一般比较简单的安卓应用程序主要由Activity、Content Provider、Service、Intent等部分组成,其中Activity相对于其他的应用程序对话框或者其他的网络应用程序的页面窗口来说,安卓手机提供多个使用的数据存储,同时他也被设计成为独立的可以保持自己在后台运行的服务,Intent是在运行的时候自动保存的机制,用来具体的描述一个程序想要作一件什么事情、从一个活动跳到另外一个活动,对于Intent来说,各个活动之间的切换是很方便的。
2 安卓手机软件的架构
2.1 应用程序
安卓手机软件会跟同一系列的核心的应用程序一起发布,该应用的程序还包括一些客户端,短消息的程序,日历、地图、浏览器等等的管理程序,所有的应用的程序都是利用Java语言来进行编写的。Java最大的特性就是提高了交互的可能性。
2.2 应用程序的框架
开发的人员可以完全的访问核心的应用的程序所使用的主要的框架,该程序的框架的设计简化了的一些重组的组件的使用的频率,在任何的时候一个应用程序可以同时的发布出它的功能并且在任何的时候都能够将其他的应用程序使用其主要的发布的功能性质的模块,不过得主要遵循框架的安全性的主要的限制。同时,还要将这些使用的机制也可以使用户也可以方便的替换主要的应用程序。
2.3 程序库
安卓手机包括C语言的程序,这些程序能够将安卓系统中的不同的组件的使用,他们还能够通过安卓的应用程序的框架为其主要的开发者提供服务。这个程序库里面的主要的内容就是Java语言的应用。
2.4 运行库
安卓系统的主要的运行库包括了一个核心的库,这个核心的库提供了Java的一些编程的语言的核心的大多数的主要的功能。安卓的手机软件的核心的服务的系统主要依赖Java的编程的语言,比如说安全性、内存的管理、进程上的管理等等的性质,主要的网络上的协议和驱动的模块,他都占有一个很大的比重。Java同时也作为硬件和软件之间的抽象的核心层面来存在。
3 Java语言的特点
3.1 面向对象
面向对象其实是现实世界模型的自然延伸。现实世界中任何实体都可以看作是对象。对象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心以算法为驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。
所有面向对象编程语言都支持三个概念:封装、多态性和继承,Java也不例外。现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法(其作用是处理数据或同外界交互)。所谓封装,就是用一个自主式框架把对象的数据和方法联在一起形成一个整体。可以说,对象是支持封装的手段,是封装的基本单位。Java语言的封装性较强,因为Java无全程变量,无主函数,在Java中绝大部分成员是对象,只有简单的数字类型、字符类型和布尔类型除外。而对于这些类型,Java也提供了相应的对象类型以便与其他对象交互操作。
3.2 可靠性和安全性
Java最初设计目的是应用于电子类消费产品,因此要求较高的可靠性。Java虽然源于C++,但它消除了许多C++不可靠因素,可以防止许多编程错误。首先,Java是强类型的语言,要求显式的方法声明,这保证了编译器可以发现方法调用错误,保证程序更加可靠;其次,Java不支持指针,这杜绝了内存的非法访问;第三,Java的自动单元收集防止了内存丢失等动态内存分配导致的问题;第四,Java解释器运行时实施检查,可以发现数组和字符串访问的越界,最后,Java提供了异常处理机制,程序员可以把一组错误代码放在一个地方,这样可以简化错误处理任务便于恢复。
由于Java主要用于网络应用程序开发,因此对安全性有较高的要求。如果没有安全保证,用户从网络下载程序执行就非常危险。Java通过自己的安全机制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。当Java字节码进入解释器时,首先必须经过字节码校验器的检查,然后,Java解释器将决定程序中类的内存布局,随后,类装载器负责把来自网络的类装载到单独的内存区域,避免应用程序之间相互干扰破坏。最后,客户端用户还可以限制从网络上装载的类只能访问某些文件系统。
上述几种机制结合起来,使得Java成为安全的编程语言。
4 安卓手机软件系统的开发优势
企业为什么要开发安卓手机软件,不仅仅是因为他有强大的谷歌作为后盾,并且还开放了软件开发的组件,可以将第三方的开源的主要的社区方便快捷的开发众多的实用性的安卓手机应用程序,而且他还与手机产业链中最具有影响力的龙头性的公司进行联合,建立非常标准的、开放化的通信的软件的平台,也就是说只要是采用安卓操作系统的主要的平台,就是基本上不受硬件的限制,程序的主要的可移植性能比较好,能够很好的解决当前的由于众多的手机操作系统的不同而造成的不同的智能手机之间的格式不一样从而造成不同的手机之间不能进行信息交流的问题。
安卓手机在中国的应用前景十分的广泛,首先是具有成熟的消费者,在国内,安卓系统非常的好用,这些软件的普及为了安卓系统的普及提供了主要的前提,国内的一些主要的运营商也加入了这个大家庭,比如说中国移动、中国联通、中兴通讯、华为通讯等等的一些比较大型的企业,同时也不仅仅是手机,我们国家也推出了安卓手机软件的其他的一些产品,我们可以预见安卓系统被广泛的应用,同时也将进一步扩大安卓系统的应用的主要的,同时根据目前的资料进行分析,全国到目前为止已经有23亿部的移动的设备使用安卓软件,其中手机占有百分之六十。
安卓系统在中国掀起的浪潮让越来越多的企业认识到移动设备对于中国产业的影响,企业安卓客户端的开发也受到了企业的一些关注,目前来说我们国家手机软件开发正处于高速增长的阶段经过一路的研究和探索和经验的总结,涌现了一大批的致力于开发的互联网的在线的传播的解决的方案的主要的运营商,主要是将手机应用软件的开发和推广,移动互联应用开发以及涉及安卓的手机平台,智能手机的应用开发的服务已经涵盖了很多的地方。安卓手机软件能够实现互交形式的完成,并且以此来为企业提供互联网的应用的解决的方案。
5 结束语
随着社会的发展,科技的创新脚步也越来越快,手机也慢慢的进入我们的视野之中,成为了我们生活中的必不可少的一些物品,随着Java语言在手机领域中的开发,手机上的软件大部分都是在他的基础上进行开发的,在其应用开发中应用也十分广泛,也依然占有着不可或缺的地位。
参考文献:
[1]埃始儿,陈灏鹏.Java的编程思想[M].北京:机械工业出版社,2009(08).
[2]霍斯特曼,柯内尔.安卓手机软件的开发[M].北京:电子工业出版社,2011(05).
[3]罗伯茨,基于Java语言的安卓手机软件的开发[M].北京:清华大学出版社,2010(03).
[4]盖索林,王世江.安卓操作指南[M].北京:人民邮电出版社,2011(03).
Java程序设计语言 篇12
关键词:Java教学,教学方法,课程设计
1 引言
众所周知, Java是20世纪90年代初推出的一种纯面向对象编程语言工具, 自从它面世以来, 已经获得了业界的一致推崇, 时至今日, Java已经发展为一个覆盖面广、效率高、易用性强的技术平台。为了适应人才市场的需求, 几乎所有高校都竞相开设了《Java程序设计》等相关课程。虽然IT企业对Java人才的需求量很大, 但却很难招聘到合格Java人员, 其中最根本的原因就是许多计算机专业的毕业生在读期间没有掌握实用的技能与经验, 距离企业的实际用人需求有较大的差距, 因此如何更好地发挥JAVA课程实践性强的特点, 使学生具备很强的动手实践能力、掌握JAVA程序开发技巧、积累项目开发经验便成了计算机教学中一个探讨与研究的热点和焦点。
2 Java程序设计语言教学中的常见问题
在Java程序设计这门课程日常的教学中以及与同事之间的相互交流中, 作者发现该门课程在实际教学中主要存在以下几个方面的问题:
(1) 学生普遍反映对Java程序设计有兴趣, 但同时也畏难。学生的兴趣来源于实际就业需要, Java的广泛应用是学生们想学习Java的主要原因。学生们通常对编程没有足够的了解, 在初学编程时, 很少会有学生真的因为爱好编程而学习Java。由于程序设计不仅要求设计者具有很强的逻辑思维能力, 思路清晰, 要求设计者能不断自我学习, 适应现代编程技术的变化。这对一些学生造成了学习压力, 进而导致这些学生畏难, 害怕编程。
(2) 希望获得更多实用技能和动手能力的培养。Java程序设计在课程改革以前, 主要通过传统的语言教学方法来进行, 在内容上从了解语言特征入手, 重点强调基础Java语法。尽管在实践教学中逐步引入了案例教学, 不过仍缺乏如何运用Java完成实际项目的内容。另外, 教学内容中也欠缺一些与编程相关的能力培养。包括使用参考文档的能力、使用开发工具的能力等等。虽然这些内容均不属于传统教学范围, 但都是学生在实际动手环节中必须用到的能力。因此有必要在Java程序设计教学内容和方法上做一些调整, 以促进学生实用技能的提高。
3 课堂教学方法的探索
3.1 侧重启发编程思想
无论学习哪一种编程语言, 最重要的是掌握其编程思想, 从而培养编程的感觉, 而不是对语言本身死记硬背。编程思想是在反复的实践、观察、分析、比较、总结中潜移默化积累的。多数情况下, 一旦掌握编程思想, 面对新的编程语言时, 只需要简单了解该语言的语法特点就可以即学即用。为了更好的启发学生的编程思想, 首先要培养学生解决实际问题的能力, 以解决实际问题的程序设计思想作为教学的切入点, 加强基础、强化实践、注重应用、引导创新, 启发学生用程序的方式来解决问题, 要把程序的组织结构、语句含义、运行流程和实际问题对应起来。其目的是使学生学会学习、学会思考, 学会自我启发的“关键能力”。教师可以让学生先解决一些简单的实际问题, 掌握编程的一些常用结构和方法。然后边学边用, 学生熟练掌握编程技术后, 就可以独立编程了。
3.2 改进教学手段采用多媒体教学
根据Java课程的特点, 教学手段上应充分利用现代化的多媒体教学方式, 利用大屏幕投影进行直观教学, 采用演示+操作+讲解 (即边讲边练) 授课方法进行教授。多媒体技术为教学提供交互式的教学环境, 学生可以按照自己的学习基础、学习兴趣来选择学习策略、学习的内容和适合自己水平的练习, 体现了学生的主体地位。学生在这种交互式教学环境中有了主动参与的可能, 有利于激发学习兴趣形成学习动机。使用各种软件实时操作进行教学, 学生可以同步感受软件的运行过程。演示程序的调试与运行过程, 真正实现了“用计算机教计算机”, 使教学更具直观性和互动性, 同时加大了授课的知识量。此外, 多媒体所提供外部刺激有利于学生对知识的获取与保持, 获得较好的教学效果。
3.3 采用案例教学激发学生学习兴趣
能够自己动手解决实际问题是学习的最直接动力, 是激发学习兴趣的根源所在。在Java程序设计课堂教学中采用案例教学方法可对每一个单一知识点进行教学。选取的案例都尽可能小而精, 针对特定问题。通过小型案例讲解独立知识点, 以案例模仿的形式促进学生动手能力。学生通过案例研究, 培养一种分析问题的能力和独立处理、迁移性的应用能力。学习过程贯穿于案例分析的过程之中, 培养学生学会抓住或发现问题, 然后结合所学知识寻找解决问题的途径、手段。这样不仅能帮助学生巩固已学的知识, 同时也能帮助学生提高自学能力和设计能力, 强化了案例教学的效果。
3.4 多读源码多动手
学习Java编程语言要经常阅读一些优秀的源码, 对自我提高、开阔视野非常重要。但一定要多动手才能真正把别人的东西消化掉。
很多学生学Java就是看书、听课, 当时是明白了, 过后马上就忘记。如果不愿意敲键盘, 就不如不学。即使有时候所敲的代码不太明白, 可以先运行, 看看结果, 增加感性认识, 然后上升到理性的认识。所以教学中一定要鼓励学生多动手写代码。
3.5 加强职业素质教育
良好的职业素质能使学生在工作生涯中终生受益。教师在传授专业知识的同时应该强调职业素质教育, 把职业素质教育融合到教学中去, 注重学生综合能力和解决实际问题能力的培养。
对于Java教学, 职业素质教育首先应该强调团队精神和协作能力。现实中的开发任务几乎是个人力量不可能完成的, 需要通过组成强大的团队来创造奇迹。其次应该养成规范化、标准化的代码编写习惯。良好的编写习惯, 使代码具有良好的可读性, 不但有助于代码的调试和移植, 也有助于不同技术人员之间的协作。
4 强化Java课程设计提高编程能力
课程设计是对本课程所学内容的综合运用和巩固提高, 它在整个Java教学过程中起到一个承上启下的关键性作用, 一方面能够巩固前面所学的基础知识;另一方面能让学生了解Java开发的一些基本流程, 为日后从事Java领域的开发作铺垫。
在课程设计的过程中采用分组的组织形式, 以完成小型任务为目标, 锻炼学生合作和设计能力。在分组实验中, 学生以3个人左右的小规模进行分组, 这样一方面可以保证每个学生都有动手实践的机会, 同时也能充分参与合作。学生个人的最终成绩取决于团队的最终成绩、个人在团队中的贡献以及教师对个人表现的评价。分组实验中通过竞争机制和团队成员的交流可以促进学生学习兴趣和提高团队合作能力。
在课程设计阶段, 学生已经有了一定的Java编程基础, 欠缺的主要是实际的开发经验和全面系统的、深入的掌握Java技术。解决的方法就是通过企业真实项目练习, 对所学知识进行深化, 然后通过项目来获取实际开发的经验, 尽快达到企业的实际要求, 让学生在具体的项目中进行学习, 缩短学生与企业之间的距离。
5 结语
Java教学一定要围绕提高学生实践应用能力展开, 注重面向对象编程思想的培养, 教学过程中要引入多媒体技术等先进教学手段。文中探讨了Java教学的一些问题, 提出了改进措施, 并实际应用于Java教学, 取得了很好的效果。其实, 教学关键在于因材施教, 所以文中所提及措施, 也不一定适合所有Java教学活动。但希望能够抛砖引玉, 愿各位教师教好Java, 愿各位学生学好Java。
参考文献
[1]全成斌, 杨士强, 赵有健.计算机工程实践教学的改革与探索[J].计算机教育, 2008 (4) .
【Java程序设计语言】推荐阅读:
JAVA程序语言教学09-22
Java程序设计教学07-24
java程序设计实验题目12-14
java程序设计实验指导12-14
java程序设计教学大纲09-01
《Java程序设计》课程简介10-13
java程序设计实习报告10-25
java面向对象程序设计教案12-20
C++语言程序设计05-16