java语言(c语言)作业

合集下载

C语言 第2次作业

C语言 第2次作业

1 .C语言中规定函数的返回值的类型是由()。

A.return语句中的表达式类型所决定B.调用该函数时系统临时决定C.调用该函数时的主调用函数类型所决定D.在定义该函数时所指定的函数类型所决定参考答案:D2 .以下不能正确进行字符串赋初值的语句是____。

A.char str[5]="good“B.! char str[]=goodC.! char *str=goodD.! char str[5]={'g','o','o','d'}!参考答案:A3 .C语言中_______。

A.能使用do-while语句构成的循环B.do-while语句构成的循环必须用break语句才能退出C.do-while语句构成的循环,当while语句中的表达式为非零时结束循环D.do-while语句构成的循环,当while语句中的表达式值小于零时结束循环参考答案:A4 .以下选项中,与k=n++完全等价的表达式是_____。

A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1参考答案:A5 .有定义语句:int b;char c[10]; ,则正确的输入语句是_____。

A.scanf("%d%s",&b,&c);B.scanf("%d%s",&b,c);C.scanf("%d%s",b,c);D.scanf("%d%s",b,&c);参考答案:B6 .若有定义:int aa[8];则以下表达式中不能代表数组元aa[1]的地址的是_____。

A.&aa[0]+1B.&aa[1]C.&aa[0]++D.aa+1参考答案:D7 .若i 、j 已定义为int 型,则以下程序段中语句printf( “%d ”,i*j); 的执行次数是_____。

中石油北京17秋Java语言程序设计第一次在线作业

中石油北京17秋Java语言程序设计第一次在线作业

