资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Java,语言程序设计,周猛 讲师,生物医学软件工程教研室,参考书:,Java 2,编程指南,Java,编程思想,课程内容,第一章,Java,语言概述,第二章程序、数据、变量和计算,第三章,Java,控制结构,第四章数组与字符串,第五章类的定义,第六章扩展类与继承,第七章异常,第八章流,第九章线程,第十章图形用户界面与事件处理,第十一章,Java Applet,第十二章,Java,中的网络编程,JAVA,程序设计,第一章,Java,语言概述,本章内容,Java,的历史,Java,的版本,Java,的特色,Java,的安装,Java,程序开发,1,程序设计语言,程序设计语言的种类:,机器语言:机器指令,直接执行,汇编语言:符号化,汇编器,(,Assembler,),高级程序设计语言(编译型),高级程序设计语言(解释型),高级语言中用于描述计算的结构采用类似于数学中代数运算公式的形式,这种结构被称为“表达式”。程序中基本的动作单位被称为“语句”,不同的语句实现不同的功能。用高级语言书写的程序不可能直接地在计算机上执行,要在计算机上执行高级语言书写的程序,有两种基本方法,:,编译(,Compilation,),执行:这种方法是设法把高级语言程序(也称为“源程序”)转换成为机器语言的可以由计算机直接执行的程序,即转变为“可执行(,Executable,),程序”,。,“,解释”(,Interpretation,),执行:这种方法是即时把源程序转换为机器可执行的指令。有时为了提高效率,也可以先编译成一种中间代码。,1,程序设计语言,高级程序设计语言,对于,“,编译执行,”,方式,人们实现了高级语言,“,编译器,”,(,Compiler,),完成这种转换工作。编译器把高级语言程序看成是符合一定语法结构的符号串,对它进行加工变换。编译器对源程序的加工一般分为两个阶段:源程序首先被翻译成机器语言,这种翻译结果称为,“,目标码,”,(,object code,),,目标码构成的程序片段称为目标模块。第二步,这些目标模块被与其他一些基本模块(由编译软件提供)连接在一起,最终形成,“,可执行程序,”,(,executable program,),,这样的程序就可以在计算机上实际运行了。,第一个加工步骤称为,“,编译,”,(,compiling,),,第二个步骤称为,“,连接,”,(,linking,)。,1,程序设计语言,高级程序设计语言,1,程序设计语言,高级程序设计语言,编 译 过 程,对于,“,解释执行,”,方式,人们实现了一种称为,“,解释器,”,(,Interpreter,),的软件来完成转换工作。解释器在工作方式上与编译器不同,它不对源程序进行翻译,而是直接对源程序的语句进行分析和解释,实现源程序所描述的功能。,1,程序设计语言,高级程序设计语言,解 释 过 程,1,程序设计语言,高级程序设计语言,高级语言写出的程序是独立于任何具体的计算机的。但是“编译器”和“解释器”则是与机器相关的。同一种语言,对于不同的机器,需要不同的“编译器”和“解释器”。,人们已经开发出了许多不同的高级程序设计语言,不同的语言有各自不同的规范,因此需要专门的“编译器”和“解释器”。,FORTRAN(FORmular,TRANslation,),语言,,,HPF,:,IBM,,,1950,Pascal,语言:,N.Wirth,,,1968,,,(Delphi,,,Borland),COBOL(COmmon,Business Oriented Language),语言:美国国防部,,1960,C,和,C+,语言:,Dennis,Retchie,1972;,Bjarne,Stroustrup,1983,Bell,Basic(Beginners All-purpose Symbolic Instruction Code),语言:美国国防部,,1964,Ada,语言:军用程序设计语言,美国国防部,1983,Java,语言:,1991,年,,SUN,MicroSystem,公司,1,程序设计语言,高级程序设计语言,2,Java,历史介绍,1990,年,,Sun,公司开始了一个,James Gosling,(,Java,创始人)项目,尝试用,C+,开发用于消费电器中的软件。,Gosling,用了一个新语言,Oak,来解决这个问题。,Oak,保留了熟悉的,C+,语法,当,Oak,成熟时,因特网也正处于戏剧性增长的时期,,Sun,公司的开发小组认识到,Oak,非常适合,Internet,编程。,1994,年,他们完成了一个用,Oak,编写的早期,Web,查看器,称为,WebRunner,,后被改名为,HotJava,James Gosling,Green Project,1991,Java,让人联想到印度尼西亚有个重要的盛产咖啡的岛屿,开发人员为这种新的语言起名为,Java,,,其寓意是为世人端上一杯热咖啡。,1995,年,,Oak,更名为,Java,,并在,SunWorld,95,中发布,Oak,Java,2,!,从此,,Java,的知名度如日中天。甚至在,1996,年,1,月,Java,编译器第一版发布之前,,Java,已经成为,Internet,发行的行业标准。,98,年末,,Sun,推出,Java 1.2(,简称,Java 2),最新,java 6,Java,的版本,J2SE,(Java 2 Standard Edition),J2EE,(Java 2 Enterprise Edition),J2ME,(Java 2 Micro Edition),同一个版本的,Java,,又分为三种版本,标准版,适用于开发用戶端程序,企业版,适用于开发服器端程序,手持设备版,适用于开发,无线设备,程序,3 JAVA,特点,Sun,公司在“,Java,白皮书”中是这样对,Java,进行定义的:,Java,:,A simple,,,object-oriented,,,distributed,,,interpreted,,,robust,,,secure,,,architecture-neutral,,,portable,,,high-performance,,,multi-threaded,,,and dynamic language,。,即,Java,是一种具有,:,简单的、,面向对象的、,分布式的,、,解释型的、,强壮的、,安全的、,体系结构中立的、,可移植的、,高性能的、,多线程的、,动态的语言。,特性之一,简单性,Java,语言的简单性主要出于如下几种因素:,Java,的风格类似于,C+.,Java,提供了自动内存垃圾搜集机制,,Java,的简单性是以增加运行时系统的复杂性为代价的。,Java,使用,“,类”,(Class),来实现对象的概念,class,青椒炒肉丝,青椒,处理,好,牛肉,处理,好,芡汁,制作,好,青椒,+,牛肉,炒,1,分半,用,芡汁,芶芡,即可,主程序对象,class,青椒,数量,=500 g,处理法,青椒对象,class,牛肉,数量,=300 g,处理法,牛肉对象,class,芡汁,制作法,芶芡法,芡汁对象,特性之二,面向对象,特性之三,分布式,分布式包括数据分布和操作分布。,数据分布:指数据可以分散存放于网络上,的不同主机,;,操作分布:指把计算分散由不同主机进,行处理。,对于编程人员来说,,Java,的网络类库是对分布式编程的最好支持。,字节码(,Byte Code,),提供了一种结构中立的对象文件格式,该格式设计成可在多种平台上有效运行的程序。,特性之四,解释执行,源程序,编译,字节码,解释器,(,虚拟机,JVM),Java,解释器直接对,Java,字节码进行解释执行。,自动垃圾收集来进行内存管理,例外处理机制,特性之五,健壮性,语言定义本身的因素不支持指针等,特有的安全模型,字节码校验器(,ByteCode,Verifier,):,类装载器(,Class Loader,):,安全管理器:,Java,位码,(Byte Code),有被窜改过吗?,別乱跑,我帶你到正确的存储位置。,很好!一切正常!但只准你在特定范围活动。,特性之六,安全性,Java,程序被编译成一种与体系结构无关的字节代码,只要安装了,Java,运行系统,,Java,程序可以在任意的处理器上运行,,Java,解释器得到字节码后,对他进行转换使他能够在不同的平台上运行,。,特性之七,体系结构中立,“Write Once,Run Anywhere”,PC,UNIX,Mac,Java,程序,Compile,Java,Byte Code,Java VM,For PC,Java VM,For UNIX,Java VM,For Mac,特性之八,可移植性,Java,采用多种机制来保证可移植性,其中最主要的有两条:,Java,采用的是基于国际标准的数据类型。,Java,的数据类型在任何机器上都是一致的,,它不支持特定于具体的硬件环境的数据类型。,此外,,Java,的可移植性还体现在,Java,的运行环境上。,Java,作为一种解释型语言,其速度不会超过编译语言,C,,,但远远超过交互式语言,GUI,等。和其他解释执行的语言如,BASIC,等不同,,Java,字节码的设计使之能很容易地直接转换成对应于特定,CPU,的机器码,从而具有较高的性能。,特性之九,高性能,多线程概念很象多任务,,Java,可以把一个程序分成多个任务以便使任务易于完成和最大限度利用,CPU,资源。,特性之十,多线程,可將一个程序分成数份,,让各部份能同时被执行。,在,Java,类库中可以自由的加入新的方法和实例变量而不会影响用户程序的执行。,特性之十一,动态性,Java,通过接口来支持多重继承使之比严格的类继承具有更灵活的方式和扩展性。,Java,与,C,及,C+,的区别,不再有全局变量,不再有,#include,和,#define,等预处理功能,不再有,structure,、,union,及,typedef,等,不再有函数、不再有指针、不再有多重继承,不再有,goto,语句,不再有操作符重载,(,Operatior,Overloading),取消自动类型转换,要求强制转换,自动进行内存管理,4,Java,编程环境,Java,软件开发工具包,JDK,适于,WindowsXP,和,WindowsNT/2000,工作平台,由于,Java,的,JDK,版本是免费的,因此可以从因特网上免费下载,找到我们感兴趣的信息。,三种平台简介,目前,Java,运行平台主要分为下列,3,个版本:,(,1,),J2SE,:称为,Java,标准版或,Java,标准平台。,J2SE,提供了标准的,SDK,开发平台(以前称做,JDK,开发平台)。,(,2,),J2EE,:称为,Java,企业版或,Java,企业平台。,(,3,),J2ME,:称为,Java,微型版或,Java,小型平台。,JDK,j2eesdk-1_4_01-windows.exe,j2sdk-1_4_2-doc.zip,集成环境,Jbuilder,(Borland),Visual J+(Microsoft),JPad,TextPad,JDK,的下载,用来调试,java,程序。,Javap,:反,编译,将类文件还原回方法和变量。,Javadoc,:,文档生成器,创建,HTML,文件。,Appletviwer,:,Applet,解释器,用来解释已经转换成,Bytecode,的,java,小应用程序。,设置环境变量:,PATH=,bin;,CLASSPATH=.;,;,Windows 98,:,autoexec.bat,Windows NT/2000/XP,:,控制面板,系统高级环境变量,仅仅安装,JRE,如果你只想运行别人的,Java,程序可以只安装,Java,运行环境,JRE,,,JRE,由,Java,虚拟机、,Java,的核心类以及一些支持文件组成。可以登录,Sun,的网站免费下载,Java,的,JRE,。,5 Java,程序开发,Application,“Java,应用”是可以独立运行的,Java,程序。,由,Java,解释器控制执行。,Applet,“Java,小程序”不能独立运行,而是被嵌入到,Web,页中。,由与,Java,兼容的浏览器控制执行。,Client,机,Server,机,Browser,网页,字节码,Java,程序的几种类型,Java,程序分两种:,Java,应用程序(,Java Application,),Java,小,程序(,Java Applet,),Java,应用程序(,Java Application,),控制台应用程序(,console applications,),窗口化,Java,应用程序(,windowed java applications,),Java,的工作方式,文件类型,.javaJava,源文件,.class,二进制,字节码文件,编译过程,Java,编译器,Import,java.io,.*;,class test.,test.java,DF BA 09 88,.,test.class,Java,的工作方式,本地计算机系统,Java,虚拟机(,JVM),.class,二进制字节码文件,.java,java,源程序文件,编译,Java,的工作方式,Java,虚拟机(,JVM,),Java,虚拟机类似于一个小巧而高效的,CPU,,,Java,处理器“芯片”,一般由软件实现,Java,虚拟机,类装入器,字节码验证器,解释器,字节码,执行,Java,虚拟机,类装配器,字节码验证器,解释器,本地计算机系统,代码生成器,JIT code generator,Hello.class,编译型工作方式,解释型,工作方式,Java,虚拟机,加载代码,类加载器,加载程序运行所需要的所有的类。类加载器将本地文件系统的类的名字空间与从网络资源来的类的名字空间分开,一旦所有的类被加载,可执行程序的内存布局就被确定了。内存地址被分配给符号引用表,查找表被建立。由于内存的布局出现在运行时刻,防止了对于代码域的未授权的访问。,Java,虚拟机,验证代码,字节代码验证器,java,代码在你的机器上执行前要经过几个测试。字节码验证器测试代码段的格式,检查代码段是否有非法代码(伪造指针,对象上的非法存取,试图改变对象类型等)。,所有网络来的类文件都要经过字节验证。,执行代码,运行解释器,Java,术语,JVM,、,JRE,JVM,java virtual machine,JVM,虚拟机将,java,字节码程序翻译成机器,语言。然后由计算机执行。,JVM,没有其他相关的文件。,.,JVM,本身不足以支持,java application,和,applet,的运行。,JRE,java,运行环境,.,JRE,是由,JVM,和,java platform,核心类以及相,关支撑文件组成。,.,Java,术语,API,Application programming interface.,API,是,rules(syntax),:在,java,技术中如何编程。,API,包括数百个类,sun,公司预先编好的代码,,你可以在编程中充分利,用它们的功能。,Java,术语,JDK,、,J2 SDK,JDK java developers kit(java,开发工具包,),JDK,包含,JVM,和其他工具,以及所有的,API,和相关文件。,JDK,是,java,技术的旧名,(1999/11,以前,),,,JDK1.1,是最后版本。,Java 2 Java 2 Platform,J2 SDK java,技术的新名称,SDK Software Development Kit,JVM,JRE,J2 SDK,JVM plus basic APIs(what you need to distribute to people who will run your Java programs),JVM plus all APIs,compilers,tools,and documentation(what you need in order to write java technology programs).,5.1,Java,应用程序的开发,开发一个,Java,应用程序需经过三个步骤:,编写源文件,、,编译源文件生成字节码,、,加载运行字节码,。,1),编写源文件,(1),源文件的组成,使用一个文字编辑器,如,Edit,或记事本,来编写源文件。不可使用,Word,编辑器,因它含有不可见字符。,Java,是面向对象编程,,Java,应用程序,的源文件是由若干个书写形式互相独立的类组成。见,例子,1,(2),应用程序的主类,一个,Java,应用程序必须有一个类含有,public static void main,(,String,args,),方法,称这个类是应用程序的主类。,args,是,main,方法的一个参数,是一个字符串类型的数组(注意,String,的第一个字母是大写的),以后会学习怎样使用这个参数。,最简单的,Java,应用程序由仅包含,main(),方法的一个类组成,public class,Ourfirstprogram,public static void,main(String,args,),System.out.println(Hello,World!);,这是类,Ourfirstprogram,的定义。这个类仅仅包括方法,main().,这是方法,main(),的定义。,关键字,public,表明它是可全程访问的。,关键字,static,确保,即使不存在任何类的对象,也可以访问它。,关键字,void,表明它不返回值。,(3),源文件的命名规则,源文件的命名规则是:如果源文件中有多个类,那么只能有一个类是,public,类;如果有一个类是,public,类,那么源文件的名字必须与这个类的名字完全相同,扩展名是,java,;,如果源文件没有,public,类,那么源文件的名字只要和某个类的名字相同,并且扩展名是,java,就可以了。,(4),良好的编程习惯,在编写程序时,一行最好只写一条语句,类体的以方法的大括号最好也独占一行,并有明显的缩进。,2,)编译,Java,源程序,当创建了,Hello.java,这个源文件后,就要使用编译器(,javac.exe,),对其进行编译:,Java,编译器将用户编写的,java,源代码转换成由字节代码(,byte code,)组成的二进制程序。,3,)运行,Java,程序,Java,应用程序必须通过,Java,虚拟机中的,Java,解释器(,java.exe,),来解释执行其字节码文件。,Java,应用程序总是从主类的,main,方法开始执行。因此,必须如下运行,Java,应用程序:,C:1000java Hello,当,Java,应用程序中有多个类时,,java,命令执行的类名必须是主类的名字(没有扩展名)。,例:,5.2 Java Applet,程序的开发,开发一个,Java Applet,程序需经过三个步骤:编写源文件、编译源文件生成字节码、通过浏览器加载运行字节码。,(,1,)编写源文件,一个,Java Applet,源文件也是由若干个类组成的,一个,Java Applet,源文件不再需要,main,方法,但必须有且只有一个类扩展了,Applet,类,即它是,Applet,类的子类(,Applet,类是系统提供的类),我们把这个类称作,Java Applet,源文件的主类。下面的,例子,2,是一个简单的,JavaApplet,源文件。,2,)编译,c:1000,javac,Boy.java,编译成功后,文件夹,C:1000,下会生成一个,Boy.class,文件。如果源文件有多个类,将生成多个,class,文件,都和源文件在同一文件夹里。如果你对源文件进行了修改,那么你必须重新编译,再生成新的字节码文件。,3,)运行,Java Applet,由浏览器来运行,因此我们必须编写一个超文本文件(含有,applet,标记的,web,页)通知浏览器来运行这个,Java Applet,。,下面是一个最简单的一个,html,文件,通知浏览器运行,Java Applet,。,我们使用记事本编辑如下:,现在可以使用浏览器打开文件,Boy.html,运行,JavaApplet,,,效果如,图,1.7,所示。,类库支持:引用其他类。,类定义:,定义程序所需的类及接口,包括其内部的变量、方法等。,main(),方法:应用程序的入口,与标准,C,中,main(),函数的地位是一样的。一个应用程序有且只有一个,main(),方法,,main(),方法必须包含在一个类中,该类即为应用程序的外部标志。,程序注释:与,C,类似,,/*/,/,6,、,Java,程序,Java,应用程序(,Java Application,),编辑存盘:文件,名和,公共类名,(,用,public,声明,),要,一致,HelloWorldApp.java,编译程序:,javac,HelloWorldApp.java,运行程序:,java,HelloWorldApp,运行结果:,Hello World!,public class HelloWorldApp,public static void main,(String args),System.out.println(“Hello World!”);,6,、,Java,程序,第一个,Java,应用程序,声明一个类:,public class,HelloWorldApp,,,类名第一个字母大写。,一个类中可有很多方法,,main,方法是运行程序的第一个方法,方法名的第一个字母小写。,System.out.println,是向屏幕输出,相当于,C,中的,printf,(),。,6,、,Java,程序,第一个,Java,应用程序,public class HelloWorldApp,public static void main,(String args),System.out.println(“Hello World!”);,注意,程序进入从一个类的,main,方法开始,必须保证主类,HelloWorldApp,中实现了,main,方法。,必须保证,HelloWorldApp.java,文件在当前目录下,必须保证,PATH,环境变量中有,jdk_home,bin,6,、,Java,程序,第一个,Java,应用程序,public class,CommArg,public static void main(String,args,),/Display command arguments,int,i;,if(,args.length,0)/have some command arguments,for(i=0;i,args.length,;i+),System.out.println(arg+i,+=+,argsi,);,else /no command argument,System.out.println(No,arguments!);,6,、,Java,程序,第二个,Java,应用程序(命令行参数),命令行参数:,main(String,args,),,,与标准,C,中,main(int,argc,char*,argv,),相似。,字符串的拼接:,arg,+,i,+,=,+,argsi,。,编译程序:,javac,HelloWorldApp.java,运行程序(命令行参数获取):,java,CommArg,first second third,运行结果:,arg0=first,arg1=second,arg2=third,6,、,Java,程序,第二个,Java,应用程序(命令行参数),类库支持:继承,Applet,类,引用其他类。,类定义:定义程序所需的类及接口,包括其内部的变量、方法等。,init(),方法:初始化,自动调用,只执行一次。,start(),方法:初始化后,重入等都将自动调用。,Applet,的主体,在其中可以执行一些任务或启动相关的线程来执行任务,如,paint(),方法等。,paint(),方法:,显示、重画,Applet,窗口时调用。,stop(),方法:离开,Applet,所在页面时调用,以停止消耗系统资源。,6,、,Java,程序,Java,小程序(,Java Applet,),import java.applet.*;,import java.awt.*;,public class HelloApplet,extends Applet,public String s;,/,成员变量,存放要显示在屏幕上的字符串,public void init(),/,初始化方法,在网页被调入是只调用一次,s=new String(“Hello World!”);,/,设置要显示的内容,public void paint(Graphics g),/,显示方法,每次需要重画时该方法被调用,g.drawString(s,25,25);,/,在,Applet,窗口中指定位置显示字符串,6,、,Java,程序,第一个,Java,小程序,编辑存盘:文件名和主类名一致,编译代码:,javac,HelloApplet.java,编写,HTML,文件:,HelloApplet.html,Hello World,6,、,Java,程序,第一个,Java,小程序,Java,小应用程序不能直接执行和使用,必须要在浏览器中执行。,运行,Applet,程序:,1.,appletviewer,HelloApplet.html,2.,在浏览器中运行,运行结果:,Hello World!,6,、,Java,程序,第一个,Java,小程序,理解程序:,import,语句相当于,C,语言中的,include,。,每一个,applet,都是,java.applet.Applet,的子类,用,extends,继承。,applet,中没有,main(),方法。当,applet,被浏览器运行时,,init(),、,start(),方法等自动执行,再调用,paint(),方法。,在,applet,中与屏幕输出有关的操作通过,Graphics,对象来实现。,一个,Java,源文件内最多只能有一个,public,类,文件名必须和它同名。,6,、,Java,程序,第一个,Java,小程序,import java.util.*;,import,java.awt,.*;,import java.applet.*;,import java.text.*;,public class,ParaApplet,extends Applet,String s1,s2,s3,s4;,/,四个字符串变量分别记录四个参数的字符串,public void init(),/,在初始化方法中根据参数的值初始化字符串变量,s1=getParameter(p1);,s2=getParameter(p2);,s3=getParameter(p3);,s4=getParameter(p4);,public void paint(Graphics g),g.drawString(s1,10,10);,g.drawString(s2,10,30);,g.drawString(s3,10,50);,g.drawString(s4,10,70);,6,、,Java,程序,第二个,Java,小程序(带参数的,Applet,),编辑存盘:文件名和主类名一致,编译代码:,javac,ParaApplet.java,编写,HTML,文件:,ParaApplet.html,Applet Parameter Test,6,、,Java,程序,第二个,Java,小程序(带参数的,Applet,),运行,Applet,程序:,1.,appletviewer,ParaApplet.html,2.,在浏览器中运行,运行结果:,1111111,2222222,3333333,4444444,6,、,Java,程序,第二个,Java,小程序(带参数的,Applet,),理解程序:,从页面中获取,Applet,参数:,s1=getParameter(p1);,在页面中设置,Applet,参数:,6,、,Java,程序,第二个,Java,小程序(带参数的,Applet,),包、类、变量、方法等命名:要体现各自的含义。,包,名全部小写,,io,,,awt,类名第一个字母要大写,,HelloWorldApp,变量名第一个字母要小写,,userName,方法名第一个字母要小写,,setName,程序书写格式:保证良好的可读性,使程序一目了然。,大括号,的使用与对齐 语句段的对齐,在语句段之间适当空行,程序注释:帮助了解程序的功能。,类注释 变量注释,方法注释 语句注释,语句段注释,6,、,Java,程序,程序书写规范,第一次使用,Java,时常见的问题,编译时,运行时,使用“,.”,作为目录名分割符:,your home,javac,examples.ch1.Welcome1.java,错误:不能读:,examples.ch1.Welcome1.java,1,个错误,解决办法:,your home,javac,examplesch1Welcome1.java,或者,your home,javac,examples/ch1/Welcome1.java,Java,编译时常见的问题(,1,),Java,编译时常见的问题(,2,),忘记文件后缀,.java,your home,javac,examplesch1Welcome1,javac,:,无效的参数:,examplesch1Welcome1,用法:,javac,解决办法:,your home,javac,examplesch1Welcome1.java,或者,your home,javac,examples/ch1/Welcome1.java,Java,运行时常见的问题(,2,),没有把当前目录加到,classpath,环境变量中:,your home,java examples.ch1.Welcome1,Exception in thread main,java.lang.NoClassDefFoundError,:examplesch1Welcome1,解决办法:,set,classpath,=,%,classpath,%;.,或者,your home,java,classpath,.,examples.ch1.Welcome1,Java,编译小窍门,命令行:,javac,*.java,可以编译当前目录下所有的,.java,文件,命令行:,javac,yourpackage,*.java,编译,yourpackage,目录下所有的,.java,文件,练习,1.,Java,编译器将源代码翻译成的独立于平台的格式是:,A.,opcodes,B.,bytecodes,(字节码),C.virtual machines,(虚拟机),D.applets,(小应用程序),2.,运行,Java,编译器的命令是什么?,A.java B.,appletviewer,C.,jdb,D.,javac,3.,下面哪条命令用来运行,Java,applicaiton,?,A.java B.,appletviewer,C.,jdb,D.,javac,4.,下面哪条命令用来运行,Java applet?,A.java B.,appletviewer,C.,jdb,D.,javac,5.,可以用来创建,Java,程序的免费工具集被称作什么?,A.JRE B.JDK C.JVM D.JNI,B D A B B,
展开阅读全文