2018年3月计算机二级考试JAVA入门知识点:JAVA概述

  四、Java和C、C++

  对于变量声明、参数传递、操作符、流控制等,Java使用了和C、C++相同的传统,使得熟悉C、C++的程序员能很方便地进行编程。同时,Java为了实现其简单、鲁棒、安全等特性,也摒弃了C和C++中许多不合理的内容。

  1.全局变量

  Java程序中,不能在所有类之外定义全局变量,只能通过在一个类中定义公用、静态的变量来实现一个全局变量。例如:

  ClassGlobalVar{

  publicstaticglobal_var;

  }

  在类GlobalVar中定义变量global_var为publicstat-ic,使得其它类可以访问和修改该变量。

  Java对全局变量进行了更好的封装。而在C和C++中,依赖于不加封装的全局变量常常造成系统的崩溃。

  2.Goto

  Java不支持C、C++中的goto语句,而是通过例外处理语句try,Catch,final等来代替C、C++中用goto来处理遇到错误时跳转的情况,使程序更可读且更结构化。

  3.指针

  指针是C、C++中最灵活,也是最容易产生错误的数据类型。由指针所进行的内存地址操作常会造成不可预知的错误,同时通过指针对某个内存地址进行显式类型转换后,可以访问一个C++中的私有成员,从而破坏安全性,造成系统的崩溃。而Java对指针进行完全的控制,程序员不能直接进行任何指针操作,例如把整数转化为指针,或者通过指针释放某一内存地址等。同时,数组作为类在Java中实现,良好地解决了数组访问越界这一C、C++中不作检查的错误。

  4.内存管理

  在C中,程序员通过库函数malloc()和free()来分配和释放内存,C++中则通过运算符new和delete来分配和释放内存。再次释放已释放的内存块或未被分配的内存块,会造成系统的崩溃;同样,忘记释放不再使用的内存块也会逐渐耗尽系统资源。而在Java中,所有的数据结构都是对象,通过运算符new为它们分配内存堆。通过new得到对象的处理权,而实际分配给对象的内存可能随程序运行而改变,Java对此自动地进行管理并且进行垃圾收集,有效防止了由于程序员的误操作而导致的错误,并且更好地利用了系统资源。

  5.数据类型的支持

  在C、C++中,对于不同的平台,编译器对于简单数据类型如int,float等分别分配不同长度的字节数,例如:int在IBMPC中为16位,在VAX-11中为32位,这导致了代码的不可移植性,但在Java中,对于这些数据类型总是分配固定长度的位数,如对int型,它总占32位,这就保证了Java的平台无关性。

  6.类型转换

  在C、C++中,可以通过指针进行任意的类型转换,常常带来不安全性,而Java中,运行时系统对对象的处理要进行类型相容性检查,以防止不安全的转换。

  7.头文件

  C、C++中用头文件来声明类的原型以及全局变量、库函数等,在大的系统中,维护这些头文件是很困难的。而Java不支持头文件,类成员的类型和访问权限都封装在一个类中,运行时系统对访问进行控制,防止对私有成员的操作。同时,Java中用import语句来与其它类进行通讯,以便使用它们的方法。

  8.结构和联合

  C、C++中的结构和联合中所有成员均为公有,这就带来了安全性问题。Java中不包含结构和联合,所有的内容都封装在类中。

  9.预处理

  C、C++中用宏定义来实现的代码给程序的可读性带来了困难。在Java中,不支持宏,它通过关键字final来声明一个常量,以实现宏定义中广泛使用的常量定义。

  §1.3简单的Java程序

  下面我们先介绍两个简单的Java程序,并对其进行分析。

  例1.1.

  publicclassHelloWorldApp{//anapplication

  publicstaticvoidmain(Stringargs[]){

  System.out.println("HelloWorld!");

  }

  }

  本程序的作用是输出下面一行信息:

  HelloWorld!

  程序中,首先用保留字class来声明一个新的类,其类名为HelloWorldApp,它是一个公共类(public)。整个类定义由大括号{}括起来。在该类中定义了一个main()方法,其中public表示访问权限,指明所有的类都可以使用这一方法;static指明该方法是一个类方法,它可以通过类名直接调用;void则指明main()方法不返回任何值。对于一个应用程序来说,main()方法是必需的,而且必须按照如上的格式来定义。Jave解释器在没有生成任何实例的情况下,以main()作为入口来执行程序。Jave程序中可以定义多个类,每个类中可以定义多个方法,但是最多只能有一个公共类,main()方法也只能有一个,作为程序的入口。main()方法定义中,括号()中的Stringargs[]是传递给main()方法的参数,参数名为args,它是类String的一个实例,参数可以为0个或多个,每个参数用"类名参数名"来指定,多个参数间用逗号分隔。在main()方法的实现(大括号中),只有一条语句:

  System.out.println("HelloWorld!");它用来实现字符串的输出,这条语句实现与C语言中的printf语句和C++中cout<<语句相同的功能。另外,//后的内容为注释。

  现在我们可以运行该程序。首先把它放到一个名为HelloWorldApp.java的文件中,这里,文件名应和类名相同,因为Java解释器要求公共类必须放在与其同名的文件中。然后对它进行编译:

  C:\>javacHelloWorldApp.java

  编译的结果是生成字节码文件HelloWorldApp.class。最后用java解释器来运行该字节码文件:

  C:\>javaHelloWorldApp

  结果在屏幕上显示HelloWorld!

  我们再来看下面的一个例子:例1.2

  importjava.awr.*;

  importjava.applet.*;

  publicclassHelloWorldAppletextendsApplet{//anapplet

  publicvoidpaint(Graphicsg){

  g.drawString("HelloWorld!",20,20);

  }

  }

  这是一个简单的Applet(小应用程序)。程序中,首先用import语句输入java.awr和java.applet下所有的包,使得该程序可能使用这些包中所定义的类,它类似于C中的#include语句。然后声明一个公共类HelloWorldApplet,用extends指明它是Applet的子类。在类中,我们重写父类Ap-plet的paint()方法,其中参数g为Graphics类,它表明当前作画的上下文。在paint()方法中,调用g的方法drawString(),在坐标(20,20)处输出字符串""HelloWorld!",其中坐标是用象素点来表示的。

  这个程序中没有实现main()方法,这是Applet与应用程序Application(如例1)的区别之一。为了运行该程序,首先我们也要把它放在文件HelloWorldApplet.java中,然后对它进行编译:

  C:\>javacHelloWorldApplet.java

  得到字节码文件HelloWorldApplet.class。由于Applet中没有main()方法作为Java解释器的入口,我们必须编写HTML文件,把该Applet嵌入其中,然后用appletviewer来运行,或在支持Java的浏览器上运行。

  二、Java语言对软件开发技术的影响

  工业界不少人预言:"Java语言的出现,将会引起一场软件革命",这是因为传统的软件往往都是与具体的实现环境有关,换了一个环境就需要作一番改动,耗时费力,而Java语言能在执行码(二进制码)上兼容,这样以前所开发的软件就能运行在不同的机器上,只要所用的机器能提供Java语言解释器即可。

  Java语言将对未来软件的开发产生影响,可从如下几个方面考虑:

  1软件的需求分析:可将用户的需求进行动态的、可视化描述,以提供设计者更加直观的要求。而用户的需求是各色各样的,不受地区、行业、部门、爱好的影响,都可以用Java语言描述清楚。

  2软件的开发方法:由于Java语言的面向目标的特性,所以完全可以用O-O的技术与方法来开发,这是符合最新的软件开发规范要求的。

  3Java语言的动画效果远比GUI技术更加逼真,尤其是利用WWW提供的巨大动画资源空间,可以共享全世界的动态画面的资源。

  4软件最终产品:用Java语言开发的软件可以具有可视化、可听化、可操作化的效果,这要比电视、电影的效果更为理想,因为它可以做到"即时、交互、动画与动作",要它停就停,要它继续就继续,而这是在电影与电视播放过程中难以做到的。

  5其它:使用Java语言对开发效益、开发价值都有比较明显的影响。

  三、工业界对Java语言的评价

  1996年5月29~31日,在美国旧金山召开了一个全世界Java语言开发者大会,(JavaOneDeveloperConfer-ence),出席会议的多达6500多人,来自工业界的超过一半,有人评价说:"这是近年来计算机界最光辉的一次盛会",一些工业界的老总们相当看好Java语言,认为它的使用将会引起一场软件革命。从软件的设计风格、设计方法、设计目标到设计过程,都会产生彻底的变革,"甚至会改变此星球的生活方式"。

  在这次会上,Java的创始人之一JamesGosling说:"Java不仅仅只是applets,它能做任何事情",Dta咨询公司的高级软件工程师RichKadel说:"Java不仅仅是一种程序设计语言,更是现代化软件再实现的基础;Java还是未来新型OS的核心;将会出现Java芯片;将构成各种应用软件的开发平台与实现环境,是人们必不可少的开发工具"。

  由于各界都看好它,因此,各大公司都纷纷表示支持Java,Intel、Xerox公司声言将把Java嵌入到他们的产品中去。就连华尔街金融界也在投入资金人力用Java开发电子贸易、金融软件。

  所以有人说:"现在第三方的开发商都团结在Java大旗周围了!",纷纷推出用Java开发的各种软件产品,以期尽快地占领市场。

  四、Java语言的应用前景

  Java语言有着广泛的应用前景,大体上可以从以下几个方面来考虑其应用:

  1所有面向对象的应用开发,包括面向对象的事件描述、处理、综合等;

  2计算过程的可视化、可操作化的软件的开发;

  3动态画面的设计,包括图形图像的调用;

  4交互操作的设计(选择交互、定向交互、控制流程等);

  5Internet的系统管理功能模块的设计,包括Web页面的动态设计、管理和交互操作设计等;

  6Intranet(企业内部网)上的软件开发(直接面向企业内部用户的软件);

  7与各类数据库连接查询的SQL语句实现;

  8其它应用类型的程序。

  推荐阅读:

  2018年3月计算机二级考试JAVA入门知识点:JAVA的类

  2018年3月计算机二级考试JAVA入门知识点:JAVA是什么?

  2018年3月计算机二级考试JAVA入门知识点:JAVA有什么

  2018年3月计算机二级考试JAVA入门知识点:JAVA的\异常\

  2018年3月计算机二级考试JAVA入门知识点:JAVA图形用户接口

  2018年3月计算机二级考试JAVA入门知识点:JAVA的历史、现状

  出国留学网计算机等级考试 栏目推荐

  2018年计算机等级考试计划

  2018年计算机等级考试时间

  计算机等级考试动态

  计算机等级考试报名时间

  计算机等级考试时间

  计算机等级考试准考证打印时间

  计算机等级考试成绩查询时间

  计算机等级考试试题及答案

分享

热门关注

计算机二级考试时间多长

关于计算机二级

计算机二级考试时间一年几次呢

关于计算机二级

计算机二级考试时间分配

关于计算机二级

计算机二级考试内容考些什么

考试内容

计算机二级什么时候出成绩呢

计算机成绩

计算机二级考试知识点有哪些

计算机二级考试知识点

计算机二级基础知识点归纳

计算机二级基础知识点

计算机二级考试难不难

计算机二级考试

计算机二级公共基础知识考试内容

计算机公共基础知识考试

计算机二级考试内容难不难?有关计算机二级的考试内容

计算机二级考试内容难不难