中石油北京17秋Java语言程序设计第一次在线作业第一次在线作业单选题(共30道题)展开收起1.(2.5分)编译Java Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为A、.javaB、.classC、.htmlD、.exe正确答案:B2.(2.5分).Java程序的执行过程中用到一套JDK工具,其中java.exe是指A、Java文档生成器B、Java解释器C、Java编译器D、Java类分解器正确答案:B3.(2.5分)Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点A、安全性B、多线程C、跨平台D、可移植正确答案:B4.(2.5分)Java语言是_____年由______公司第一次正式发布的,________被誉为Java之父A、1996;XXX;Bill Joe;B、1995;Sun;Bruce Eckel;C、1996;XXX;Anders HejlsbergD、1995; Sun; XXX Gosling精确谜底:D5.(2.5分)关于Java Application和Applet的说法中,精确的是_________A、都包含main()方法B、都通过“appletviewer”命令执行C、都通过“javac”命令编译D、都嵌入在HTML文件中执行正确答案:C6.(2.5分)下列哪个是面向大型企业级用管理专用构件的应用平台A、J2EEB、J2MEC、J2SED、J2DE精确谜底:A7.(2.5分)下列对Java源程序结构的叙述中,错误的是A、import语句必须在所有类定义之前B、接口定义允许或多个C、Java Application中的public class类定义允许或多个D、package语句允许或多个正确答案:C8.(2.5分)下列对Java语言的叙述中,错误的是A、Java的虚拟机解释执行字节码B、JDK的库文件目录是binC、Java的类是对具有相同行为对象的一种抽象D、Java中的垃圾回收机制是一个系统级的线程正确答案:B9.(2.5分)下列Java源程序结构中前三种语句的次序,正确的是A、import, package, public classB、import必为首,其他不限C、public class, import ,packageD、package, import , public class正确答案:D10.(2.5分).在Java中,属于整数类型变量的是A、singleB、doubleC、byteD、char精确谜底:C11.( 2.5分)下列语句片段inta=10,b=4,c=20,d=6;System.out.println(a++*b+c*--d);的成效为A、144B、28C、140D、不能执行正确答案:C12.(2.5分)下列语句片段:inta=-67,b=116,c=78;intd=~a|b&c;System.out.println(d);的结果为A、70B、67C、78D、56正确答案:A13.(2.5分)给出下面代码:public class test{ static int a[] = new int[10]; public static voidmain(String args[]) { System.out.println(a[10]); } }那个选项是精确的A、编译时将发生毛病B、编译时正确,运行时将产生错误C、输出零D、输出空正确答案:B14.(2.5分)下面哪些选项是精确的main方法申明?A、public main(String args[])B、public static void main(String args[])C、private static void main(String args[])D、void main()正确答案:B15.(2.5分)System类在哪个包中( )A、java.utilB、java.ioC、java.awtD、ng正确答案:D16.(2.5分)下列代码哪几行会出错: ( ) 1) public void modify() { 2} int I, j, k; 3} I=100; 4} while(I>0){ 5} j= I * 2; 6} System.out.println (" The value of j is " + j ); 7) k=k + 1; 8) I--; 9) }10)}A、line 4B、line 6C、line 7D、line 8正确答案:C17.(2.5分)指出正确的表达式A、byte b=128;B、XXX;C、long l=0xfffL;D、float d=0.9239d;正确答案:C18.(2.5分)在Java中,不属于整数类型变量的是A、doubleB、longC、intD、byte精确谜底:A19.(2.5分)Java变量中,以下不属于复合类型的数据类型是A、类B、字符型C、数组型D、接口精确谜底:B20.(2.5分)下面的语句片断输出成效是什么?intscore=1;switch(score){(" Fail," ); (" Error," ); case 1: System.out.print(" Good," );case 2: System.out.print(" Best" ); break; }A、没有输出B、Good,C、Good,BestD、Error,Good,Best正确答案:C21.(2.5分)下面哪个是合法的标识符_______A、$personsB、2UsersC、*pointD、this正确答案:A22.(2.5分)下列布尔变量定义中,正确并且规范的是:A、XXX;B、boolean canceled= false;C、boolean CANCELED= false;D、boolean canceled= FALSE;精确谜底:B23.(2.5分)数组中各个元素的数据类型是A、相同的B、分歧的C、部分相同的D、任意的精确谜底:A24.(2.5分)下列语句中执行跳转功能的语句是A、for语句B、while语句C、continue语句D、switch语句正确答案:C25.(2.5分)按次执行下列步伐语句后,则b的值是String a=" Hello" ; String b=a.substring(0,2);A、HelloB、helloC、HeD、null正确答案:C26.(2.5分)下列的哪个选项可以正确用以表示八进制值8?A、0x8B、0x10C、8D、10正确答案:D27.(2.5分)下列的哪个赋值语句是不精确的?A、float f = 11.1;B、double d = 5.3E12;C、float d = 3.14f ;D、double f=11.1E10f;正确答案:A28.(2.5分)下列的哪个赋值语句是精确的?A、char a=" 12" ;B、int a=12.0;C、int a=12.0f;D、int a=(int)12.0;正确答案:D29.(2.5分)switch语句中表达式(expression)的值不允许用的类型是A、byteB、intC、booleanD、char精确谜底:C30.(2.5分)下列关键字中能够表示常量的是A、finalB、defaultC、privateD、XXX正确答案:A判断题(共10道题)展开收起31.(2.5分)Java语言是不区分大小写精确毛病正确答案:错误32.(2.5分)Java语言不含指针和析构方法,所以Java程序只有在结束运行才释放占用的内存正确毛病正确答案:错误33.(2.5分)Java程序一般应当含有main方法,因为它是所有Java程序执行的入口正确错误正确答案:错误34.(2.5分)数组、类和接口都是引用数据类型正确错误正确答案:正确35.(2.5分)定义完数组后,我们能够根据实际需要,再动态调整数组大小精确错误正确答案:错误36.(2.5分)Java语言中一个Char类型的数据占用2个字节大小的内存空间正确毛病正确答案:正确37.(2.5分)编译语句Double aDouble=37.2D不会出现编译毛病正确错误正确答案:正确38.(2.5分)if(true){int i=17;} System.out.println(i);运转此步伐的成效是输出17精确错误正确答案:错误39.(2.5分)float x=26f; int y=26; int z=x/y;以上语句能正常编译和运行正确错误正确答案:错误40.(2.5分)int[] a={1,2,3,4}; System.out.println(a.length());以上语句运行的结果是显示4正确错误。

JAVA 习题题目及答案

JAVA 习题题目及答案

