Java语言(共12篇)
Java语言 篇1
1. Java语言的出现
自从1946年世界上第一台电子计算机问世以来, 计算模式的发展经历了三个阶段:集中计算模式、分散计算模式和网络计算模式。Internet的出现, 为在网络计算模式下的科学计算和信息处理提供了良好平台。然而, 要充分利用网络计算模式的功能与效益, 平台的运行环境是个制约因素, 而Java语言和Java技术则是解决这一问题的最佳途径。
2. Java语言的主要特点
Java语言是一种适用于网络编程的语言, 它的基本结构与C++极为相似, 但却简单得多。它集成了其它一些语言的特点和优势, 又避开了它们的不足之处。它的主要特点如下:
2.1 简单性
Java与C++相比, 不再支持运算符重载、多级继承及广泛的自动强制等易混淆和较少使用的特性, 而增加了内存空间自动垃圾收集的功能, 复杂特性的省略和实用功能的增加使得开发变得简单而可靠。简单化的另一个方面是Java的系统非常小, 其基本解释和类支持部分只占40KB, 附加的基本标准库和线程支持也只需增加175KB。
2.2 平台独立性
这是Java最吸引人的地方。由于它采用先编译成中间码 (字节码) , 然后装载与校验, 再解释成不同的机器码来执行, 即“Java虚拟机”的思想, “屏蔽”了具体的“平台环境”特性要求, 使得只要能支持Java虚拟机, 就可运行各种Java程序。
2.3 面向对象的技术
面向对象 (O-O) 的技术是近年来软件开发中用得最为普遍的程序设计方法, , 它通过把客观事物进行分类组合、参数封装、用成员变量来描述对象的性质、状态, 而用方法 (成员函数) 来实现其行为和功能。O-O技术具有继承性、封装性、多态性等众多特点, Java在保留这些优点的基础上, 又具有动态联编的特性, 更能发挥出面向对象的优势。
2.4 多线程
多线程机制使应用程序能并行执行, Java有一套成熟的同步原语, 保证了对共享数据的正确操作.通过使用多线程, 程序设计者可以分别用不同的线程完成特定的行为, 而不需要采用全局的事件循环机制, 这样就很容易实现网络上实时的交互行为。
2.5 动态性
Java的设计使它适合于一个不断发展的环境。在类库中可以自由地加入新的方法和实例变量而不会影响用户程序的执行。并且Java通过接口来支持多重继承, 使之比严格的类继承具有更灵活的方式和扩展性。
2.6 安全性
Java有建立在公共密钥技术基础上的确认技术.指示器语义的改变将使应用程序不能再去访问以前的数据结构或是私有数据, 大多数病毒也就无法破坏数据.因而, 用Java可以构造出无病毒、安全的系统。
Java语言除上述主要特点外, 还有高性能、分布性、强大性、解释性、可移植性等, 此处不再赘述。
3. Java语言的发展
Java自正式问世以来已经历了四年的历程, 时间虽短, 发展极快。一年一度在美国旧金山召开的世界Java One语言开发者大会 (Java One Developer Conference) 盛况空前正说明了这一点。四年中每年的Java One大会, 既是了解Java最新技术动态、应用成果和下一步发展趋势的最好场所, 又是推动下一年Java快速发展的重要动力。
3.1 加速后PC时代的进程
计算机的发展创造了Internet, 但是计算机现在却不是访问Internet的唯一方式。正在出现的信息化、智能化的消费类电子产品打破了PC作为信息终端的垄断地位, 成为人类进入Internet的新门户。信息终端的多元化预示着所谓后PC (post-PC) 时代的到来。消费类的信息终端量大面广, 是典型的瘦客户机, 其本身的资源和能力不能与PC相比, 但必须更加智能化, 并对服务器端的管理提出了更高的要求。而Java平台恰恰满足了这种要求。本次大会推出的Kjava虚拟机能运行在16以上的微处理器上, 占用内存少, 人们可以随心所欲, 在资源有限的设备上方便地开发出各种各样的应用, 直接运行在不同的消费类或其它电子设备上;而Jini的出现为Java网络连接提供了公共标准, 使得任何Java设备都可以连入网络中被自动识别, 并可充分利用网络上已有的各种资源。大力推进Jini的发展是Sun公司加速后PC时代进程的一项重要策略。
4. Java技术
Java发展至今日, 已不仅仅是一种编程语言, 实际上已形成了一门技术.其内容包括:
4.1 Java软件包
Java语言及其编程技术、Java OS、Java开发环境与工具、Java语言的各种软件包、数据库接口JDBC等。
4.2 Java虚拟机及其规范
4.3 Java嵌入技术 (Java芯片)
已推出的有Java戒指、Java卡等。1999年8月2日, Sun公司宣布名为MAJC的专门为Java语言设计的的芯片优化研制成功, 欲与Intel试比高低。该芯片在设计时采用了模块式高性能计算引擎, 实质为一种芯片级并行处理机, 能以更有效的方式分解计算任务, 特别适合处理多媒体数据。Sun公司希望通过MAJC芯片的发布催生出一个基于Java语言的微处理器家族, 与Intel公司竞争。设想中的Java处理器将应用在从低价消费电子产品到高端因特网服务器领域。
4.4 Java计算
基于Java技术的企业Internet/Intranet信息系统以及其他应用系统。
4.5 Jini技术
1999年初正式发布后, 立刻得到业界的广泛支持。Jini的出现为Java网络连接提供了公共标准, 使得任何Java设备都可以连入网络中被自动识别, 并可充分利用网络上已有的各种资源。它把网络上的各类设备 (包括消费类电子设备如移动电话、PDA、DTV、HPC、NC、游戏机、电冰箱、智能卡等等) 和各种软件组合成一个单一、动态的分布式系统, 使网络更易于操纵、易于管理, 具有更高的可配置性。Jini将使网络具有自发性, 它的出现大大扩展了“计算”和“计算机”的含义, 极大地简化了网络操作, 对家庭用户来说, 使用网上设备即插即用, 就像使用电话一样方便。Java和Jini不仅可以不依赖于Windows为代表的操作系统, 而且引导着信息产业的潮流, 使Sun公司能在未来的、非PC类电子产品的数字化市场中强占制高点。
4.6 Jiro平台
异质网络环境中安装的存储系统的多样性和分布性, 给存储管理带来了巨大的挑战。用户和开发人员都希望能有一种技术, 能更好地促进企业存储管理方案的开发。而Jiro平台正是解决此问题的革命性方案。Jiro平台实现了Java和Jini技术, 它是一个便于用户管理异质网络上由各种服务器、存储和设备组成的混合环境的开放式存储管理平台。它对操作系统是中立的。Jiro为跨异质存储局域网 (SAN) 的管理服务和设备提供了一个开放平台, 允许服务器、存储和联网设备在异质网络环境中无缝地协同工作。Jiro平台为开发者带来的好处有:
允许开发者利用各种实现管理存储网络的目标功能创建应用;
提供了一个可以在各种应用、服务和设备之间交互操作的组件模型;
允许设备易被增加、删除;
允许应用或服务被自动更新。
1999年7月, Sun发布了正式的Jiro规范草案, 供公众讨论、修改。目前, Jiro平台的团体成员已超过25家, 支持Jiro平台的厂商超过300家。有眼光的厂商纷纷加入到这些组行列, 从而加快了Jiro的发展。
参考文献
[1]Java语言:信息技术的一次震撼.国家科委信息司.[期刊]科技成果纵横, 1997-05-20.
Java语言 篇2
2.Java包括编程语言和相关的技术。
3.Java主要用于开发,桌面应用程序和Internet应用程序。4.开发一个Java应用程序的基本步骤:编写源程序,编译程序和运行程序。源程序以.java为扩展名,编译后生成的文件以.class为扩展名。使用javac命令可以编译.java文件,使用java命令可以运行编译后生成的.class文件。
5.编写Java程序要符合Java编码规范,为程序编写注释可大大增加程序的阅读性。
6.MyEcplise是一个功能强大的集成开发环境(IDE)。它的各种窗口便于Java程序的开发,调试和管理。
第二章变量、数据类型和运算符
1.变量是一个数据存储空间的表示,它是存储数据的基本单元。变量的命名规则:
(1)必须以字母,“_”,“$”开头。(2)可以包括数字,但不能以数字开头(3)不能包括除“_”,“$”以外的特殊符号(4)不能使用Java语言关键字或者保留字(goto)
2.Java中数据类型分为基本数据类型和引用数据类型,基本数据类型有整型(int),双精度浮点型(double),字符型(char)和字符串(String)。3.变量要先声明并赋值,才能使用。4.Java提供各种类型的运算符,具体如下。
(1)赋值运算(=)(2)算术运算符(+,-,*,/,%)(3)关系运算符(>,>=,<,<=,==,!=)(4)条件运算符(条件?表达式1:表达式2)(5)逻辑运算符(&& , || ,!, & , |)&&(短路与)与&的区别:&&进行判断时,当第一个条件为假,则不需要判断第二个条件,结果为假。&进行判断时,即使第一个条件为假时,也需要判断完第二个条件才能给出结果为假。||(短路或)与|的区别:与上同理(5)位运算符(&, | , << , >> , >>>)5.数据类型转换是为了方便不同类型的数据之间进行运算
6.数据类型转换包括了自动类型转换和强制类型转换,自动类型转换需要满足类型兼容且目标类型大于源类型的条件
7.Java中使用boolean类型表示真假,boolean类型的两个值为true和false。
8.Java中的关系运算符可以用于来比较大小,高低,多少等,比较厚的结果是boolean类型。
9.Java提供Scanner类,可以实现从控制台获取键盘上输入的信息
第三章选择结构(一)Java中的if选择结构,包括以下形式
(1)基本的if选择结构:可以处理单一或组合条件的情况(2)if-else选择结构:可以处理简单的条件分支情况(3)多重if选择结构:可以处理连续区间的条件分支情况(4)嵌套if选择结构:可以处理复杂的条件分支情况
第四章选择结构(二)1.switch选择结构适用于进行等值判断
2.switch关键字后面小括号里表达式的值可以是int , short , byte , char , 枚举 , String(JDK1.7开始支持)
第五章循环结构(一)1.循环结构由循环结构和循环操作构成,只要满足循环条件,循环操作就会反复执行
2.使用循环结构解决问题问题的步骤:分析循环条件和循环操作,套用循环结构的语法写出代码,检查循环能否退出
3.while循环结构是先判断后执行,do-while是先执行,后判断。Do-while至少执行一次。
4.debug调试:设置断点,单步运行,观察变量
第六章循环结构(二)1.for循环结构的语法结构如下
for(表达式1:表达式2:表达式3){
} //循环体
表达式1:循环结构的初始部分,为循环变量赋初值 表达式2:循环结构的循环条件
表达式3:循环条件的迭代部分,通常用来修改循环变量的值 2.用break和continue语句控制流程
(1)break语句用于终止某个循环,程序跳转到循环体外的下一条语句。Break也可以在switch语句中使用
(2)continue语句用于跳出本次循环,进入下一次循环
(3)return可以结束当前方法的执行并退出,返回调用该方法的语句处
第七章数组
1.数组是可以在内存中连续存储多个元素的结构,数组中的所有元素必须属于相同的数据类型
2.数组中的元素通过数组的下标进行访问,数组的下标从0开始 3数组可用一个循环为元素赋值,或用一个循环输出数组中的元素信息
4.通过数组名.length可获得数组长度
5.利用Arrays.提供的sort()方法可以方便的对数组中的元素进行排序 6.二维数组实际上就是一个一维数组,他的每个元素又是一个一维数组。
第八章循环结构进阶
1.数组的输入排序,选择排序,冒泡排序
2.在二重循环中可以使用break、continue语句控制程序的执行 选择排序:
思路:每次循环得到最小值的下标,然后交换数据。如果交换的位置等于原来的位置,则不交换。插入排序:
Java语言中的接口应用 篇3
关键词:Java接口:应用
中图分类号:TP311文献标识码:A文章编号:1009-2044(2007)07-20161-01
1Java接口的特点
浅论Java语言应用研究 篇4
1.1 平台无关
平台无关是指Java能运行于不同的平台。Java引进虚拟机原理, 并运行于虚拟机, 实现不同平台的Java接口之间。使用Java编写的程序能在世界范围内共享。Java的数据类型与机器无关, Java虚拟机 (Java Virtual Machine) 是建立在硬件和操作系统之上, 实现Java二进制代码的解释执行功能, 提供于不同平台的接口的。
1.2 安全
Java的编程类似C++, 学习过C++的读者将很快掌握Java的精髓。Java舍弃了C++的指针对存储器地址的直接操作, 程序运行时, 内存由操作系统分配, 这样可以避免病毒通过指针侵入系统。Java对程序提供了安全管理器, 防止程序的非法访问。
1.3 面向对象
Java吸取了C++面向对象的概念, 将数据封装于类中, 利用类的优点, 实现了程序的简洁性和便于维护性。类的封装性、继承性等有关对象的特性, 使程序代码只需一次编译, 然后通过上述特性反复利用。
1.4 分布式
Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。
1.5 应变能力
Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发出现的错误。Java自己操纵内存减少了内存出错的可能性。Java还实现了真数组, 避免了覆盖数据的可能, 这些功能特征大大提高了开发Java应用程序的周期。并且Java还提供了Null指针检测、数组边界检测、异常出口、Byte code校验等功能。
2 Java语言的四大应用领域
Java技术自1995年问世以来, 在我国的应用和开发也得到了迅速普及, 总体来看, 这些应用主要集中于企业应用开发。据有关单位调查显示, 从开发领域的分布情况上看Web开发占了一半以上, 为57.9%, Java ME移动或嵌入式应用占15%, C/S应用占11.7%, 系统编程占15.4%。近30%的开发者用Java从事C/S应用或系统级应用的开发。在桌面应用上, 尽管Java在桌面GUI方面尚有不尽如人意之处, 但仍然有很多开发者用来开发运行在多种操作系统平台上的桌面应用。具体应用在如下几个领域。
2.1 行业和企业信息化
由于Sun、IBM、Oracle、BEA等国际厂商相继推出各种基于Java技术的应用服务器以及各种应用软件, 带动了Java在金融、电信、制造等领域日益广泛的应用。如清华大学计算机系利用Java、XML和Web技术研制开发了多个软件平台, 东方科技的Tong Web、金碟的Apusic、中创的Inforweb等J2EE应用服务器及和佳ERP和宝信ERP等ERP产品, 已在许多企业得到应用。
2.2 电子政务及办公自动化
东方科技、金碟、中创等开发的J2EE应用服务器在电子政务及办公自动化中也得到应用:如金碟的Apusic在民政部、广东省市工商局应用;东软电子政务架构EAP平台在社会保险、公检法、税务系统得到应用;中创的Inforweb等Infor系列中间件产品在国家海事局、政府机关、银行等金融系统应用;基于Java平台开发的国产化集成办公软件"Office"也已在一些省市政府部门得到应用。
2.3 嵌入式设备及消费类电子产品
无线设备、通信终端、医疗设备、信息家电 (如数字电视、机顶盒、电冰箱) 、汽车电子设备等是今年以来比较热门的Java应用领域。在这方面的应用有中国联通CDMA 1X网络中基于Java技术的无线数据增值服务。
2.4 辅助教学
在辅助教学方面, 东南大学与中兴通讯公司开发了远程教学系统, 用于本地网上教学、课后学习和异地远程教育, 清华大学用Java进行了"计算机软件基础课"教学改革, 分析研究Java教学软件的汉化方案, 电子科技大学应用Java RMI技术进行远程教育, 西安电力高等专科学校采用Java技术, 开发了交互式电站仿真系统, 实现电站锅炉仿真、锅炉膛火焰仿真, 为实现网上仿真进行有益探索。
3 Java开发注意事项
3.1 政府主管部门要把Java技术及应用
作为落实“十二五”软件及信息产业发展规划的重要环节, 继续支持开发有自主版权的软件产品, 支持建立Java技术产品评测中心, 加强对相关产品的质量监管。
3.2 各行业主管部门及行业协会应积极
比对等的JAVA程序跑得更快了。随后的JDK 5.0和6.0进一步提高了执行性能, 由不同的组织举行的多项评测结果表明, JAVA与C语言的整体执行效率差距在一倍以内, 也就是说, 素以速度著称、并且为了速度放弃了很多东西的C语言, 现在比装备齐全的JA-VA只快不到一倍了。这还不算, 如果考虑到新的计算环境, C语言的速度优势有可能仅仅是一个错觉。因为, 世界上只有很少的人有能力在多CPU计算平台上用C语言写出又快又正确的大程序, 在这些人中间, 又只有很少的人有能力用C语言写出一个在大型的、异构的网络环境下能够充分发挥各节点计算能力的大规模并行程序。
4.2 功能。
C语言调试错误时间很长, 特别是内存方面的错误。大部分用C写的上规模的软件都存在一些内存方面的错误, 需要花费大量的时间把产品稳定下来。这还没有把安全方面的缺陷考虑在内, 现在大部分的开发者在代码安全方面的知识都很薄弱, 安全漏洞在代码中相当普遍, 而在C语言中, 这一不足格外明显。最大的挑战或许得说是并发问题了, 并发是一个很复杂的问题, 需要在相当高的抽象层面上解决, 而C语言的抽象机制过于简单, 提供不了高层的抽象, 因此在开发者只能从一些"并发原语"出发去构造并发程序, 这跟用铅笔刀锯大树没什么分别, 直截了当地说, 大部分C程序员根本没有能力编写高效无缺陷的并发程序。用C语言写单机、单线程的, 不会遭到外界攻击的, 在时间预算上没有什么压力, 而且用户能够忍受一个很长的产品稳定期的应用程序方面非常有经验。但是, 市场环境和计算环境已经完全变化。面对更复杂的计算环境, 用C语言来编写高质量的大规模软件, 是只有真正的专家团队才能完成的工作。相比之下, JAVA在抽象机制、基础设施、安全和并发方面, 与C语言对比, 有优势。
摘要:本文主要阐述Java语言的特点与优势, Java语言的四大应用领域, Java开发注意事项以及JAVA与C语言对比。
关键词:Java,应用,对比
参考文献
[1]林胜利, 路宗强, 王坤茹等.Java智能卡开发关键技术与实例[M].北京.中国铁道出版社.2006.
五子棋JAVA语言课程设计报告 篇5
课程设计报告
学 院: 信息科学技术学院 班 级: 软件技术2班 姓 名: 王更新 学 号: 1108900505 指导教师: 郭韶升 课设时间: 2014-03-17 至2014-03-26
二O一四 年 三月 二十六 日
目 录
一、设计要求…………………………………………....2
二、设计步骤…………………………………………....2 2.1程序流程图………………………….…………...2 2.2程序的功能分配……………………….………...3
三、设计正文…………………………………………....6 3.1创建棋盘类……………………………………….6 3.2判断输赢功能实现……………………………….9 3.3测试结果……………………………………….....9
四、心得体会…………………………………………...12
五、参考文献…………………………………………...12 附录(源代码)……………………………………….13
一、课程设计要求
设计一个15╳15围棋棋盘,由两玩家交替进行对战,并可以实现以下功能: 1.选择落子的先后顺序 2.重置棋盘 3.刷新重新开始 4.退出提示
并且规定退出者判为负,但退出过程中要有提示。以防不小心点错了。最后判断某一方是否为五子连珠。
实现一个简单的多用户五子棋的游戏程序,包括如下两个界面(1)选择对弈桌(执黑、执白)。
(2)在游戏界面,有开始,退出(游戏未结束、点退出自动判负);
二、设计步骤
2.1程序流程图
2.2 程序的功能分配
a.棋盘的绘制
public void draw_qipan(Graphics G)//画棋盘 15*15{
G.setColor(Color.lightGray);
G.fill3DRect(10,10,300,300,true);
G.setColor(Color.black);
for(int i=1;i<16;i++){
G.drawLine(20,20*i,300,20*i);
G.drawLine(20*i,20,20*i,300);
} } b.添加按钮
Button b1=new Button(“开始”);Button b2=new Button(“重置游戏”);Label lblWin=new Label(“ ”);Checkbox ckbHB[]=new Checkbox[3];Button exist = new Button(“退出”);public void init(){
ckbHB[0]=new Checkbox(“执白”,ckgHB,false);
ckbHB[1]=new Checkbox(“执黑”,ckgHB,false);
ckbHB[2]=new Checkbox(“观看”,ckgHB, false);}
c.鼠标棋子的触发事件
public void mouseClicked(MouseEvent e){
Graphics g=getGraphics();
int x1,y1;
x1=e.getX();
y1=e.getY();
if(e.getX()<20 || e.getX()>300 || e.getY()<20 || e.getY()>300){
return;
}
if(x1%20>10){
x1+=10;
}
if(y1%20>10){ y1+=10;
}
x1=x1/20*20;
y1=y1/20*20;
set_Qizi(x1,y1);
m*=(-1);}
d.按钮的触发事件
public void actionPerformed(ActionEvent e){
Graphics g=getGraphics();
if(e.getSource()==b1){
Game_start();
}
else{
Game_re();
}
if(e.getSource()==exist){
Game_re();
lblWin.setText(Get_qizi_color(color_Qizi)+“输了!”);
intGame_Start=0;
}
e.判断落子的位置及画出相应的黑白棋子 public void set_Qizi(int x,int y)//落子{
if(intGame_Start==0)//判断游戏未开始{
return;
}
if(intGame_Body[x/20][y/20]!=0){
return;
}
Graphics g=getGraphics();
if(color_Qizi==1)//判断黑子还是白子{
g.setColor(Color.black);
color_Qizi=0;
}
else{
g.setColor(Color.white);
color_Qizi=1;
}
g.fillOval(x-10,y-10,20,20);
intGame_Body[x/20][y/20]=color_Qizi+1;}
f.判断胜负
if(Game_win_1(x/20,y/20))//判断输赢1{
lblWin.setText(Get_qizi_color(color_Qizi)+“赢了!”);
intGame_Start=0;
}
if(Game_win_2(x/20,y/20))//判断输赢2{
lblWin.setText(Get_qizi_color(color_Qizi)+“赢了!”);
intGame_Start=0;} if(Game_win_3(x/20,y/20))//判断输赢3{ lblWin.setText(Get_qizi_color(color_Qizi)+“赢了!”);intGame_Start=0;} if(Game_win_4(x/20,y/20))//判断输赢4{ lblWin.setText(Get_qizi_color(color_Qizi)+“赢了!”);
intGame_Start=0;} }
三、设计正文
3.1创建棋盘类
Public class WcyChess extends Applet ActionListener,MouseListener,MouseMotionListener,ItemListener{ int color_Qizi=0;//旗子的颜色标识 0:白子 1:黑子
int intGame_Start=0;//游戏开始标志 0未开始 1游戏中
int intGame_Body[][]=new int[16][16];//设置棋盘棋子状态
int m=-1;Button b1=new Button(“开始”);Button b2=new Button(“重置游戏”);Label lblWin=new Label(“ ”);Checkbox ckbHB[]=new Checkbox[3];Button exist = new Button(“退出”);CheckboxGroup ckgHB=new CheckboxGroup();NetchatClient chat=new NetchatClient();public void init(){
setLayout(null);
addMouseListener(this);
add(b1);
b1.setBounds(330,50,80,30);
b1.addActionListener(this);
add(b2);
b2.setBounds(330,90,80,30);
b2.addActionListener(this);
ckbHB[0]=new Checkbox(“执白”,ckgHB,false);
ckbHB[0].setBounds(320,20,60,30);
ckbHB[1]=new Checkbox(“执黑”,ckgHB,false);
ckbHB[1].setBounds(380,20,60,30);
ckbHB[2]=new Checkbox(“观看”,ckgHB, false);
add(ckbHB[0]);
add(ckbHB[1]);
add(ckbHB[2]);
ckbHB[0].addItemListener(this);
ckbHB[1].addItemListener(this);
add(lblWin);
lblWin.setBounds(330,180,80,30);
lblWin.setBackground(Color.red);
lblWin.setText(“胜利者!”);//没有显示?
ckbHB[2].setBounds(440, 20,60, 30);
add(exist);
exist.setBounds(330,130,80,30);
implements
//
exist.addActionListener(this);add(chat);chat.setBounds(20, 500, 300, 300);chat.frame();chat.setVisible(true);Game_start_csh();setSize(500,600);setVisible(true);} public void itemStateChanged(ItemEvent e){ if(ckbHB[0].getState())//选择黑子还是白子{
color_Qizi=0;} else{
color_Qizi=1;} } public void mousePressed(MouseEvent e){} public void mouseClicked(MouseEvent e){ Graphics g=getGraphics();int x1,y1;x1=e.getX();y1=e.getY();if(e.getX()<20 || e.getX()>300 || e.getY()<20 || e.getY()>300){
return;} if(x1%20>10){
x1+=10;} if(y1%20>10){
y1+=10;} x1=x1/20*20;y1=y1/20*20;set_Qizi(x1,y1);m*=(-1);} public void actionPerformed(ActionEvent e){ Graphics g=getGraphics();if(e.getSource()==b1){
Game_start();} else {
Game_re();}
} if(e.getSource()==exist){
Game_re();
lblWin.setText(Get_qizi_color(color_Qizi)+“输了!”);
intGame_Start=0;} } public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mouseReleased(MouseEvent e){} public void mouseDragged(MouseEvent e){} public void mouseMoved(MouseEvent e){} public void paint(Graphics g){ draw_qipan(g);
3.2判断输赢功能实现
if(Game_win_1(x/20,y/20)){ //判断输赢1
lblWin.setText(Get_qizi_color(color_Qizi)+“赢了!”);
intGame_Start=0;} if(Game_win_2(x/20,y/20)){ //判断输赢2
lblWin.setText(Get_qizi_color(color_Qizi)+“赢了!”);
intGame_Start=0;}
if(Game_win_3(x/20,y/20))//判断输赢3{
lblWin.setText(Get_qizi_color(color_Qizi)+“赢了!”);
intGame_Start=0;}
if(Game_win_4(x/20,y/20))//判断输赢4{
lblWin.setText(Get_qizi_color(color_Qizi)+“赢了!”);
intGame_Start=0;}
3.3 测试结果
a.进入游戏界面
游戏开始的界面有三个选择项,用户可以选择相应的角色,选择 完毕后点击开始进入游戏。
b.选择角色,开始下棋
首先达到五个棋子连在一块的赢了,并在红色区域显示谁赢了!c.下完后,重新开始
下完一盘后游戏停止,点击重新开始,界面回到初始界面,选择角色继续游戏.d.游戏中点退出,自动判输
在下棋的过程当中谁中途退出,即点击退出,系统自动判断谁输
四、课程设计心得体会
通过此次课程设计,将我本学期所学的JAVA知识得到巩固和应用,在设计的过程中我遇到了很到问题,不过在老师和同学们的帮助和自己的思考下还是很好的完成了。这此课程设计还让我懂得了写程序不能闭门造车,要努力拓宽知识面,开阔视野,拓展思维。它还让我学会了在网上查阅那些无限的资料。由于自己的分析设计和程序经验不足,该系统设计和实现过程中,还有许多没有完善的地方,比如用户界面设计不够美观,异常出错处理比较差等多方面问题,这些都有待进一步完善和提高。对于文中出现的不足和系统中出现的问题敬请老师指导。
五、参考文献
1.吴其庆编著.Java程序设计实例教程.北京:冶金工业出版社 2.柳西玲.许斌编著.Java语言应用开发基础.北京:清华大学出版社 3.丁振凡 Java 语言实用教程 :北京邮电大学出版社
附录(源代码)
import java.net.*;import java.io.*;import java.applet.*;import java.awt.*;import java.awt.event.*;import java.applet.Applet;import java.awt.Color;Public class wuziqi extends Applet implements ActionListener,MouseListener,MouseMotionListener,ItemListener{ int color_Qizi=0;//旗子的颜色标识 0:白子 1:黑子 int intGame_Start=0;//游戏开始标志 0未开始 1游戏中
int intGame_Body[][]=new int[16][16];//设置棋盘棋子状态
int m=-1;Button b1=new Button(“开始”);Button b2=new Button(“重新开始”);Label lblWin=new Label(“ ”);Checkbox ckbHB[]=new Checkbox[3];Button exist = new Button(“退出”);CheckboxGroup ckgHB=new CheckboxGroup();public void init(){
setLayout(null);
addMouseListener(this);
add(b1);
b1.setBounds(330,50,80,30);
b1.addActionListener(this);
add(b2);
b2.setBounds(330,90,80,30);
b2.addActionListener(this);
ckbHB[0]=new Checkbox(“执白”,ckgHB,false);
ckbHB[0].setBounds(320,20,60,30);
ckbHB[1]=new Checkbox(“执黑”,ckgHB,false);
ckbHB[1].setBounds(380,20,60,30);
ckbHB[2]=new Checkbox(“观看”,ckgHB, false);
add(ckbHB[0]);
add(ckbHB[1]);
add(ckbHB[2]);
ckbHB[0].addItemListener(this);
ckbHB[1].addItemListener(this);
add(lblWin);
lblWin.setBounds(330,180,80,30);
lblWin.setBackground(Color.red);
e.getY()<20 || e.getY()>300){
lblWin.setText(“胜利者!”);//没有显示?
ckbHB[2].setBounds(440, 20,60, 30);add(exist);
exist.setBounds(330,130,80,30);exist.addActionListener(this);Game_start_csh();setSize(500,600);setVisible(true);}
public void itemStateChanged(ItemEvent e){ if(ckbHB[0].getState())//选择黑子还是白子 {
color_Qizi=0;} else {
color_Qizi=1;} }
public void mousePressed(MouseEvent e){} public void mouseClicked(MouseEvent e){ Graphics g=getGraphics();int x1,y1;x1=e.getX();y1=e.getY();
if(e.getX()<20 || e.getX()>300 ||
return;}
if(x1%20>10){
x1+=10;}
if(y1%20>10){
y1+=10;}
x1=x1/20*20;y1=y1/20*20;set_Qizi(x1,y1);m*=(-1)}
public void actionPerformed(ActionEvent e){ Graphics g=getGraphics();if(e.getSource()==b1){
Game_start();
} else{
// 输了!“);
赢了!”);
Game_re();}
if(e.getSource()==exist){
Game_re();
color_Qizi=m;
lblWin.setText(Get_qizi_color(color_Qizi)+“
intGame_Start=0;
}
}
public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mouseReleased(MouseEvent e){} public void mouseDragged(MouseEvent e){} public void mouseMoved(MouseEvent e){} public void paint(Graphics g){ draw_qipan(g);}
public void set_Qizi(int x,int y){ //落子
if(intGame_Start==0){//判断游戏未开始
return;}
if(intGame_Body[x/20][y/20]!=0){
return;}
Graphics g=getGraphics();
if(color_Qizi==1){//判断黑子还是白子
g.setColor(Color.black);
color_Qizi=0;} else{
g.setColor(Color.white);
color_Qizi=1;}
g.fillOval(x-10,y-10,20,20);
intGame_Body[x/20][y/20]=color_Qizi+1;if(Game_win_1(x/20,y/20)){ //判断输赢1 lblWin.setText(Get_qizi_color(color_Qizi)+”
intGame_Start=0;
了!“);
赢了!”);
赢了!“);
15*15
}
if(Game_win_2(x/20,y/20)){ //判断输赢2{
lblWin.setText(Get_qizi_color(color_Qizi)+”赢
intGame_Start=0;}
if(Game_win_3(x/20,y/20)){ //判断输赢3
lblWin.setText(Get_qizi_color(color_Qizi)+“
intGame_Start=0;}
if(Game_win_4(x/20,y/20)){ //判断输赢4
lblWin.setText(Get_qizi_color(color_Qizi)+”
intGame_Start=0;} }
public String Get_qizi_color(int x){
if(x==0){
return “黑子”;} else {
return “白子”;} }
public void draw_qipan(Graphics G){ //画棋盘 G.setColor(Color.lightGray);
G.fill3DRect(10,10,300,300,true);G.setColor(Color.black);for(int i=1;i<16;i++){
G.drawLine(20,20*i,300,20*i);
G.drawLine(20*i,20,20*i,300);} }
public void Game_start(){ //游戏开始
intGame_Start=1;
Game_btn_enable(false);
b2.setEnabled(true);} public void Game_start_csh(){//游戏开始初始化
intGame_Start=0;
Game_btn_enable(true);
b2.setEnabled(false);
ckbHB[0].setState(true);
for(int i=0;i<16;i++){
for(int j=0;j<16;j++){
intGame_Body[i][j]=0;
}
}
lblWin.setText(“");} public void Game_re(){ //重新开始游戏
repaint();
Game_start_csh();} public void Game_btn_enable(boolean e){ //设置组件状态
b1.setEnabled(e);
b2.setEnabled(e);
ckbHB[0].setEnabled(e);
ckbHB[1].setEnabled(e);} public boolean Game_win_1(int x,int y){ //横向判断输赢
int x1,y1,t=1;
x1=x;
y1=y;
for(int i=1;i<5;i++){
if(x1>15){
break;
}
if(intGame_Body[x1+i][y1]==intGame_Body[x][y]){
t+=1;
}
else{
break;
}
}
for(int i=1;i<5;i++){
if(x1<1){){
t+=1;
}
else{
break;
}
}
if(t>4){
return true;
}
else{
return false;
} } public boolean Game_win_2(int x,int y){ //纵向判断输赢
int x1,y1,t=1;
x1=x;
y1=y;
for(int i=1;i<5;i++){
if(x1>15){
break;
}
if(intGame_Body[x1][y1+i]==intGame_Body[x][y]){
t+=1;
}
else{
break;
}
}
for(int i=1;i<5;i++){
if(x1<1){
break;
}
if(intGame_Body[x1][y1-i]==intGame_Body[x][y]){
t+=1;
}
break;
}
if(intGame_Body[x1-i][y1]==intGame_Body[x][y]
else{
break;
}
}
if(t>4){
return true;
}
else{
return false;
} } public boolean Game_win_3(int x,int y){ //左斜判断输赢
int x1,y1,t=1;
x1=x;
y1=y;
for(int i=1;i<5;i++){
if(x1>15){
break;
}
if(intGame_Body[x1+i][y1-i]==intGame_Body[x][y]){
t+=1;
}
else{
break;
}
}
for(int i=1;i<5;i++){
if(x1<1){
break;
}
if(intGame_Body[x1-i][y1+i]==intGame_Body[x][y]){
t+=1;
}
else{
break;
}
}
if(t>4){
return true;
}
else{
return false;
} } public boolean Game_win_4(int x,int y){ //左斜判断输赢
int x1,y1,t=1;
x1=x;
y1=y;
for(int i=1;i<5;i++){
if(x1>15){
break;
}
if(intGame_Body[x1+i][y1+i]==intGame_Body[x][y]){
t+=1;
}
else{
break;
}
}
for(int i=1;i<5;i++){
if(x1<1){
break;
} if(intGame_Body[x1-i][y1-i]==intGame_Body[x][y]){
t+=1;
}
else{
break;
}
}
if(t>4){
return true;
}
else{
return false;
} } }
Java语言 篇6
关键词 Java语言; IT技术; Java技术
1 Java语言的开发技术的回顾
从世界上第一台电子计算机诞生到现在,计算机模式的发展经历了三个阶段:集中计算模式、分散就算模式和网络计算模式。由于现在Internet 的出现更是使计算机的科学计算和信息管理得到普及,然而要充分利用这些优势就需要掌握其中一门高级语言,因此Java语言和Java技术就是解决这个问题的关键。
当1995年SUN推出Java语言之后,全世界的目光被之吸引,为什么它是如此神奇呢·
1991年Java诞生,起初被称为OAK语言,是SUN公司为一些消费电子产品而设计的一个通用环境。最初目的只是开发一种独立于平台的软件技术,而且在网络出现之前,OAK语言可以说是默默无为,甚至面临消失。但是网络的出现改变了它的命运。
微软总裁比尔o盖茨在认真观察了一段时间后将其确定为是长时间以来最卓越的程序设计语言,并确定微软整个软件的开发战略从PC单机时代以网络为中心的计算时代转移,而购买Java是他的重大战略实施部署。
因此,Java的诞生对计算机产业的发展产生了深远的影响,对传统的计算模型提出了新的挑战。甚至有人说:Java将成为网络的"世界语",今后用其他高级语言编写的软件系统都要改为用Java语言来写。
2 Java语言的主要特点
2.1 平台无关性。 平台无关性是指Java能运行于不同的平台。Java引进虚拟机原理,并运行于虚拟机,实现不同平台的Java接口之间。使用Java编写的程序能在世界范围内共享。Java的数据类型与机器无关,不同于C语言,Java虚拟机时建立在硬件和操作系统之上,实现Java二进制代码的解释执行功能,提供与不同平台的接口。
2.2 安全性。 Java的编程类似与 C++,学习C++的读者将很快掌握Java的精髓。Java舍弃了C++的指针对存儲器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。Java对程序提供了安全管理器,防止程序的非法访问。
2.3 面向对象。 Java吸取C++面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。程序员只需把主要精力用在类和接口的设计和应用上。Java 提供了众多的一般对象的类,通过继承即可使用父类的方法。在Java中,类的继承关系是单一的非多重的,一个子类只有一个父类,子类的父类又有一个父类。Java 提供的 Object 类及其子类的继承关系如同一棵倒立的树形,根类为 Object类, Object类功能强大,经常会使用到它及其它派生的子类。
2.4 分布式。 Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP 协议传送和接受信息的方法。这使程序员使用网络上的文件和使用本机文件一样容易。
2.5 健壮性。Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自已操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能。这些功能特征大大提高了开发Java应用程序的周期。Java提供: Null指针检测、 数组边界检测、 异常出口、 Byte code校验。
Java语言除上述主要特点外,还有高性能、分布强、强大性、解释性、可移植性等特点,此处就不再讲述。
3 Java语言的未来展望
在2005年的JavaOne开发者大会上,JamesGosling3结束语作了题为"Java技术下一个10年贡献"的演讲。谈到未来数字媒体将是Java的下一个重点市场,同时,教育和健康将是未来Java发展过程中的两大重点应用领域。JamesGosling还提到了有关Java软件的性能和复杂性问题。鉴于许多机器运行着大量进程的实际情况,人们对线程模型投以越来越多的关注。但愿真能像Sun宣称的那样,Java语言将成为我们未来生活的一部分。在这次大会上,JamesGosling还同Java技术先驱,现任Kleiner、PerkinsCaulfieldandByers合伙人的Bill Joy先生, Sun公司首席科学家JohnGage先生,未来研究所主任PaulSaffo先生,Sun杰出工程师GuySteele先生以及开发Internet AppliedMindes公司主席及首席技术官Danny}Ii11is先生等一起探讨了Java语言的过去和未来发展情况。
他们认为技术提高了计算机的"流动性",就如同货币的发明提高了商品的流动性一样。无所不在的网络丰富了每个人的信息,就如同可以兑换的货币产生了财富一样。由于从前的网络速度很慢,所以计算被束缚在特定的计算机上,而这种情况将一去不复返了。
目前,全球Java开发人员已经超过450万,而与之相对应的是Java社区充满活力和创新精神,这正是Java下一个10年更加繁荣的保障。为了保持Java的增长和推进Java社区的参与,Sun在Java One开发者大会上宣布开放Java核心源代码,以鼓励更多的人参与社团活动中来,这是Sun为推进社团发展和维护Java技术兼容性而迈出的重要一步。
4 结束语
看到Java语言有如此大的发展潜能,在将来Java很可能应用到数字多媒体上,而与此同时Java也会涉足教育和健康两大领域。希望能和Sun说的那样Java会变成我们生活的一部分。
参考文献
[1] 张卫民,廖湘科,Java语言与WWW(计算机技术丛书).
[2] [美]Jerry Ablan编.用Java开发Internet应用
浅析Java语言程序设计 篇7
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) .
Java语言异常处理技术分析 篇8
1 Java语言异常的结构与分类
Java语言异常的定义, 即因程序执行错误而产生的异常对象。往往与Java语言异常处理技术机制相互对映。Java语言异常处理技术机制可以用来辨别、筛选、和解决异常。Java语言异常处理技术机制工作效率较高。不仅可以让java语言编写的程序更加完善、可靠、健壮还有利于解决异常。其他以往的异常处理技术, 往往采用的是执行一条跳转指令或者结束程序的进程或者异常发生时调用级别较低的函数处理等来处理异常。
1) Java语言异常的结构。
在Java中的系统类Throwable的子类涵盖了系统中所有异常类, 项目Object产生Throwable, 然后Throwable相应产生了:Exception和Error两个子类。Exception主要是指, 程序在运行的过程中可能捕获的异常。Exception类派生的还有Runtime Exception这个极其重要的子类, 在Java中Exception类和Runtime Exception类一同被称作是Java程序运行时产生的异常。例如除数为零或者下标超出范围这类异常是运行过程中产生的错误。Error一般是由系统异常引起的, 不但不可恢复, 而且在一般情况下是不愿意被程序检查获取的。主要是指Java虚拟机 (JVM) 异常或者系统异常, 代表了严重的系统异常。
2) Java语言异常的分类。Java语言异常的种类有两种, 一是系统定义的, 一种是用户定义的。系统定义异常的种类有很多主要包括:非法的输入、输出引起的Io Exeeption异常、由数据类型匹配引起的Numbcr Fomat Exception异常、由算数错误, 比如除数为0引起的Arithmetic Exception异常、由下标超出范围引起的Index Out Of Bounds Exception异常、由中断引起的Interrupted Exception异常等。系统自定义的异常种类无法满足用户需求时, 用户就自己定义异常。该过程中的异常对象是由程序员依据程序的需要来创建的。为使程序可以自动抛出异常, 程序员在创建的过程中, 最先应当创建的是异常的种类。运用Exception建立新类, 通过继承来使创建的子类可以与父类拥有同样的处理代码和接口。
2 Java语言异常处理的种类和优势
Java语言异常处理的原则指的是java程序在运行的过程中会出现各式各样的运行错误, 这些错误会产生对应的异常的对象, Java语言异常处理技术则是把这些异常对象进行采集统一处理。把正确的代码和异常的代码分类处理。Java的异常处理可分为以下三个方面:第一、Java程序进行执行时, 若在此时产生了系统可查出的异常, 那么系统会自动产生一个和该异常相匹配的异常类的对象, 同时这个异常对象会被送到Java运行时所在的系统, 这个异常处理即抛出异常。第二、如果Java程序运行时所在系统接入到异常对象, 会自动查询能解决这一类异常的程序代码, 然后这类异常对象就统一由这一程序处理, 该异常处理就是捕捉异常。第三、假如Java程序运行时所在的系统不能查询到处理这类异常的匹配的程序, 则系统自动强制结束程序的运行, 然后采取利用处理缺省异常程序的方法来处理。
1) 处理种类。
抛出异常可以理解为:用Java语言编写的程序在运行的时候被检查到有可以查出的异常, 因此而产生了一个与之匹配的异常的类的对象。这个与异常匹配的对象中涵盖了错误的种类和发生异常时的程序所处系统的状态情况。抛出异常有两种:一是在程序执行过程中用throw语句指定抛出异常。二是系统自动抛出异常。在程序执行过程中用throw语句抛出异常是指在main函数中调用throw语句将异常抛出。系统自动抛出异常是指除了用户定义之外的异常均可由系统抛出。比如, 当数组下标超出范围时, 系统识别异常并且把异常抛出。此时, 系统把异常与系统中的预定义的错误种类进行匹配识别, 然后匹配成功来终止程序的执行。捕捉异常和终止程序结束异常是指在一些特殊的情况下, 系统不知道如何去处理错误, 会将异常向上抛。如果Java程序运行时所在系统接入到异常对象, 会自动查询能解决这一类异常的程序代码, 然后这类异常对象就统一由这一程序处理, 那么就会捕捉异常进行处理, 假如Java程序运行时所在的系统不能查询到处理这类异常的匹配的程序, 则系统自动强制结束程序的运行, 然后采取利用处理缺省异常程序的方法来处理, 那么就是终止程序结束异常。
2) Java语言异常处理的优势。与传统的异常处理方式, 比如:一条跳转指令、结束程序的进程、异常发生时调用级别较低的函数处理等相比, Java语言异常处理技术把异常进行了分类, 识别了异常的种类让程序员清楚地知道哪里发生异常, 发生了什么异常以及异常产生的原因, 还把错误代码和正确代码进行了分离, 利于处理, 提高了程序的可靠性和安全健壮性。不仅可以对异常进行分类管理还能使异常被系统捕获, 并且进行下一步的处理, 使程序员工作的效率得到提高。
3 结论
Java语言异常处理的技术把正确代码和异常代码进行分开处理, 体现了Java语言异常处理技术的优点和先进性。但是, Java语言异常处理技术会增加程序运算量, 给计算机带去处理Java语言异常的其他开销, 所以相关编程人员应当注意异常的处理, 在编程的过程中, 科学合理的使用Java语言异常处理技术对于编程工作者写出健壮可靠的代码是十分有必要的。Java语言异常处理技术不仅能提高程序整体的可靠性, 还能避免编程人员在工作上出现重大的错误, 有利于编程工作者的编程工作。身为一名编程工作者, 应当加强对Java语言异常处理技术的运用能力。
摘要:Java语言异常处理技术是Java语言的重要技术特点, 准确科学的处理Java语言中存在的异常, 这样做对于维持程序的健壮性和可靠性是特别关键的。Java语言异常处理技术分析的主要原理就是在理解了Java语言异常处理技术分析的主要思想之后, 在Java语言的所处环境中, 对Java中出现的异常进行有针对性的实质性的检查指导, 并且对这些异常加以处理, 使之得到解决。本人研究了Java语言异常处理技术的思想和概念, 并且对Java语言异常处理的技术进行了具体的分析, 找到了解决方法。
关键词:Java语言,异常处理,结构,分类,技术分析
参考文献
[1]袁小英.基于Java语言的异常处理机制的研究[J].计算机光盘软件与应用, 2011 (16) :115, 158.
[2]韩瑞峰.J a v a异常处理机制及应用研究[J].忻州师范学院学报, 2012, 28 (2) :25-27.DOI:10.3969/j.issn.1671-1491.2012, 02, 009.
浅析Java语言的生存现状 篇9
1999年6月15-18日, 第四届Java大会召开, 出席会议者达20 000人, 300多家厂商参展, 举办400多场技术讲座, 555名演讲者慷慨陈词, 精彩纷呈。这次Java大会主要对Java的生存现状进行了分析, 并提出相应的建议。
一、Java框架结构清晰化
Sun公司公布了Java平台的最新架构, 重新定义的Java平台以Java 2为核心, 由面向企业和服务器市场的企业版Java 2 (J2EE) 、面向传统PC客户机市场的标准版Java 2 (J2SE) 和面向信息电器等后PC终端设备市场的Micro版Java 2 (J2ME) 三大部分组成。其中, J2EE包括Enterprise JavaBeans, Java Server Pages&Java Servlets, Java Mail API, Java Massage Service等部分。而J2ME则是原有的Personal Java, EmbeddedJava, JavaCard以及刚刚推出的Kjava组成。虽然新框架结构中的内容都是已有的, 但这样重新定义和组合, 使得Java平台的概念简单化, 从而变得易于理解, 更适合市场推广。
二、重点放在企业平台
随着网络的飞速发展, 企业计算模式正摒弃C/S结构而采用Web-Browser结构, 此即瘦客户端/胖服务器、大容量数据库的3层或N层体系结构。由于Java的特点使得它在开发服务器端的应用程序方面有着得天独厚的优势, 面向服务器端的J2EE为当今逐渐流行的N层体系结构提供了一个标准的Java计算平台:界面一致、工具简易丰富、Web页面互联便捷, 从而大大加速和简化各种应用系统的开发。
三、加速后PC时代的进程
计算机的发展创造了Internet, 但是计算机现在却不是访问Internet的唯一方式。正在出现的信息化、智能化的消费类电子产品打破了PC作为信息终端的垄断地位, 成为人类进入Internet的新门户。信息终端的多元化预示着所谓后PC (post-PC) 时代的到来。消费类的信息终端量大面广, 是典型的瘦客户机, 其本身的资源和能力不能与PC相比, 但必须更加智能化, 并对服务器端的管理提出了更高的要求。而Java平台恰恰满足了这种要求。本次大会推出的Kjava虚拟机能运行在16以上的微处理器上, 占用内存少, 人们可以在资源有限的设备上方便地开发出各种各样的应用, 直接运行在不同的消费类或其他电子设备上。而Jini的出现为Java网络连接提供了公共标准, 使得任何Java设备都可以连入网络中被自动识别, 并可充分利用网络上已有的各种资源。大力推进Jini的发展是Sun公司加速后PC时代进程的一项重要策略。
四、应用系统异彩纷呈
Java系统主要的展示有:应用工具、应用系统、信息家电等。特别在实时系统开发方面, 以IBM为首开发出了应用于工业实时环境的Java嵌入系统, 展现出Java在工业领域的广阔应用前景。Java语言的出现和发展, 得到了IT业界的青睐, 它像一面大旗, 凝聚了世界众多的厂商, 与Sun公司一道, 结成了对抗微软垄断的联盟。许多知名厂商纷纷购买Java许可证, 目前已有90多万个软件开发商加入了Java阵营, 1亿个Java最终用户, 几千种Java应用软件产品, 1 500余种Java书籍。这真是IT业界的盛事。
五、发展范围广泛
IBM公司提出“高举Java大旗, 全力以赴”的口号, 它在全世界的11个国家有28个实验室, 集聚了2 500余名技术人员, 全天24小时进行全方位开发。芯片巨人Intel提出“抓住时机, 占领Java阵地”, 决心使Intel芯片系统成为开发Java应用运行的最佳平台。Novell则宣称“Java是Novell的未来, 未来是服务器端Java的市场”。作为Java发明者的Sun公司, 坚持“保卫Java大旗, 发展Java之路”的方针, 通过对Java的“研究内部核心构造及技术推广”的过程, 从而占领市场。此外, HP, Oracle, Apple, Sybase, Netscape, Informix, 3Com, Motorola等公司均是Sun的坚强同盟。
在我国, Java的引进与开发起步早, 发展水平基本与世界同步。目前, Sun公司已在中国建成了5个授权中心、20多个Internet/Intarnet Java解决方案中心和10所Java大学、若干培训中心组成的三级结构, 全面推动Java在中国的普及、应用、研究、开发, 培养了数以十万计的Java开发人员。此外, Sun还牵头成立了中外软件厂商的开发联盟。
在中国, Java的开发可以说是人才济济, 成果累累。如清华大学王克宏教授带领的课题组面向全国, 自1996年开始举办了多期Java培训班和讲座, 开设了数期本科生、研究生Java课程, 出版了“Java系列丛书”10余册, 承担了国家“九五”攻关项目“基于Java技术的交互式远程教学系统”, 并与日本就Java开发进行了国际合作, 成绩斐然。东大阿派下属的宝钢东软软件技术研究中心是国内首屈一指的Java研发骨干企业, 该中心从1995年起就开始了Java的研发, 目前已掌握了Persona Java的核心移植技术, 并成功地将JVM移植到汽车导航平台。此外, 他们还开发出支持Jini协议的即插即用网络打印机软件以及一套Jini信息家电网络的可视化演示环境, 完成了基于JavaBeans的组件化软件开发及运行支持环境等多项成果。在台湾, 22家知名计算机公司成立了“Java联盟”, 并在台北建立了“Java开发中心”, 新竹建立了“Java语言实验室”。在香港, 举行了全岛Java杯比赛, 掀起了学习Java的热潮。
摘要:Java语言作为程序员及所有网络工作者的“宠物”, 正以不可阻挡的趋势强势发展。分析Java的前进路程, 探讨其生存现状。
关键词:Java,生存现状,分析
参考文献
[1]孙庚, 冯艳红.Java语言程序设计课程教学方法探析IJJ《软件导刊》, 2010.
[2]袁仕旭.C与JAVA的对比分析[J].硅谷, 2010.
[3]史蕾.Java的未来[J].软件和信息服务, 2011.
关于Java语言教学的思考 篇10
1.1 用于教学的Java开发工具的选择
Java的开发工具众多,除了Sun公司提供的JDK(Java Development Kit)Java开发工具集之外,Xinox公司的JCreator,Borland公司的JBuilder,IBM公司的Visual Age for Java,Microsoft公司的VJ++,Macromedia公司的JRUN,可扩展的开放源代码IDE有NetBeans和Eclipse。这些工具都是为了方便人们工作而开发的,各有特点。
JDK需要用记事本编写Java代码,并用命令行方式编译和运行。这在Windows界面编程已经深入人心的时代,会使学生感到厌烦,降低学习Java语言的兴趣。
JCreator是一个小巧而功能齐全的Java集成开发环境(IDE)。其最大特点是与Sun公司的JDK完美结合,是其它任何一款IDE所不能比拟的。JCreator为用户提供了相当强大的功能,例如项目管理功能,项目模板功能,可个性化设置语法高亮属性、行数、类浏览器、标签文档、多功能编译器和向导功能等,大大提高编程效率。JCreator的设计接近Windows界面风格,对初学者来说,操作简单容易上手。通过JCreator,可以直接编译或运行JAVA程序,减少了JDK用命令行编译带来的烦琐操作。因此,JCreator非常适合Java语言的教学。
其它的开发工具,如JBuilder,主要用于J2EE,其运行时消耗的内存与其功能一样强大。普通的教师机很难运行,并且其IDE界面比较复杂,如果用于教学,容易使学生过于关注其IDE功能,而忽视了Java语言本身的学习。
1.2 Java与C++的对比学习
Java是在C++的基础上开发出来的,其风格类似于C++,又有一些C++所不具备的特性,从某种意义上讲,Java语言是C及C++语言的一个变种。
Java摒弃了C++中容易引发程序错误的一些特性,如指针、结构、枚举以及内存管理等。
Java语言的设计是完全面向对象的,而不支持类似C++那样的面向过程的程序设计技术。
Java语言的另一个重要特性就是在语言级支持多线程的程序设计。而C++没有内置多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序的设计。
Java的动态特性是其面向对象设计方法的扩展。允许程序动态地装入运行过程中所需要的类,这是采用C++语言进行程序设计所无法实现的。在C++程序设计过程中,每当在类中增加一个实例变量或一个成员函数后,引用该类的所有子类都必须重新编译,否则将导致程序崩溃。
1.3 结合数据结构与算法学习Java语言
数据结构与算法是程序设计的核心。在讲授数据结构与算法课程时,大多采用面向过程的C语言或Pascal语言。而Java是一种完全面向对象的语言,如果在Java语言的教学中,将一些数据结构与算法用Java描述[3],使学生在掌握Java语言特性的同时,加深对面向对象思想和数据结构的理解,提高综合运用Java语言的能力。
1.4 通过Robocode游戏辅助教学
Robocode是用Java语言编写的机器人坦克战斗仿真引擎,是一款专门为Java程序员设计的游戏半成品,可以在所有支持Java2的平台上运行。
面向对象中的类、继承、多态和事件,对于初学者来说,仅仅通过书本上简单的例子,来理解这些概念是比较困难和抽象的。Robocode提供了容易理解的类、继承和事件的例子,如Robot类,玩家必须创造一个继承Robot类的类,覆盖Robot类的方法来提供战斗策略和处理一系列定义好的事件,如RobotDeathEvent、HitWallEvent这样的事件,学生能够真正在屏幕上看到这些对象。不仅如此,通过Robocode,学生还可以学习到内部类、调用API代码、数据结构和人工智能等内容。
当然,Robocode游戏不可能囊括Java语言的所有方面,作为Java语言的辅助教学工具,用来激发学生学习Java语言的热情,无疑是十分有益的。
1.5“大作业”驱动教学
传统的笔试考核方式,对于程序设计课程而言,是非常古板和局限的。学生为了应付这种考试方式,必须记忆大量没必要去记的内容。只能考核学生对编程语言细节的熟悉程度,而对于程序设计的思路,开发工具的掌握以及开发过程的调试等重要方面却很难考查到。
因此,必须改革程序设计语言考核方式,取消期末笔试,学生成绩由平时作业成绩和期末大作业(一个项目)成绩组成。其中,大作业占总评成绩六成以上。布置大作业,驱动学生深入学习Java程序设计,而大作业的完成则能让学生获得成就感。
2 结束语
针对Java语言的特点,从不同方面提高教学质量提出了几点建议:通过选择较佳的开发工具方便学生学习,通过与C++的对比加深学生对Java语言的理解,结合数据结构与算法综合提高学生综合运用Java的能力,通过Robocode游戏激发学生学习热情和开阔视野,布置大作业驱动学生深入学习Java程序设计,为学生今后能够实际运用Java开发项目打下基础。
参考文献
[1]耿祥义,张跃平.Java2实用教程.第三版.北京:清华大学出版社,2006-08.
[2]关于进一步加强高等学校计算机基础教学的意见暨计算机基础课程教学基本要求(试行).教育部高等学校计算机科学与技术教学指导委员会编制,2006-06.
Java语言 篇11
关键词:Java语言 教学改革 项目教学法
0 引言
Java语言是当今社会是软件开发应用最为广泛的语言之一,它为全世界的编程人员带来了新的编程思想。Java语言的面向对象的特点和平台无关性注定了它将在Internet舞台上展现最灿烂的光辉。《Java语言》占如此重要的地位,以至于各个职业高校不同专业纷纷开展《Java语言》的教学工作。然而学生爱不爱学、能不能学好、是否能学以致用,除了自身的因素外,关键还是在于教师的正确引导,教学内容是否符合学生和社会的需求,课时安排是否合理,教学目标、能力和素质目标是否明确,考核方法是否能真实反映学生的整体水平,这些都是进行成功教学的关键所在。本人在课程建设中,对Java语言重点进行了项目教学法的研究,下面从教学内容、教学过程和考核方案三方面进行教学改革尝试。
1 教学内容
1.1 能力目标的确立
学生在学完Java语言相关课程后,在社会上并不能直接应用,想进入开发领域工作还需要在这以前去专门的培训机构进行项目的培训才能进入开发企业。这是因为学生在学校学习时,主要是对基础知识的学习,企业级的应用在学校并未接触过。所以我们在进行教学改革中对教学过程进行的较大的改革,学习的目标不完全是掌握Java相关知识,而是培养学生的职业能力和社会能力。所以Java相关课程的教学过程是以完成项目为基础进行的教学。
在进行教学改革的初期,首先进行市场调研,根据企业所需岗位和岗位所需能力确定Java语言所需的能力目标。
①能够理解面向对象的原理。
②能够熟练掌握Java基本语法。
③对Java类库有一定的认识。
④能够熟练使用JDBC进行数据库编程。
⑤能独立完成小型系统或模块的编码工作。
⑥代码符合编码规范,保证代码质量。
通过能力目标的确定,学生需要学习的课程内容也就确定下来,包括面向对象的概念,流程控制语句,类和对象,继承,接口和包,异常的处理,基于JDBC的数据库编程,和常用类库的基本使用。另外在企业调研时基于面向对象的设计思想,是很重要的,所以这一部分也是在课程的任务设计过程中重点设计的。
1.2 项目的确立
《Java语言》是基于Java技术编程课的最基本课程,只有学会Java才能从事后续课程的学习,如JSP和J2EE等,所以本课程的设置主要是对编程基础进行重点的学习和讲述。所以我们在选择企业真实项目时,企业提供的真实项目涉及到得内容无法只使用《Java语言》这一门课程的内容实现,所以在项目优化时保留了项目的一些简单功能。
在教学改革中,我们把该课程通过两个典型项目,拆分为多个典型任务,培养学生运用Java熟练编程的能力,为后续的J2EE编程打下坚实的基础。
项目1:人员信息类的设计与实现
任务1:人员类信息功能的设计与实现
任务2:人员类的完整设计与实现
项目2:学籍管理系统设计与实现
任务1:学籍管理界面设计及实现
任务2:学籍管理代码的设计与实现
通过项目一,学生主要学习Java程序的核心知识,编程基础,流程控制,类的定义,成员变量和成员方法的定义及实现,构造方法、对象的定义,类的继承中涉及到的变量的隐藏及方法的覆盖,以及接口的实现。使学生初步具有面向对象思想的编程能力。
项目二主要涉及到用户界面的建立及响应,包含面向对象的设计、类、对象、继承、常用类库的应用,数据的输入输出、异常的应用,涵盖面相对象设计的全部内容,通过这个项目,可使学生建立起面向对象的概念,类的定义及调用,常用类库的应用,javadoc文件的使用,为今后的J2EE编程打下坚实的基础。
2 教学过程
2.1 课时安排
在进行项目教学时不能使用2学时为一个单位进行教学,内容讲解后任务的完成需要一个连续的时间,尤其程序的分析、代码的编写和调试都需要一个比较长的时间,所以在课时安排上可尽量4学时连排或6学时连排,这样的时间可以完成一个小的子任务。
2.2 教学方法
在“学、做一体化”教学中,有能力可以安排企业人员进行短期指导,在教师或企业技术人员指导下,学生以“团队合作”、“独立编程”,以“绩效考核”方法,以规范的企业工作流程和面向对象的编程思想,学习任务完全按企业工作流程与工作内容进行,使学生掌握实际工作方法,提高简单软件编程与开发的技能,同时可以培养信息处理能力、自主学习能力与人合作能力安全意识就业与创业意识。
2.3 书写报告
每一个任务都需要完成报告的书写,主要包括项目开发计划、项目开发文档、任务总结、学习日志等。通过日常记录,学生可以在学习过程中了解自己所遇到的问题及解决方法,积累资料便于日后的复习。同时通过标准的文档模板,学生也可以了解到企业的工作过程。对今后的工作也提供了书面的依据。
3 考核方案
学习是一个过程,在对学生的考核中也应该以过程的形式进行考核,而不应该只注重最后一个结果。所以java语言的考核一改只按期中期末的形式考核,而是根据任务分配不同的比例进行考核,如完成任务1应该占据总评的30%,任务2为20%,任务3为15%,任务4为15%,最后理论考试占20%。通过完成4个任务和理论组成这门课的总成绩。在过程考核中还需要对细节进行考核,如任务1中对“工作计划”进行考核又分成了工作计划详实、完整,体现学习和任务要求;小组成员分工明确、合理,工作量饱满;工作计划时间安排具体,符合要求等细节。这样可以充分了解学生的能力,又能对学生进行真实考核。
4 小结
随着社会对java开发人员需求越来越多,高职学生进入企业成为“软件蓝领”的人员也越来越多,如何对培养的学生能直接进入企业成为企业的开发人才,学校针对开发类课程的教学改革将势在必行,在学校学习中直接接触企业的实际项目和实际工作流程,对培养学生解决实际应用问题的合理和适应社会需求能力起到了巨大的推动作用。
参考文献:
[1]Java程序员职场全攻略——从小工到专家.吴亚峰.著电子工业出版社.
[2]Java设计模式(第2版).Steven John Metsker著.电子工业出版.
[3]李艳红.浅谈JavaBean组件及其在JSP中的使用[J].价值工程.2012(06).
Java语言 篇12
XML语言为标记语言,在信息技术飞速发展的背景下,现阶段受到人们的高度重视。现阶段充分用XML语言能够有效实现语言转换等多种功能。现阶段使用者在日常资源应用过程中还会受到平台的限制,为了打破这一限制,增加对XML语言的应用,不仅能够避免重新开发造成更高的成本,同时还能够充分运用平台迁移过程中产生的大量资源。而近年来应用相对广泛的Java的迁移非常困难,在充分利用XML语言的基础上促使这一迁移得以实现,在这种情况下加强从Java语言到XML语言的转换问题的研究具有重要意义。
1 Java CC
1.1简介
Java Compiler Compiler即Java CC, 其开发设计的主要目的是为了实现不同高级语言解析器,如C语言等。“Jack”是Sun公司生产的,是Java CC的雏形,Java CC在开发过程中并不包含开放的源代码,然而在应用过程中可以在具体的网页中进行搜素。.jj文件是语言文法的定义,是输入Java CC之后才能够产生的,同时Java是其输出值。在使用过程中,Java CC的优势在于能够对处理内容进行扩展及简单化处理。Java代码生成于Java CC,在对其进行编译的过程中,不需要借助于目录或JAR文件等外部条件。只需要对Java1.2 进行充分运用即可。布局在该语言中的体现促使其在使用过程中便于对相关规则及行为进行添加。Java CC在应用过程中最初的功能在于对语言进行自定义将.jj文件作为语言定义过程中的规则,促使其在充分发挥功能的基础上形成解析器的Java代码形式,在对其进行详细编译以后,就能够构成可执行编译器。本文在研究过程中,对Java语言文法进行解析的过程中对Java CC进行了充分的利用,并在此基础上实现Java编译器,JJTree是Java CC在设计过程中的附加工具,对其进行充分的利用能够构建抽象语法树对Java语言进行描述。独立语法树在对Java语言进行表示的过程中,解析代码成立于该语法树基础之上,脱离该解析代码而构建有效程序是其最终功能的体现。
Java CC在应用过程中包含三个不同的工具,其中Java CC在使用过程中能够对相关语法文件进行有效的处理,同时构建有效的解析代码;JJTree在应用过程中不仅能够对语法文件进行处理,还能够生成新的语法文件和树节点代码,在接下来运行过程中能够在Java CC的基础上促使解析代码的有效生成;JJDoc在应用过程中能够对BNF范式文档进行生成,这一过程需要建立在语法文件的基础之上。
2 XML语言
2.1简介
可扩展标记语言,即Extensible Markup Language,简称XML。在应用过程中以原标注语言的形式出现。它的产生最初是为了有效服务与Web应用程序而进行,同时在使用过程中能够对描述结构数据的种类进行提供。XML所用的文件格式能够对数据进行有效的表示,同时能够对数据结构计划进行描述等。该语言在应用过程中能够促使声明内容更加精确的展现,能够通过对不同平台的跨越总结重要结果内容。同时,XML在应用过程中还可以对全新的处理引用及数据查询技术进行应用,这些程序及数据是建立在Web基础之上的。
在对部分程序进行应用的过程中,要想有效展现其文件结构化形式,就可以对标记语言进行充分的运用。部分应用在使用过程中,相关内容是文件的唯一形式,如果无法及时结构化展现这些内容,将导致不完整文件的产生。代码及标记是标记语言的主要内容,有效结合文件内容是其应用过程中最重要的功能体现。例如,要想通过修饰标记的方式处理文件中相关文字,应该首先对其色彩及形象进行设定。同时,这些标记是标记语言发挥功能的基础,能够促使相关文件内容展示出不同的含义。
XML方式具有标准、扩展性强等特点,在应用过程中能够对表格及文本等信息进行有效的保存,这一过程中需要将部分能够识别的标记保存其中,网络服务器及客户端在运用过程中能够根据这些标记对其进行更加细致的处理,促使信息有效展现出来。
2.2 XML优势
首先,延伸性。作为标记语言XML和HTML在性质上具有一致性,然而前者在应用过程中更加灵活。网页是后者应用的主要地点,而前者在运行过程中能够不断进行新标记的创新,促使其拥有更高的延伸性存在于其应用层面当中,因此也可以将其称之为元语言。在对XML进行充分利用的基础上,主要是其延伸性的有效利用,不仅能够在网络当中将其自身功能进行充分发挥,还可以将更加科学的解决方案提供给相对复杂的数据系统,如多媒体和文件数据库等;其次,其在应用过程中非常容易理解,便于操作;再次,能够有效在不同平台之中传递信息。XML还没有被研发出来的时候,要想实现不同平台之中传递信息非常困难,通常状况下需要特意来对软件进行编写,从而建立起不同平台之间的联系,同时不同系统在应用过程中一旦需要对部分软件进行更换或更新系统,将导致不兼容出现在两个平台之间。出现XML以后,XML格式可以标记不一样的文件数据,因此只要能够将XML解析器安装于需要进行传递信息的两个平台之中,就能够对相关标记的数据进行解读,促使正确的信息有效展现出来;最后,国际化。XML在现阶段的开发及应用过程中能够对不同语种文件进行支持,也就是说在进行信息传递与识别的过程中能够将其转换成任何一种语言形式。
3 从Java到XML转换的实现
3.1 定义Java_to_XML DTD
抽象语法树在实现以后,需要对DTD进行构建,它能够对XML起到约束作用,在实际工作过程中,相关结构信息在数据中的体现都需要通过XML来反映,然而其在使用过程中必要的支持者就是DTD。XML文件形式定义于DTD中,其中包含属性、标记等在文件中的体现。在应用过程中,要想呈现标记Java程序结构,就要促使XML文件在转换以后能够体现出简洁的特点,促使使用者在应用过程中能够快速的对其进行阅读和理解,因此一定的高度存在于定义标记元素当中,促使其展现出一定的概括性及一致性。因此,在进行Java向XML转换的过程中,对属性进行设置,这样一来就能够对相关属性进行搜索,并对该值的存在进行判断。
因此在构建过程中,Java语言结构成为DTD的雏形,在对相关标记进行添加以后,对属性进行设置即可。针对对象的语言是Java语言的特点之一,因此其结构同其他一切面向对象的语言拥有相似之处,在这种情况下对结构的考虑应当是设计的中心,这样一来就能够对以后的重复使用打下良好的基础;其次,在设计过程中还应当注重其形式的简洁性。文件经过转换产生XML文件,标记和属性内能够对手段、种类等信息进行充分的体现,同时还能够在标记的基础上对程序的结构进行反映。例如,对不同手段进行调用的过程中,可以将信息发送给另一个对象,标记消息在调用手段的标记当中被嵌套。同时,在DTD基础之上的调用手段能够促使父元素作为其元素的调用方法,其中存在大量消息子元素。
3.2 访问者模式设计
在对访问者进行添加的过程中需要对访问者模式进行充分的利用,同时还应当建立在科学规划设计基础之上,在设计过程中应对不同角色进行确定,并给予不同种类的功能。XML语言转换都是由这些访问者来实现的,在实际运用过程中,不同的操作能够在不同使用者的状况下得以实现,如果想要促使更多的扩展性体现在系统未来的使用当中,本文在进行研究的过程中对抽象访问者进行了设置,同时还包含一定的访问者适配器及具体访问者。
工具是抽象语法树在Java语言中得以实现的基础,所以,在层次结构在节点中的体现是不需要进行设计的,然而在运行过程中这些节点应当受到访问者的指挥,因此,不同层次结构在不同节点中的体现需要被详细掌握,同时还应将其作为访问者模式结构中一个重要组成。抽象节点和具体节点是层次结构在节点当中的具体体现。
现阶段所拥有的节点结构在Java语言抽象语法树当中稳定性较高,相关节点操作如删除和插入等是不需要进行添加的,在这种情况下,结构对象所包含的主要内容包括便历控制在节点集合中的体现,但是这些内容是可以被其他角色通过转移的方式而实现的,所以结构对象不需要在设计中进行体现。
现阶段在访问者存在的基础上,工作人员应当对访问时间、遍历访问在Java程序中的体现进行详细研究。本文在实现Java_to_XML DTD的过程中将这一问题设置为重点问题进行了研究。在此基础上总结了不同角色在访问者模式当中的体现及其功能:首先,抽象访问者角色。其在应用过程中包含多种不同的访问操作,构建了一定接口,有效实现了具体访问者元素;其次,访问者适配器角色。构建了最小化的声明接口,促使抽象访问者形象得以实现,同时形成了共有实现,促使具体访问者元素得以充分发挥功能,其功能在使用过程中可以作为父类对具体访问者元素进行满足;再次,具体访问者角色。对访问者适配角色中的实现进行了拓展和传承,促使不同种类的访问操作在抽象访问者角色中得以实现;第四,抽象节点角色。对共有属性及操作方法在节点当中的体现进行声明,同时需要对相关接受操作进行声明,这一操作在执行过程中能够将参量体现在访问者对象当中;最后,具体节点角色。能够促使声明的抽象节点操作得以实现,其中包含对接受操作的规定。值得注意的是具体节点体现在该处当中,是对非终端节点在树上的解析,因此其具体性是有针对性的。
3.3 建立访问者
抽象visit手段建立在不同种类节点当中,其定义由抽象访问者类进行,同时还促使适配器类得以构建,是抽象访问者的简单实现;与此同时还积极对具体访问者类进行了构建,并配之以适配器类专门服务与继承访问者。将不同的转化操作应用于不同节点当中,能够促使不同的visit手段在被具体访问者进行使用的过程中,增加一定代码,该代码在使用过程中能够对转换操作进行调用。如,visit手段应用于节点类型ASTFor Statement当中时,具体访问者可以通过如下操作来实现:public void visit ( ASTFor Statement node, Object data ) node. XMLUnparse ( outs, node.identifer )。同时还可以将相似代码有效添加于不同visit手段当中。
接受者的存在是建立在有效的访问者基础之上的,因此不同的节点都存在特点的接受手段,促使访问被支持,在应用过程中其拥有统一的形式,系统在应用过程中,不同的运行状态决定不同的访问者对不同的节点进行访问,在进行详细判断的过程中需要应用具体的参数,同时jjt Accept抽象手段在应用过程中应添加抽象节点类。
结论
综上所述,在对Java CC及XML语言及内涵进行充分掌握的基础上,应加强从Java语言到XML语言的转换问题研究,促使使用者能够不再受到平台的限制,提升工作效率及成本。本文在进行该研究的过程中,以这两种语言的内涵及优势为基础,并对抽象语法树进行了充分的应用,在加强访问者模式设计和访问者建立的过程中,有效实现了二者之间的转换,为我国信息技术的广泛应用提供了重要理论和实践基础。
摘要:近年来,信息技术以日新月异的速度飞快发展,给人类工作和生活中的方方面面带来极大的转变。该技术的有效应用对于提升工作效率及质量具有重要意义,在这种情况下,相关专家学者致力于打破束缚使用者的平台,希望通过数据转移并迁移相关平台的方式来实现资源的充分利用。在这种情况下,本文对Java语言到XML语言的转换问题展开了研究,在研究过程中首先对JavaCC进行了简要介绍,并对XML语言的含义及优势进行了阐述,在此基础上,对如何实现从Java到XML的转换进行了详细论述。
关键词:Java语言,XML语言,转换
参考文献
[1]王浩波.基于Java和XML的信息集成研究[D].河北工业大学,2004.
[2]秦玉杰.基于VRML-XML的三维模型在分布式虚拟环境中的应用研究[D].国防科学技术大学,2004.
【Java语言】推荐阅读:
Java语言教学06-04
JAVA程序语言教学09-22
JAVA语言编程11-05
Java程序设计语言08-31
java语言课程教学大纲05-30
JAVA编程语言软件开发06-05
非语言性“语言”06-20
日常语言与播音语言09-16
教学语言≠文学语言11-16
语言测试与语言教学11-30