第2章
作业题
1. 参照例 2-1 编写一个 Java 应用程序,输出俄文字母表。 2. 参照例 2-4 编写一个 Java 应用程序,用户从键盘只能输入整数,程序输出这些整数的乘 积。
第 3 章问答题及作业题
第 3 章 问答题
1、下列 System.out.printf 输出的结果是什么? int a=100,x,y; x=++a; y=a--; System.out.printf(“%d,%d,%d”,x,y,a); 2、下列哪些语句有错误? int x=0; x=5.0/2; float y=12.5F; y=5.0/2;
第 5 章问答题及作业题
第 5 章 问答题
1、子类在什么情况下可以继承父类的友好成员? 2、子类通过怎样的办法可以隐藏继承的成员变量? 3、子类重写继承的方法的规则是什么? 4、子类的构造方法的第一条语句是什么? 5、子类对象一旦重写了继承的方法,就会隐藏继承的方法,是这样吗? 6、子类重写继承的方法时,可以降低方法的访问权限吗? 7、关键字 super 的用法? 8、假设父类有一个方法? public double f(double x, double y){ return x+y; }
第 4 章问答题及作业题
第 4 章 问答题
1、在声明类时,类名应遵守哪些习惯? 2、类体内容有哪两种重要的成员?
3、实例方法可以操作类变量吗?类方法可以操作实例变量吗? 4、当类的字节码加载到内存时,类变量就一定分配了内存空间吗? 5、类的实例变量在什么时候会被封分配内存空间? 6、一个类的类变量被该类创建的所有对象共享吗? 7、不同对象的实例变量分配的内存空间地址一定不同吗? 8、什么叫方法重载?构造方法可以重载吗? 9、请阐述,为什么类方法不可以调用实例方法。 10、请阐述,为什么类方法不能操作实例成员变量。 11、实例方法可以用类名直接调用吗? 12、 关键字 this 可以出现在构造方法中吗?可以出现在实例方法中吗?可以出现在类方 法中吗? 13、源文件中声明编写的类一定在同一个包中吗? 14、 “import java.awt.*;”和“import java.awt.Button”有什么不同? 15、程序中如果使用了“import java.util.*” ,程序运行时,要加载 java.util 包中全部的 类到内存中吗? 16、有几种访问权限修饰符?说出其中一种修饰符的作用? 17、怎样反编译一个类?

(完整版)C语言程序设计题库及答案,推荐文档

(完整版)C语言程序设计题库及答案,推荐文档

A.552 B.264 C.144 D.-264 30 . int a=3,b=2;printf(“%d,%d\n”,--a,b++);输出结果是(A )。
A.2,2 B.2,3 C.3,2 D.3,3
判断题(共 5 题,每题 2 分) 1 . 只能在循环体内和 switch 语句体内使用 break 语句。(对) 2 . 一个算法应该具备有穷性、确定性、输入、输出和有效性。(对) 3 . C 语言中,每个程序都必须要有一个且只有一个 main 函数。(对) 4 . 调用函数时,实参是一个数组名,则向函数传递的是数组的首地址。(对)
5 . 表达式 16/8*sqrt(4.0)/2 值的数据类型为 double 双精度实型。(对)
第二套试题
单选题(共 20 题,每题 4 分) 1 . 若有输入语句 scanf( %d%d%d,&x,&y,&z);则不能使 x 值为 5,y 值为 6,z 值为 7 的输入是___A___。
A.5,6 ,7
A.5,6 ,7
B.5 回车换行 6 7 C.5 6 7
D.5,6,7
12 . 若 i,j 已定义为 int 类型,则下程序段中内循环体的总的执行次数是( B )。 for (i=3;i>0;i--) for (j=0;j<=4;j++){...}
A.12
B.15
C.16
13 . 下列选项中,合法的 C 语言关键字是_D___。
A.1
B.3
C.2.0
D.2.5
19 . func(exp1,(exp2,exp3),(exp4,exp5,exp6));含有(C )个实参。 A.1 B.2 C.3 D.6 20 . 有 int x=3,y=4,z=5;则下面表达式中值为 0 的是__B____。 A.x&&y B.! (x<y&&!z||1) C.x||y+z&&y-z D.x<=y 21 . 已定义 c 为字符型变量,则下列语句中正确的是____C__。

奥鹏14秋《Java语言程序设计》作业4满分答案

奥鹏14秋《Java语言程序设计》作业4满分答案

14秋《Java语言程序设计》作业4一,单选题1. 下列说法哪一项是正确的?A. 一个程序可以包含多个源文件B. 一个源文件中只能有一个类C. 一个源文件中可以有多个公共类D. 一个源文件只能供一个程序使用?正确答案:A2. 下列说法正确的是_______。

A. 用abstract关键字修饰的方法,不能再被子类重写B. 用final关键字修饰的方法,不能再被子类重写C. 抽象类中一定要包含abstract方法D. 某个类中包含了abstract方法,该类可以不声明为abstract类?正确答案:B3. 下面程序段的输出结果为_______。

package test; public class classA{ int x=20; static int y=6; public static void main(String args[]){ classB b=new classB(); ##go(10); System.out.println("x="+##x); }A. x=10B. x=20C. x=6D. 编译不能通过?正确答案:C4. 下面程序段的输出结果为_______。

class OverMethod{ void printMeth(){ System.out.println("There is none parameter."); } void printMeth(String t){ System.out.println("There is one parameter."); } void printMeA. There is none parameter.There is one parameter.There are t正确答案:B5. 下列选项不属于对象生命周期的是_______。

A. 生成B. 使用C. 消除D. 封装?正确答案:D。

西交《Java语言》在线作业

西交《Java语言》在线作业

西交《Java语⾔》在线作业⼀、单选题(共 10 道试题,共 20 分。

)V 1. 哪个关键字可以对对象加互斥锁?( )A. transientB. synchronizedC. serializeD. static满分:2 分2. 对⽅法main的第1⾏定义正确的是()。

A. public main( String arg [ ] )B. public void main( String arg [ ] )C. public static void main( String arg [ ] )D. public static void main( String args [ ] )满分:2 分3. 下列哪些语句关于内存回收的说明是正确的? ( )A. 程序员必须创建⼀个线程来释放内存;B. 内存回收程序负责释放⽆⽤内存C. 内存回收程序允许程序员直接释放内存D. 内存回收程序可以在指定的时间释放内存对象满分:2 分4. 运⾏下列程序, 会产⽣什么结果public class X extends Thread implements Runable{ public void run(){System.out.println("this is run()"); } public static void main(String args[]) { Thread t=new Thread(new X()); t.start(); } } ( )A. 第⼀⾏会产⽣编译错误B. 第六⾏会产⽣编译错误C. 第六⾏会产⽣运⾏错误D. 程序会运⾏和启动满分:2 分5. 看以下程序:boolean a=false; boolean b=true; boolean c=(a&&b)&&(!b);int result=c==false?1:2; 这段程序执⾏完后,c与result的值是:()。

南开17秋学期《Java语言程序设计》在线作业满分答案

南开17秋学期《Java语言程序设计》在线作业满分答案
C. java.applet.Applet
D. java.awt.Frame
满分:2分
正确答案:A
6.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为()。
A.隐藏
B.覆盖
C.重载
D. Java不支持此特性
满分:2分
17秋学期《Java语言程序设计》在线作业
试卷总分:100得分:100
一、单选题(共30道试题,共60分)
1.设有下面两个类的定义:class Person { class Student extends Person { long id; //身份证号int score; //入学总分String name; //姓名int getScore(){ } retu
A. System.out.println(a.i);
B. a.method1();
C. A.method1();
D. A.method2()
满分:2分
正确答案:C
A.包含关系
B.继承关系
C.关联关系
D.上述类定义有语法错误
满分:2分
正确答案:B
2.设有下面的两个类定义:class aa{ void Show(){System.out.println("我喜欢Java!"); } class BB extends aa{ void Show(){System.out.println("我喜欢C++!"); } }则顺序执行如下语句后输出结果为:aa a=new aa(); BB b=new BB(); a.Show(); b.Show();

西工大2021年10月机考《JAVA语言》作业参考答案非免费

西工大2021年10月机考《JAVA语言》作业参考答案非免费

西工大2021年10月机考《JAVA语言》作业试卷总分:100 得分:100答案网叫福到(这四个字的拼音)一、单选题(共50 道试题,共100 分)1.程序的执行结果是()A.子类无参构造函数子类有参构造函数父类无参构造函数B.子类有参构造函数子类无参构造函数父类无参构造函数C.父类无参构造函数子类有参构造函数子类无参构造函数D.父类有参构造函数子类有参构造函数子类无参构造函数2. 00101010 | 00010111语句的执行结果为A.00000000B.11111111C.00111111D.110000003. 结构化程序设计所规定的三种基本控制结构是()A.输入、处理、输出B.树形、网形、环形C.顺序、选择、循环D.主程序、子程序、函数4.15.Java语言使用的字符码集是A.ASCIIB.BCDC.DCBD.Unicode5. 在创建对象时必须()A.先声明对象,然后才能使用对象B.先声明对象,为对象分配内存空间,然后才能使用对象C.先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象D.上述说法都对6. 执行语句int i = 1, j = ++i; 后i与j的值分别为()。

A.1与1B.2与1C.1与2D.2与27.Java的集合框架中重要的接口java.util.Collection定义了许多方法。

选项中哪个方法不是Collection接口所定义的?( )A.int size()B.boolean containsAll(Collection c)pareTo(Object obj)D.boolean remove(Object obj)8.假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?()A.System.out.println(A.i);B.A.method1();C.A.method1();D.A.method2()9.有以下方法的定义,请选择该方法的返回题型()。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中国矿业大学《C++程序设计》课程专题论文论文题目:面向对象的新型编程语言----JAVA语言姓名班级学号学期课程性质公共选修课2011年11月6日面向对象的新型编程语言----JAVA语言概述姓名:杜建辉摘要:JAVA 语言是一种无关于底层硬件、只需一次编写就可在各个环境运行的一种计算机高级语言和平台。

它的语言特点:1、是面向对象的语言;2、是一种与平台无关的语言。

关键字:JAVA 语言特点引言面向对象编程具有多方面的吸引力。

对管理人员,它实现了更快和更廉价的开发与维护过程。

对分析与设计人员,建模处理变得更加简单,能生成清晰、易于维护的设计方案。

对程序员,对象模型显得如此高雅和浅显。

此外,面向对象工具以及库的巨大威力使编程成为一项更使人愉悦的任务。

每个人都可从中获益,至少表面如此。

如果说它有缺点,那就是掌握它需付出的代价。

思考对象的时候,需要采用形象思维,而不是程序化的思维。

与程序化设计相比,对象的设计过程更具挑战性——特别是在尝试创建可重复使用(可再生)的对象时。

过去,那些初涉面向对象编程领域的人都必须进行一项令人痛苦的选择:(1)选择一种诸如Smalltalk的语言,“出师”前必须掌握一个巨型的。

(2)选择几乎根本没有库的C++),然后深入学习这种语言,直至能自行编写对象库。

JAVA 语言是一门随时代快速发展的计算机语言程序,其深刻展示了程序编写的精髓,加上其简明严谨的结构及简洁的语法编写为其将来的发展及维护提供了保障。

另外,随着其程序编写难度的降低使得更多专业人员将精力放置于JAVA 语言的编写与框架结构的设计中。

1、对面向对象编程的概述所有编程语言的最终目的都是提供一种“抽象”方法。

一种较有争议的说法是:解决问题的复杂程度直接取决于抽象的种类及质量。

这儿的“种类”是指准备对什么进行“抽象”?汇编语言是对基础机器的少量抽象。

后来的许多“命令式”语言是对汇编语言的一种抽象。

与汇编语言相比,这些语言已有了长足的进步,但它们的抽象原理依然要求我们着重考虑计算机的结构,而非考虑问题本身的结构。

在机器模型(位于“方案空间”)与实际解决的问题模型之间,程序员必须建立起一种联系。

这个过程要求人们付出较大的精力,而且由于它脱离了编程语言本身的范围,造成程序代码很难编写,而且要花较大的代价进行维护。

由此造成的副作用便是一门完善的“编程方法”学科。

为机器建模的另一个方法是为要解决的问题制作模型。

PROLOG则将所有问题都归纳为决策链。

对于这些语言,我们认为它们一部分是面向基于“强制”的编程,另一部分则是专为处理图形符号设计的。

每种方法都有自己特殊的用途,适合解决某一类的问题。

但只要超出了它们力所能及的范围,就会显得非常笨拙。

面向对象的程序设计在此基础上则跨出了一大步,程序员可利用一些工具表达问题空间内的元素。

由于这种表达非常普遍,所以不必受限于特定类型的问题。

我们将问题空间中的元素以及它们在方案空间的表示物称作“对象”(Object)。

当然,还有一些在问题空间没有对应体的其他对象。

通过添加新的对象类型,程序可进行灵活的调整,以便与特定的问题配合。

所以在阅读方案的描述代码时,会读到对问题进行表达的话语。

与我们以前见过的相比,这无疑是一种更加灵活、更加强大的语言抽象方法。

总之,OOP允许我们根据问题来描述问题,而不是根据方案。

然而,仍有一个联系途径回到计算机。

每个对象都类似一台小计算机;它们有自己的状态,而且可要求它们进行特定的操作。

与现实世界的“对象”或者“物体”相比,编程“对象”与它们也存在共通的地方:它们都有自己的特征和行为。

通过这些特征,我们可理解“纯粹”的面向对象程序设计方法是什么样的:所有东西都是对象。

可将对象想象成一种新型变量;它保存着数据,但可要求它对自身进行操作。

理论上讲,可从要解决的问题身上提出所有概念性的组件,然后在程序中将其表达为一个对象。

程序是一大堆对象的组合;通过消息传递,各对象知道自己该做些什么。

为了向对象发出请求,需向那个对象“发送一条消息”。

更具体地讲,可将消息想象为一个调用请求,它调用的是从属于目标对象的一个子例程或函数。

每个对象都有自己的存储空间,可容纳其他对象。

或者说,通过封装现有对象,可制作出新型对象。

所以,尽管对象的概念非常简单,但在程序中却可达到任意高的复杂程度。

每个对象都有一种类型。

根据语法,每个对象都是某个“类”的一个“实例”。

其中,“类”(Class)是“类型”(Type)的同义词。

一个类最重要的特征就是“能将什么消息发给它?”。

同一类所有对象都能接收相同的消息。

这实际是别有含义的一种说法,大家不久便能理解。

由于类型为“圆”(Circle)的一个对象也属于类型为“形状”(Shape)的一个对象,所以一个圆完全能接收形状消息。

这意味着可让程序代码统一指挥“形状”,令其自动控制所有符合“形状”描述的对象,其中自然包括“圆”。

这一特性称为对象的“可替换性”,是OOP最重要的概念之一。

2、JAVA面向对象特点总结简单性今天的编程语言大多不容易使用, 程序员必须经过正规的培训, 了解该语言的奥秘和编程技巧, 才能用这种语言来开发软件系统。

JAVA的一个重要目标是使程序员很容易进行编程。

但鉴于目前大多数程序员都使用c++来编写面向对象的程序, 因此, 尽管已发现c++存在许多缺点,Sun公司在设计时还是尽可能使其接近于c++.但是,JAVA摒弃了c++中种弊大于利的功能和许多很少用到的功能, 其中包括操作符过载、多级继承性以及各种自动强制性在许多C 应用软件和C++应用软件中, 存储器管理(内存的分配和释放)是造成程序复杂性的重要原因。

程序员必须考虑其程序所占用的内存是否合理、应当如何重新分配。

JAVA 增加了自动垃圾搜集功能, 使程序员不必考虑存储器管理问题, 还可以极大地减少编程错误。

尽量减小程序规模是使编程简单的另一个方面。

JAVA的一个目标是使程序可以单独运行于小机器上。

它的基本解释程序和类支持功能约占 40k字节;附加的基本标准库和线程支持功能(基本上是独立的微核)另占175k字节。

面向对象面向对象的设计把重点放在数据(=对象)及其界面上。

由于它清晰地规定了界面的定义, 可以提供可重新使用的软件模块,因而面向对象的设计具有极强的生命力。

JAVA有许多面向对象的功能, 基本上与c++相同但增加了Objective C的扩充功能, 以提供更多的动态解决方法。

分布性为了很方便地适应各种TPC/IP 协议, 如HTTP和FTP , JAVA配有功能齐全的例行程序库。

JAVA应用软件可以通过url比打开和存取网络上的各种对象。

可靠性JAVA 为了保证编写的软件非常可靠, 采取了多种措施, 其中包括对可能存在的问题进行早期检查, 在后期进行动态(运行期间)检查, 并努力消除易于引起错误的情况。

凡是偏重类型的语言(例如C++)都有一个优点, 那就是在编译期间可以进行广泛的检查,及早发现程序中的错误。

但是,C++ 在编译期间的检查中会留下许多漏洞, 这些漏洞比较容易疏忽(尤其是方法说明语句/ 过程说明语句)。

为了防止这种状况重演, JAVA不允许采用隐式说明, 一定要采用显式说明语句。

这是它与c++ 语言的一个重要不同点。

JAVA 的链接程序了解类型系统, 对编译程序已做过的许多类型检查再次进行检查, 以避免出现版本失配问题。

JAVA 与c/c++ 之间的一个最大差别是JAVA 有一个指示器模型, 这保证了存储器不会被错误改写, 数据不受破坏。

JAVA所用的指示器不是代数量, 而是数组, 因而可以进行下标检查。

此外, 它也不允许通过舍人把一个任意整数赋予指示器。

非常动态的语言如Lisp、TCL 和smalltalk 经常用于开发原型软件。

之所以如此, 是因为这些语言非常可靠,你不必担心存储器被破坏, 你可以放心大胆地去编写程序。

JAVA 也有这种能力。

动态语言之所以适合于开发原型软件, 其中的一个原因是它不要求你很早就作出决策。

JAVA与此正好相反, 它要求你作出明确的选抖。

在你作出选择的过程中, 你还可以得到许多帮助: 你可以写上方法调用语句; 如果你的程序有错误, 在编译期间会告诉你; 你不必担心方法调用出错;你还可以使用界面而不是使用类别, 从而得到很多的灵活性。

安全性JAVA旨在应用于联网/ 分布环境。

因此,安全性被置于重要的地位。

JAVA 能够形成无病毒、无障碍的软件系统。

它的审批技术是在公共钥匙加密技术的基础上发展起来的。

“可靠性”与“安全性”关系密切。

比方说, 改变指示器的语义,应用软件就不可能存取它以前存取过的数据结构或专用数据。

在这种情况下, 大多数病毒也就无法破坏数据。

结构中立性JAVA 的设计目标是支持网络应用软件。

一般来说, 网络是由CPU 结构和操作系统结构多样化的各种系统组成的。

为了使JAVA应用软件可以在网络的任何地方运行, 编译程序产生的目标文件格式必须在结构上保持中立—编译而成的代码在JAVA 运行系存在的情况下应当可以在许多种处理器上执行。

这种中立性不仅对网络十分有用, 对于软件的分发也非常有用。

在当前的个人计算机市场中,应用软件开发人员必须开发不同版本的应用软件, 使之分别兼容于IBM PC。

随着PC市场分化为许多cpu 结构和Apple计算机从68000 改为power PC, 要为所有的平台分别开发同一种软件几乎是不可能。

有了JAVA后, 同一版本的应用软件就可以运行于所有平台。

JAVA 编译程序之所以能够做到这一点, 是因为它产生的字节码指令不能在任何计算机结构上直接执行, 但可在任何一种机器上进行解释并翻译成该机器的机器码。

可移植性JAVA 的结构中立性是其可移植性的主要保证, 但不是唯一的原因。

与C++ 不同,JAVA 语言不存在由于具体实现系统的不同而造成的差别。

一旦数据类型确定好了, 其运算性质也就确定了。

比方说, “ int”一定是指带符号的补码形式的32整数, “flont’一定是指32位的IEEE754 浮点数。

这些规定之所以可行,是因为今天几乎所有的主要CPU都有这样的特性。

作为系统一部分的各种库也都规定了可移植的界面。

比方说,JAVA有一个抽象的window 类, 它适应Unix、windows环境。

因此, JAVA 的各种库也保证了JAVA 应用软件可移植到各种不同的系统。

JAVA系统本身也是可移植的:新的JAVA编译程序是用JAVA编写的,运行库是用ANSIC 语言编写的, 以POSIX 作为可移植性的界面。

解释性JAVA 解释程序可以在任何机器上直接执行JAVA字节码。

由于链接过程是渐进的、轻量级的, 所以演绎过程快。

编译期间产生的各种信息作为字节码流的一部分, 在运行期间仍可使用。

相关文档
最新文档