Java语言程序设计(一)04747-汇总(2016——2017全)
- 格式:doc
- 大小:8.33 MB
- 文档页数:34
#Java语言程序设计/Chapter1Chapter1.Java语言基础java语言特点java主要有以下特点:1. 强类型.2. 编译与解释:java的编译程序先将java源程序翻译成与机器无关的字节码,运行时,java的运行系统装载和链接需要执行的类,解释执行字节码程序3. 自动无用内存回收功能.4. 面向对象.5. 与平台无关.6. 安全性7. 分布式计算8. 多线程java应用程序和小应用程序java程序可以是独立的应用程序和能在浏览器上执行的小应用程序(Applet)两种java程序,扩展名为:“.class”的文件组成.都需要java虚拟机(JVM)载入并翻译.一个程序必须只有一个类含有main()方法,这个类是应用程序的主类.java的源文件的扩展名必须是“.java”.java程序的开发过程1. 编写源程序文件.java2. java编译器javac3. 字节码文件.class4. java解释器编译应用程序5. Applet由web浏览器执行appletviewer——Java Applet解释器标识符和关键字字符集:java语言使用unicode字符集,包括:1. 数字符10个(0-9)2. 英文字母大,小写字符各26个(AZ,az)3. 下划线,美元符号4. 文字字符(汉字,日本片假名,平假名和朝鲜文字)5. 其他用于构成特殊符号的字符集.标识符:用于命名程序对象,类名,变量名,方法名等:1. 由字母(包括英文字母,下划线字符,美元字符,文字字符)和数字符组成.2. 限定标识符的第一个字符不能是数字符.关键字已经被赋予特定的意义,不能用这些关键字作为标识符命令程序对象.基本数据类型.逻辑类型用关键字boolean标识,所以也称布尔型.逻辑类型只有真和假两个值,true表示真,false表示假.字符类型用关键字char标识,除了普通字符常量,还有转义字符常量,例如:\b 退格Backspace\n 换行符,光标位置移到下一行首.\r 回车符,光标位置移到当前行首.\t 水平制表符tab键\v 竖向跳格符\f 走纸换页\\ 反斜杠\\' 单引号‘\" 双引号“\nnn 8进制数字\unnnn 16进制数字整数类型整数识不带小数点和指数的数值数据.1. 基本型:用int标识.4个字节,32位,取值范围:-2的31次方——2的31次方.2. 字节型:用byte标识.1个字节,8位,取之范围为:-2的7次方——2的7次方.3. 短整型:用short标识.2个字节,16位,取值范围:-2的15次方——2的15次方.4. 长整型:用long标识,8个字符,64位,取值范围:-2的63次方——2的63次方.每个整数型处理不同范围的整数值.并且都是带符号的.1236十进制0777(8进制,以数字符0开头)0x3ABC(16进制,以0x开头,后随数字符和英文字母A到F)浮点数类型浮点数类型也称实型,浮点数是带小数点或指数的数值数据.1. 单精度型:用float标记,占用4个字节,32位,float型常量的书写方法是在实数之后加上字母F或f.例如23.54F,12389.987F2. 双精度型:用double标记,占用8个字节,64位,double类常量的书写方法有两种:一种是直接写一个实数,或在数后加字母D或d.另外一种方法是科学计数法,用10 的方幂表示(用字符e或E表示幂低位10)例如123.24e40,表示123.24乘10的40次方.#Java语言程序设计/Chapter2运算和语句数据运算赋值运算1.简单赋值运算:变量=表达式执行过程:9. 计算赋值运算符右端的表达式.10. 当赋值运算符两侧的类型不一致时,将表达式值的类型自动转换变成变量的类型.11. 将表达式的值赋值给变量,即存储到与变量对应的存储单元中.简单类型向复杂类型转换:byte——short——int——long——float——double2.复合赋值运算变量既要参与运算,又要接受赋值.为避免对同一个变量的地址重复计算,引入复合赋值运算符.有+=,-=,*=,/=,%=算术运算运算时,只需一个运算分量的是单目运算,需要两个运算分量的是双目运算.单目算术运算符:+(取正),-(取负)双目算术运算符:+,-,*,/,%(加,减,乘,除,求余)自增和自减运算++,--是单目运算符,要求运算分量是数值类型的变量.++i,引用变量时,先使i加1,以加1后的i值为运算结果.i++,引用变量i之后,才使i加1,即以增1前的i值为运算结果.关系运算有6个关系运算符:<,<=,>,>=,==,!=关系运算对左右两侧的值进行比较,如果比较运算的结果成立,则值为true,不成立则为false.关系运算符的优先级低于算术运算符的优先级.逻辑运算逻辑运算符用来描述逻辑表达式,有三个逻辑运算符.&&(逻辑与),||(逻辑或),!(逻辑否)其中!逻辑否是单目运算符.!逻辑否高于算术匀速符的优先级.逻辑与和逻辑或的优先级低于关系运算符的优先级.条件运算条件运算是一个三目运算,一般形式如下:逻辑表达式?表达式1:表达式2条件运算的执行过程是:6. 计算逻辑表达式7. 如果逻辑表达式的值为true,则计算表达式1,并以表达式1的值为条件运算的结果(不再计算表达式2)8. 如果逻辑表达式的值为false,则计算表达式2,并以表达式2的值为条件运算的结果(未计算表达式1)语句一个计算过程由一系列计算步骤组成.一个计算步骤或用一个语句,或用一个计算流程控制实现.基本语句1.表达式语句如k++,k+=1等2.空语句如只有一个分号;3.break语句break语句必须出现在多路按值选择结构或循环结构中.break语句的执行强制结束它所在的控制结构,让程序从这个控制结构的后继语句继续执行.4.continue语句continue语句只能出现在循环结构中,continue语句的执行将忽略它所在的循环体中在它之后的语句.5.return语句return语句只能出现在方法体中,return语句的执行将结束方法的执行,将控制返回到方法调用处.retrun语句有两种形式return;第一种形式只能用于不返回结果的方法体中,第二种形式用于返回结果的方法体中,方法在返回前先计算return后的表达式,并以该表达式值作为方法返回值,带回到方法调用处继续计算.复合语句复杂计算经常被分解为一个计算步骤序列.用花括号括住一个顺序执行的计算步骤序列描述顺序结构,这样的顺序结构称作复合语句.在构造复合语句时,为完成指定的工作,可能需要临时工作变量.if语句两路条件选择结构流程图,当条件成立时,选择语句1执行,条件不成立时,选择语句2执行.执行的过程是:if(条件表达式)语句1else语句26. 计算条件表达式7. 测试表达式的值并选择语句执行,如果表达式的值为true,则执行语句1,否则,执行语句2.注意:无论条件表达式的值时true还是false,只执行语句1或语句2中的一个,不会两个都执行.经常遇到这样的悬着控制,对变量或表达式的每一个可能的值分别做不同的计算.可以使用多路按值选择结构可避免使用if语句嵌套太深的情况,使用switch语句,一般形式为:switch(表达式){case 常量表达式1:语句序列1;break;//也可以没有breakcase 常量表达式2:语句序列2;break;//也可以没有break--------------------case 常量表达式n:语句序列n;break;//也没有没有breakdefault : 语句序列n+1;break;//也可以没有break}switch语句的执行过程如下:3. 表达式的值等于某个常量表达式的值,switch语句就从该常量表达式之后的语句序列的第一个语句开始执行,顺序执行经过的语句序列.如果选择的语句之后没有break语句,则执行(将不理会遇到的case和常量表达式),继续执行后继的语句序列.如果执行过程中遇到break语句,或执行完switch语句中的序列,则结束switch语句的执行.4. 没有匹配的常量表达式,有default子句,则执行defalut之后的语句序列.5. 没有匹配的常量表达式,也没有defalut子句,则switch语句的这次执行立即结束. try.....catch语句在java语言中,用try...catch语句指定可能会发生异常的代码块和错误处理代码块.最后,为了适应各种可能,另用finally标识一个无论try块中语句异常是否发生都会执行的语句块.try{语句块 //执行该语句块,可能或发生异常}catch(异常类型e){异常发生时要执行的语句块}finally{无论异常发生与否,都要执行的语句块}while循环的语义是当条件成立时重复执行指定的循环体.每次执行循环体之前,先判定条件,在条件成立时,执行循环体语句,然后继续计算和判定条件,由此实现重复计算,直至条件不成立,才结束循环控制.while语句的一般形式为:while(循环条件表达式){循环体}while语句的执行过程是:5. 计算循环条件表达的值.6. 当值为true时,转步骤3,当值为false时,结束循环.7. 执行循环体,并转步骤1.在用while语句描述循环计算时,如果循环体由多个语句组成,这些语句需要用花括号括住.有时,很难直接写出循环的条件表达式,这时可以简单地写上true,而在循环体中使用if语句,当某个条件满足时,执行break语句结束循环.while(true){.......if(条件表达式) break;}do...while语句do...while循环的语义时重复执行指定的循环体,直至条件不成立结束循环.每次执行循环体之后,再判定条件.在条件成立时,继续执行循环体;直至条件不成立,结束循环控制.do...while的一般形式为:do循环体while(条件表达式);do...while语句的执行过程是:3. 执行循环体4. 求循环条件表达式的值.5. 当值为true时,转步骤1,当值为false时,结束循环.注意,最后的分号是do...while循环结构的结束符,不能省略.for语句例如计算1+2+3....100可以用for循环.for循环,可设置累加变量s和控制循环的变量i,循环前预置变量s的初值为0,控制循环的变量i从1开始,每次循环递增1,直至i大于100结束循环.对每个小于等于100的i值,循环将它累计到变量s中.for循环包含四部分:为循环有关变量赋初值的表达式1,控制循环条件的表达式2,实现循环计算的语句,称作循环体,以及循环体执行后为有关变量更新的表达式3.for循环控制结构用for语句描述,for语句的一般形式为for(表达式1;表达式2;表达式3)语句for循环控制的执行过程是:1. 计算表达式1,为循环有关的变量置初值.2. 计算并测试表达式2,若其值为true,转步骤3;否则,结束循环.3. 执行循环体,完成一次循环计算.4. 计算表达式3,更新有关变量的值.5. 转向步骤2,实现循环控制.s=1+2+3+...1+100for(s=0,i=1;i<=100;i++)s+=icontinue语句和break语句循环体中的continue语句和break语句用于改变循环体原有语句执行流程.其中continue 语句的作用是结束当前一轮循环(跳过本轮循环的剩余语句)直接进入下一个循环.continue语句出现在for循环中,跳至表达式3,更新循环变量.continue语句出现在while和do—while循环中,跳至循环条件的计算和测试.break语句的作用是从循环体内跳出至循环的后继语句,即强行中断当前循环. package语句package语句必须出现在源程序文件的起始行,表示出现在该文件中的所有类都属于这个程序包.如果有多个源程序的程序包声明使用相同的包名,则表示这些源程序文件中的全部类都属于这个程序包.package 包名import语句import语句用来引入所需要的类.import语句的格式为:import 包名.类名如import java.util.date /只是引入了date类如果要从一个包中引入多个类,则可以用通配符“*“.Java应用程序的基本结构结构如下:[package 包名;]import 包名.类名;....//更多的import语句,引入更多的类[public] class 类名{int val=.... //变量定义语句public static void main(String args[]){ //方法定义.....//变量定义和控制语句构成的方法体}}#Java语言程序设计/Chapter3面向对象编程3.1 面向对象的基本概念使用面向机器的语言编写程序,编程模式是:程序=数据+指令使用面向过程语言编程,编程模式是:程序=数据结构+算法使用面向对象编程,编程模式是:程序=对象+消息12. 抽象:是程序设计中最经常使用的技术之一,因为抽象是有效控制程序复杂性的重要手段.在面向对象阶段,利用抽象按类设计.类是目前支持抽象的最好工具.13. 对象:在实际生活中,人们每时每刻与对象打交道,例如,汽车,自行车,在特定的应用领域都是对象.14. 消息:一个应用程序总会包含许多对象,通过这些对象之间的交互,实现更高级,更复杂的行为.15. 类:通常程序系统中会有许多同样类型的对象.类的声明定义了类的所有对象的共有的属性和方法.16. 继承:除对象按类划分外,不是同一类的对象可能会存在某些相似性.继承就是在已有类的基础上,扩充属性,或扩充与改写其某些方法,生成新的类,这种方式称为继承.17. 多态性:有多种表现形式,这里所说的多态性是指类型适用性多态性,这来自继承,不同继承层次的对象对同样的方法有不同的实现.动态联编是面向对象语言必须具有的一种能力,是实现上述多态性的技术基础.3.2 Java的类和对象3.2.1 类类是一种类型,类封装对象的属性和方法,是同一类对象的模板.1.类的声明:声明一个新类的基本格式如下:class 类名 //声明类名的基本格式{类体}2.成员变量成员变量定义的一般形式如下:[修饰字] 类型变量名;其中,修饰字可以空缺,修饰字用于对成员变量限制其访问权限,成员的访问权限有四种:private、protected、public和友好的.变量的类型可以是任何数据类型,变量的名字是一个标识符.java中的成员变量的名字可以与类的方法的名字相同.成员变量对类内定义的方法都有效.类的方法也可定义变量,这种变量称为局部变量,局部变量只在定义它的方法中有效.3.方法方法给出对象的行为,方法声明的一般形式如下:返回值类型方法名(类型参数名,.....,类型参数名){方法体}返回值类型声明方法返回值的数据类型.如果方法无返回值,就用void关键字.方法可以没有参数,多个参数用逗号分隔,参数类型可以是任何数据类型.如果某个方法的参数名或局部变量的名与类的成员变量的名相同,则成员变量在这个方法内暂时被隐藏.如果成员变量在方法内被隐藏,又在方法中要引用成员变量,必须使用this,this引用方法中被隐藏的成员变量.方法重载是指在一个类中定义多个有相同名字的方法,但这些方法或者参数个数不同或者按顺序参数的类型不同.4.构造方法.构造方法是一种特殊的方法,这种方法的名与它的类名相同,并且不返回结果,也不写上void 关键字.构造方法的作用是创建类的对象,并给对象初始化.构造方法是公共方法,但程序不能显示调用构造方法.程序运行时,当有对象要创建时,由系统自动调用构造方法.class Point{int x,y;Point(){ //无参数构的构造方法,点对象被创建,总是预设x=10,y=20x=10;y=20;}Point(int x,int y){ //有两个参数的构造方法,为点对象设置x和y坐标的初值this.x=x; //成员变量与参数同名,this是指成员变量this.y=y;}int getX(){return x;}int getY(){return y;}}3.2.2 对象类被声明后,就可用类创建对象,被创建的对象称为类的实例.程序使用对象需要依次经历4个步骤:声明对象、创建对象、使用对象和撤销对象.1.声明对象由于类是一种引用类型,声明对象只是命名一个变量,这个变量能引用类的对象.声明对象的一般形式为:类名对象名;Point p1,p2;2.创建对象创建对象就是为对象分配内存,为对象分配内存也称为类的实例化.new 构造方法([参数表])p1=new Point(); p2=new Point(30,40);对象创建的两个步骤也可一起完成,一般格式为:类名对象名=new 构造方法([参数表])Point p3=new Point(),p4=new Point(60,70);3.对象的内存模型Java语言将类型分为基本类型和引用类型两种.整型、浮点型、字符型等是基本类型,程序引用这种类型的变量,采用直接访问形式.在java语言中,数组类型和类类型是引用类型.程序访问引用类型的变量采用间接访问方式.4.使用对象程序使用对象有多种情况:或为对象设置状态、或获取对象的状态、或改变对象的状态、或应用对象的某种方法.前三种需要访问对象的成员变量,最后一种要调用对象的方法.程序通过操作符“.”对某对象的成员变量进行访问和方法调用.一般形式为:对象名.成员变量对象名.方法([参数表])3.2.3 实例变量和类变量类的成员变量又分为实例变量和类变量.在定义成员变量时,用关键字static修饰的是类变量,定义时未用static修饰的是实例变量.class D{float x; //实例变量xstatic int y; //类变量y}类变量是类的所有对象共享的成员变量,一个类变量在类中只有一个,它属于整个类,而不属于类的某个对象.类变量的内存只有一处,让类的所有对象共享.从类的任一对象改变类变量,类的其他对象都能发现这个改变.3.2.4 实例方法和类方法如同类的成员变量有实例变量和类变量两种一样,类的方法也有两种:实例方法和类方法.以修饰字static的方法为类方法,没有则为实例方法.类方法不能直接调用实例方法,除非类方法引入局部对象,然后通过局部对象调用实例方法,另外,类方法能直接引用类变量,不能引用实例变量.3.2.5 访问权限访问权限实现访问控制.public:设置没有限制的访问权限,其他类的方法都能访问.private:设置最强的访问权限,其他类的方法都不能访问.protected:只限子类或同一包中的类的方法能访问.<defaut>:(无修饰,友好的)只允许同一包中的类的方法访问.3.2.6 继承继承是面向对象语言的重要机制.借助继承,可以扩展原有的代码,应用到其他程序中,而不必重新编写这些代码.扩展声明的新类称为子类,原有的类称为父类.格式如下:class 子类名 extends 超类名{类体}子类自然地继承其父类中不是private的成员变量作为自己的成员变量,并且自然地继承父类不是private的方法作为自己的方法.1.多态性.解决这种多态性必须采用动态联编技术.2.多层继承继承声明的新类,又可被其他类再继承,从而构成多层继承.3.多层继承中构造方法的调用顺序构造方法的调用顺序与类的继承顺序一致,从最高层次的超类开始,按继承顺序调用各类的构造方法.如果子类的构造方法要调用超类的构造方法,给从超类继承的成员变量初始化,用代码super(参数),并且该代码必须是构造方法的第一条语句.3.2.7 Java面向对象的其他机制1.final类,final方法和final变量final的意义是最终的,用于修饰类,方法和变量,其意思是“不能改变”.在声明之前用final修饰,声明类是final类,final类是不能被再继承的类,即它不能再有子类.final class C{...}用final修饰方法,声明该方法不能被子类的方法覆盖.final int f(int x,int y){...}用final修饰变量,声明该变量的值不能被改变.2.abstract类和abstract方法abstract类称为抽象类.抽象类只声明一种模板,没有具体实现代码的类.只有它的子类才可能是有实际意义的类,所以,抽象类不可能有实例.abstract方法称为抽象方法,抽象方法只能出现在抽象类中,抽象方法没有实现的代码.如果一个类是抽象类的子类,则必须具体实现超类的抽象方法.抽象类可以没有抽象方法,但有抽象方法的类一定是抽象类.3.关键字super子类隐藏了超类的成员变量或者覆盖了超类方法后,利用关键字super,子类方法可以引用超类的成员变量和被覆盖的方法.使用super有3种情况:使用super调用超类的构造方法.4.关键字this关键字this用来指对象自己.this的作用有很多种.将对象自己作为参数,调用别的方法;当方法的局部变量隐藏成员变量时,利用this引用成员变量,在构造函数调用另一构造函数等.5.类之间的is-a和has-a关系在两个相关的类之间,例如,类a和类b,可能会有is-a和has-a关系.9. 类a如果继承拓展类b,类a和类b之间有is-a关系.10. 如果类a的某个成员变量的类型是类b,则类a和类b之间是has-a关系,即类a包含有类b.6.内部类java语言也允许在类声明内部嵌套类声明.嵌套的类可以是静态的或者是非静态的.静态类不能直接引用其包含类的成员,必须是实例化,所以不经常使用.非静态的嵌套类,因为需要进行事件处理,非常流行.类B在类A的内部声明,而且在类A的构造方法中实例化一个类B的内部对象.class A{B obj;A(){obj=new B(); obj.print();}class B{//B是内部类public void print(){System.out.println("内部类B…”);}}}public class Example3_18{public static void main(String[] aggs){A obj=new A();}}3.3接口java程序中的类只能继承一个类,这种继承称为单继承.java语言虽不允许一个类继承多个类,但允许一个类实现多个接口.接口有常量定义和方法定义,但没有方法的实现代码.接口也是对一些类为实现某些控制所建立的一个“协议”.1.接口的定义:[public] interface 接口名 [extend 超接口表]{接口体}接口名通常以able或ible结尾,意指能做什么.接口是一种只由常量定义和抽象方法组成的特殊类.用public修饰的接口是公共接口,可被所有的类和接口使用;而没有public修饰的接口只能被同一个包中的其他类和接口使用.2.接口体接口体中的内容是一系列常量定义和方法定义.其中方法定义是一种方法声明,不提供方法的实现.一个类通过使用关键字implements声明自己使用一个或多个接口.实现多个接口时,接口名之间用逗号隔开.一个类要实现某个接口,那么这个类必须实现该接口的所有方法,为这些方法提供实现的方法体.3.4基本类基本类型——对应基本类boolean——Booleanchar——Characterbyte——Byteshort——Shortint——Integerlong——Longfloat——Floatdouble——Double由基本类型值得到对应基本类对象:以下代码得到一个Integer对象,其值时123Integer n=new Integer(123)由基本类对象得到基本类型值.double d=dObj.doubleValue()3.5 Java小应用程序基础java小应用程序即java applet,是嵌入在web页上供浏览器运行的程序,可放在服务器上供客户端下载使用.每个小应用程序都得继承java.applet.Applet类.如果小应用程序已用import java.applet.Applet导入系统的Applet类,小应用程序必须按一下形式声明:public class 主类名 extends Applet如果未用import导入系统Applet类,则主类的声明应写成:public 类名 extends java.applet.Applet为系统的安全,对小应用程序有一定的限制:8. 不能调用本地的应用程序和运行时的动态连接库.9. 不能访问本地文件,如读、写文件;除原小应用程序所在的位置(站点)外.10. 不能再做网络链接与WWW建立联系,不能获得任何有关系统设置的信息.小应用程序的生命周期:6. 下载并实例化小应用程序,系统调用init()方法.7. 启动,系统调用start()方法.8. 小应用程序暂停执行,或因Browser转向其他网页,或小应用程序调用stop()方法,或小应用程序执行paint(Graphics g)方法.9. 重新启动,或重新进入小应用程序所在页面,重新激活小应用程序,或小应用程序执行paint(Graphics g)方法完成.10. 终止,或退出浏览器,或执行destroy()消亡方法.#Java语言程序设计/Chapter4数组和字符串4.1数组数组是将一组相同类型的数据顺序存储,组成一种复合数据类型.所有元素数据类型相同,下标从0开始顺序编号,有一维数组和多维数组之分,数组元素的下标个数确定数组的维数.4.1.1一维数组数组元素只有一个下标的数组是一维数组.1.声明一维数组有两种格式:18. 数组元素类型数组名[]19. 数组元素类型[] 数组名数组元素类型可以是任意的java数据类型(包括类).2.创建一维数组创建数组就是为数组分配存储空间,需指定数组长度.数组创建后,数组名就标识用于存储数组元素的存储空间.创建一维数组的方法有3种:11. 先声明后创建数组名字=new 数组元素类型[元素个数] 代码:int intArray[];//声明数组intArray=new int[5]; //创建数组intArray有5个元素,元素下标自0-412. 在声明时创建,把声明数组和创建数组的代码结合在一起.int intArray[]=new int[5]13. 直接赋值创建int intArray[]={1,2,3,4,5}3.引用一维数组元素引用一维数组元素代码的一般形式为数组名[下标] //引用一维数组元素4.数组是一种引用类型数组也是一种引用类型,一个数组名在不同时间可引用不同的数组.4.1.2 多维数组数组元素有多个下标的数组就是多维数组.1.声明二维数组声明二维数组的一般形式有以下3种:类型数组名 [][]类型 [] [] 数组名类型 [] 数组名 []2.创建二维数组11. 直接分配(平衡二维数组——矩阵)类型数组名 [][]=new 类型[长度1][长度2]。
1 全国2010年10月自学考试Java语言程序设计(一)试题 课程代码:04747 一、单项选择题(本大题共10小题,每小题1分,共10分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.以下是关于Java语言关键字的叙述,其中正确的是( ) A.关键字可以用来描述类的成员类型,但是不能描述普通变量 B.关键字由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字组成 C.关键字不可以用作变量、方法、类或标号的标识符 D.break和main都是Java语言的关键字 2.执行以下代码,输出结果是( ) int x=5,y=7,u=9,v=6; System.out.println(x>y ? x+2:u>v ? u-3:v+2); A.8 B.6 C.7 D.true 3.Java语言中,只限子类或者同一包中的类的方法能访问的访问权限是( ) A.public B.private C.protected D. 4.设有数组定义int[][] x={{1,2},{3,4,5},{6},{}};,则x.length的值为( ) A.3 B.4 C.6 D.7 5.在以下Swing的类中,属于容器的是( ) A.JApplet B.JButton C.JTextArea D.JMenu 6.在以下供选择的方法中,属于接口MouseMotionListener的方法是( ) A.mouseReleased() B.mouseEntered() C.mouseExited() D.mouseMoved() 7.小程序要播放音频文件,可使用类( ) 2
A.Audio B.JAudio C.AudioClip D.JAudioClip 8.以下是关于线程的叙述,正确的是( ) A.多线程的使用可以提高设备的平行工作能力,但是使系统管理变得复杂 B.同一个进程下的线程都有自己的状态、专用数据段和独立的内存资源 C.线程是能独立运行的程序 D.进程的执行效率比线程的执行效率高 9.在Java的类库中,包含实现输入/输出操作的包是( ) A.java.util B.java.io C.java.applet D.java.awt 10.在编写访问数据库的Java程序时,ResultSet对象的作用是( ) A.建立新数据库连接 B.用来表示与数据库的连接 C.在指定的连接中处理SQL语句 D.存储查询结果 二、填空题(本大题共10小题,每小题2分,共20分) 请在每小题的空格中填上正确答案。错填、不填均无分。 11.Java语言采用多种机制来保证可移植性,其中最主要的是______。 12.程序包声明的格式是______。 13.当联编推迟至运行时间实现时,该联编过程称为______。 14.使用默认字节字符对应表,将字符串转化为字节数组的方法是______。 15.在Swing中,带有滚动条的面板的类名是______。 16.组合框(JComboBox)是______的组合。 17.在某个组件中绘图,一般应该为这个组件所属的子类重写______方法。 18.多线程互斥使用______的程序段,在操作系统中称为临界段。 19.在Java语言中,文件随机访问可以利用______类实现。 20.Java程序可以用纯Java的______驱动程序,实现与数据库连接。 三、简答题(本大题共6小题,每小题3分,共18分) 21.请使用for循环语句计算S=1+1013121的值。
2018年10月高等教育自学考试全国统一命题考试Java语言程序设计(一) 试卷(课程代码04747)本试卷共7页,满分l00分,考试时间l50分钟。
第一部分选择题一、单项选择题:本大题共l0小题,每小题l分,共10分。
在每小题列出的备选项中只有一项是最符合题目要求的,请将其选出。
1.以下标识符中,不晕Java语言关键字的是A.class B.newC.long D.wait2.以下程序代码的输出结果是A.6420 B.753lC.642 D.5313.以下选项中,不是转义字符的是A.\u061 B.\`C.\l41 D.\u00614.假设有定义:String S=null;,则下列选项中,能引发异常的是5.设有数组定义int[][]X={{1,2,3},{},{3,4,5},{6,7}};,下列选项中正确的是 A.x.1ength的值是3 B.x[1][0]的值是0C.x[2].1ength的值是3 D.x[3][1]的值是36.下列关于抽象类的叙述中,正确的是A.类中只能含有抽象方法,不能含有普通方法B.类中不一定要有抽象方法,必须要有普通方法C.类中必须含有抽象方法,也可以有普通方法D.类中既可以有抽象方法,也可以有普通方法。
7.以下Java程序代码中,能创建BufferedReader对象的是8.MouseMotionListener接口能处理的鼠标事件是A.按下鼠标键 B.释放鼠标键C.鼠标离开 D.鼠标移动9.列表(JList)中可以对所选项进行控制,下列选项中正确的是A.仅支持单项选择。
B.同时支持单项或多项选择。
C.仅支持连续的多项选择D.既支持单项选择,也支持连续或间断的多项选择10.以下方法中,可以使新创建的线程投入运行的是A.start() B.yield()C.runO D.wait0第二部分非选择题二、填空题:本大题共l0小题,每空2分,共20分。
11.源文件Test11.java经编译后,若正确,则得到的文件名是_________。
自考Java语言程序设计(一)2022年4月真题及(04747)自考Java语言程序设计(一)2022年4月真题及答案解析(04747)1.[单选题] 下列选项中,不属于Java语言特性或语法成分的是()A.面向对象B.全局变量C.JVMD.多线程2.[单选题] 下列选项中,能作为文档解释的是()A./*我是javadoc 解释*/B.//我是javadoc解释*/C./**我是javadoc 解释*/D./*我是javadoc 解释**/3.[单选题] 下列选项中,不能作为for语句中条件表达式的是()A.k++B.k=10C.k==- lD.true4.[单选题] 关于类的叙述中,正确的是()A.每个类都要有一个main方法B.类中可以不显式定义构造方法C.声明一个类时,必须使用public修饰符D.类具有封装性,故不能访问类的数据成员5.[单选题] 下列选项中,能正确加入如下Java代码段的Test类中,并成为cal()的重载方法的是()public class Test{public void cal(int x,int y,int z){ }//在此处添加cal()的重载方法}A.public int cal(int x, int z){ }B.public int cal(int x, int y, int z){ }C.public int cal (int x,int y,int z) {return 0;}D.public int cal(int x, int y, float z){return 0;}6.[单选题] 下列选项中,能够正确初始化数组in的是()A.int [] m;B.m= {1,2,3,4,5};C.int [] m = new int[5];D.int [] m = new int[5]{l,2,3,4,5};7.[单选题] 下列选项中,能作为Java接口成员的是()A.void aMethodO;B.private void aMethod();C.interface void aMethod();D.protected void aMethodO;8.[单选题] 若程序中有语句FileOutputStream out = new FileOutputStream(“myFile.dat”);, 则选项正确的是()A.如果文件myFiIe.dat存在,则将抛出IOException异常B.如果文件myFile.dat不存在,贝幡抛出IOException异常C.如果文件myFile.dat存在,则将覆盖掉文件中己有的内容D.如果文件myFile.dat存在,则将在文件的末尾开始添加新内容9.[单选题] 若要自行设置容器中组件的位置和大小,则需要执行的操作是()A.调用方法setSize()B.调用方法getContentPane()C.调用方法getPreferredSizeOD.调用方法setLayout(null)和setBounds()10.[单选题] 子线程自动获得的优先级是()A.最低优先级B.最高优先级C.随机的优先级D.父类的优先级11.[填空题] Java编译器将Java程序编译成虚拟机能够识别的二进制代码,这种代码称为______________。
04747JAVA语⾔程序设计练习题(第⼀章)1.若Java程序中公有类的名字是OneApp,则保存该程序的⽂件名是(C)。
A.Oneapp.javaB.Oneapp.classC.OneApp.javaD.OneApp.class『正确答案』C『答案解析』Java程序⽂件的扩展名是.java,编译后⽣成的字节码⽂件的扩展名是.class。
参考教材P27。
2.Java程序OneApp.java编译后的类⽂件名是(D)。
A.Oneapp.javaB.Oneapp.classC.OneApp.javaD.OneApp.class『正确答案』D『答案解析』Java程序⽂件的扩展名是.java,编译后⽣成的字节码⽂件的扩展名是.class。
参考教材P27。
3.Java语⾔的解释器是(C)。
A.JVMB.javac.exeC.java.exeD.JDK『正确答案』C『答案解析』java:Java解释器,执⾏已经转换成字节码的Java程序。
参考教材P25。
4.下列选项中,不属于Java语⾔特点的是(A)。
A.类型定义 B.解释执⾏ C.与平台⽆关 D.多线程『正确答案』A『答案解析』Java中没有指针、结构和类型定义等概念。
参考教材P23。
5.下列叙述中,正确的是(D)。
A.Java程序必须配合HTML⽂件才能执⾏ B.JVM解释执⾏Java源程序 C.Java程序中可以使⽤指针 D.Java程序⽣成的字节码⽂件与平台⽆关『正确答案』D『答案解析』字节码就是虚拟机的机器指令,它与平台⽆关。
参考教材P23。
6.下列选项中,不是java程序中的主函数main()前⾯的修饰符的是(A)。
A.classB.staticC.voidD.public『正确答案』A『答案解析』主⽅法main()的前⾯有3个修饰符:static 、public、void。
参考教材P27。
7.下列概念中,属于⾯向对象语⾔重要概念和机制之⼀的是(C)。
2015年10月高等教育自学考试全国统一命题考试Java语言程序设计(一) 试卷(课程代码04747)本试卷共13页,满分100分.考试时间150分钟。
考生答题注意事项:1.本卷所有试题必须在答题卡上作答。
答在试卷上无效,试卷空白处和背面均可作草稿纸. 2.第一部分为选择题。
必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑. 3.第二部分为非选择题。
必须注明大、小题号.使用0.5毫米黑色字迹签字笔作答. 4.合理安排答题空间.超出答题区域无效。
第一部分选择题一、单项选择题(本大题共10小题.每小题1分.共10分)在每小题列出的四个备选项中只有一个是符合题目要求的。
请将其选出并将“答题卡”的相应代码涂黑。
未涂、错涂或多涂均无分.1.以下字符组合中,不能作为Java整型常量的是A.037 B.0x3ADG C.7000 D.0x3abcL2.以下程序代码的输出结果是3.设有数组定义,则x.length的值为A.2 B.3 C.4 D.54. 设有字符串String s=〝ABCDEFGABC〞;,则表达式s.indexOf(〝A〞,7)的值是A.7 B.6 C.3 D.05.以下关于Swing与AWT之间关系的叙述中,正确的是A.Swing是AWT的提高和扩展B.在写GUl程序时,AWT和Swing不能同时使用C.AWT和Swing在不同的平台上都有相同的表示D.AWT中有一些类是从Swing中的一些继承的6.以下供选择的类中,其子类能用来创建框架窗口的是A.JWindow B.JFrameC.JDialog D.JAudio7.某程序定义了一个子类,并要让它实现多线程,以下正确的步骤是A.继承Thread类,在类内定义run( )方法,声明和创建线程对象,并让该对象调用start( )方法。
B.继承Thread类,在类内定义run( )方法,声明线程对象,并让该对象调用start( )方法。
全国2011年10月自学考试Java语言程序设计(一)试题课程代码:04747一、单项选择题(本大题共10小题,每小题1分,共1O分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.下面供选字符序列中,不属于...Java语言关键字的是 ( )A. throwB. synchronizedC. protectD. try2.以下程序代码的输出的结果是 ( )double x = 25.6;System.out.println((int)x << 1);A. 48B. 50C. 51D. 523.在以下供选择的概念中,不属于...面向对象语言概念的是 ( )A.类 B.函数C.动态联编 D.抽象4.在Java语言中,能够实现字符串连接的方法是 ( )A. String substring(int startpoint)B. String concat(String s)C. String replace(char old,char new)D. String trim()5.在以下供选择的容器类中,属于顶层容器的是 ( )A.JDialog B.JPanelC.JScrollPane D.JToolBar6.在以下选项中,属于MouseListener接口的方法是 ( )A.mouseDoubleClicked(MouseEvent) B.mouseDragged(MouseEvent)C.mouseMoved(MouseEvent) D.mousePressed(MouseEvent)7.设已经有Graphics2D对象g2d,Line2D对象line,绘制对象line的代码是( )A.g2d.draw(1ine) B.g2d.drawLine(1ine)C.1ine.draw() D.1ine.drawLine()8.设Thread对象thd的优先级为7,thd又创建了另一个Thread对象chd,如果未对chd 的优先级进行修改,则chd的优先级为 ( )A.1 B. 5C.7 D. 109.在以下供选择的操作中, File对象能够提供的操作是 ( )A.删除文件 B.读写文件C .打开文件 D.查询文件属性10.在编写访问数据库的Java 程序时,Statement 对象的作用是 ( )A .建立新数据库连接B.设置查询命令 C .创建SQL 语句对象 D.存储查询结果二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。
04747JAVA语言程序设计(一)一、单选题1、下列字符组合不能作为Java整型常量的是( A )A.078B.0x3ACBC.5000D.0x3ABC2、以下程序代码的输出结果是( B )int x = 10;while (x > 7){ System.out.print("*"); x--; }A.**B.***C.*D.****3、设类U声明,及对象u和v的定义如下:class U{int x, int y;U(int a, int b){x= a; y = b;}void copy(U a){ x = a.x; y = a.y;}}U u = new U(1, 2), v = new U(2, 3);在以下供选择的代码中,可能引起系统回收内存的是( B )A.u.x=v.y;u.y=v.xB.u=vC.u.copyD.v.copy(u)4、设有以下代码:String s1="123";String s2="123";String s3=new String("123");则表达式s1==s2和s1==s3的值分别是( C )A.true,trueB.false,falseC.true,falseD.false,true5、以下是关于Java语言关键字的叙述,其中正确的是( C )A.关键字可以用来描述类的成员类型,但是不能描述普通变量B.关键字由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字组成C.关键字不可以用作变量、方法、类或标号的标识符D.break和main都是Java语言的关键字6、以下程序代码的输出结果是( B )int x=5,y=7,u=9,v=6;System.out.println(x>y ? x+2: u>v ? u-3:v+2);A.8B.6C.7D.true7、Java语言中,在类定义时用final关键字修饰,是指这个类( A )A.不能被继承B.在子类的方法中不能被调用C.能被别的程序自由调用D.不能被子类的方法覆盖8、若有定义如下 class dog { float x; static int y;…},则下列说法中正确的是( D )。
表达式21.请写出表示year年是闰年的Java表达式。
闰年的条件是:每4年一个闰年,但每100年少一个闰年,每400年又增加一个闰年。
(year%4==0 && year%100!=0 || (year%400==0)21.请写出表示以下条件的表达式:变量x的值为1与变量y的值为2,有且只有一个成立。
(2)x==1 && y!=2 || y==2 && x!=121. 请写出表示条件“y右移一位后大于3并且y不等于0”成立的Java表达式。
y>>1>3 && y!=0If语句21.请写出一段if语句,判断一个整数n是否为偶数。
如果是偶数,输出“Yes.”;否则,输出“No.”。
if(n%2==0)System.out.println(“Yes.”);elseSystem.out.println(“No.”);21.请写一个if语句,判断整数n是否同时满足“被3除余2,被7除余1”的条件,满足时输出“OK”,否则输出“NO”。
if(n%3==2&&n%7==1)System.out.print(“OK”);elseSystem.out.print(“NO”);21.请写出实现计算y=|x|的if语句。
(2)(201810)if(x>=0)y=x;elsey=x*(-1);While语句21.请写出以下程序段的执行结果。
int c=0,d,n=3758;while(n>0){if((d=n%l0)>c)c=d;n=n/10;}System.out.println("结果="+c);结果=821.以下语句有一处错误,请改正,然后写出此循环语句的循环次数。
int i=7;do{System.out.println(i--); i--;}while(i!=0);//while(i>0); 循环4次21.请写出下面程序段的执行结果。
2016年10月高等教育自学考试全国统一命题考试
Java语言程序设计(一) 试卷
(课程代码 04747)
本试卷共9页,满分l00分,考试时间l50分钟。
考生答题注意事项:
1.本卷所有试题必须在答题卡上作答。答在试卷上无效,试卷空白处和背面均可作草稿纸。
2.第一部分为选择题。必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑。
3.第二部分为非选择题。必须注明大、小题号,使用0.5毫米黑色字迹签字笔作答。
4.合理安排答题空间,超出答题区域无效。
第一部分 选择题(共l0分)
一、单项选择题(本大题共l0小题,每小题l分,共10分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题卡”的相应代码涂黑。错涂、多
涂或未涂均无分。淘宝店铺 自考达人 V信1297755429
1.在下述字符串中,不是Java余言关键字的是
A.int B.static C.java D.try
2.要作下列数据类型转换,需进行强制类型转换才能实现的是
A.从int到char B.从int到 long
C.从lloat到 double D.从byte到 int
3.在以下供选择的概念中,属于面向对象语言重要概念或机制的是
A.方法 B.模块 C.线程 D.继承
4.在下述Java程序代码中,能正确创建数组的是
A.int myA[5]={1,2,3,4,5); B.int myA[]=new int(5);
C.int myA[];myA[]=new int[5]; D.int[]myA={1,2,3,4,5,6};
5.某Java程序的类A需要利用Swin9创建无边框窗口,则A需要继承的类是
A.JWindow B.JApplet C.JFrame D.JDialog
6.在以下供选的鼠标事件中,MouseMotionListener接口能处理的是
A.按下鼠标键 B.拖动鼠标 C.鼠标进入 D.鼠标松开
7.在以下代码中,能正确创建Font对象的是
A.new Font(″宋体″,斜体,20); B.new Font(″楷体″,20,正常);
C.new Font(″楷体″,Font.BOLD,l 8); D.new Font(″楷体″,1 8,Font.BOLD);
8.某线程正处于运行状态,则在以下选项中,不可能是它的后继状态的是
A.就绪状态 B.新建状态
C.阻塞状态 D.死亡状态
9.某Java程序用类J来实现打开和保存文件对话框。当对话框的返回
值是J.APPROVE_OPTION时,程序进一步的工作是
A.用方法getName()取得文件名称 B.用方法getPathO()取得文件路径
C.用方法getFile()取得文件内容 D.用方法getSelectedFile()取得文件对象
10.Java语言实现C/S模式时,需要使用网络套接字,套接字的内容包括
A.IP地址+端口号 B.IP地址+监控线程名
C.监控线程名+端口号 D.IP地址+监控线程名+端口号
第二部分 非选择题(共90分)
二、填空题(本大题共l0小题,每空2分,共20分)
11.一个Java小应用程序必须定义成一个子类,它的超类是______。
12.在Java语言中,左移运算符是______。
13.类A的成员变量x的类型是类B的,则类A和类B之间的关系是______。
14.以下代码:
的输出结果是_______。
15.在JFrame子类的构造方法中,代码getContentPane0的作用是_______。
16.用JScrollBar创建一个垂直滚动条对象时,需要指定的常量是_______。
17.在异或模式下绘图时,实际绘制的颜色是由3种颜色作特定的运算确定的:当前正要绘
制的颜色、原先绘制的颜色以及_______。
18.处于运行状态的线程执行yield()方法,该线程将进入_______状态。
19.在Java语言中,客户端使用的套接字类是_______。
20.在Java语言中,DriverManager类的作用是加载驱动程序和_______。
三、简答题(本大题共6小题,每小题3分,共l8分)
21.已知整型变量n,当n的值为0时,输出“正常”,否则输出“异常”。请写出使用switch
语句实现此功能的代码。
22.请写出在类、方法、变量之前加上修饰字final的作用。
23.请列举出能产生ActionEvent事件类型的3种组件。
24.某程序用以下代码弹出一个对话框:
如果程序中anwser的值等于CLOSED_OPTION,请写出用户对该对话框的操作内容。
25.请写出用矩形类Rectangle2D创建对象r的代码,对象r的左上角坐标是(20,30),宽是50,高是70。
26.URL对象的格式是:>,请写出
其中HOSTNAME的意义。
四、程序填空题(本大题共5小题,每空2分,共20分)
27.方法void moveZeroFront(int a[])的功能是将数组中的所有值为0的元素都移到数组的前端,而把非0元素
放于所有0的后面。
提示:顺序考察数组元素,当发现是非0时,就让该数留在原来位置,当发现是0时,
就与前面的第一个非0数交换。变量zer0表示移动过程中遇到的0的个数。
28.这里给出的是一个播放幻灯片小应用程序的部分代码。设幻灯片已由小应用程序的init()方法装入内存,并存
放于mylmage数组中。currentlmage为要显示的幻灯片序号。
29.类ShareData用于管理多个线程共享数据data。一些线程要减少data,另一些线程要增加data。出于data
不可以是负值,修改data的方法对这些线程来说不仅要互斥,还要同步。类提供一个方法modiData0供修改data
的线程调用,该方法在data修改结束后,还应通知其它等待进入这个方法的线程。
30.方法void sumByLine(String f)的功能是为已知文件f创建缓冲式输入流,然后从文件逐行输入整数,求各行
整数的和,并输出。
五、程序分析题(本大题共5小题,每小题4分,共20分)
32.闲读下列程序,请写出该程序的运行结果。
33.阅读下列程序,请写出该程序的运行结果。
34.阅读下列程序,请回答以下问题:
(1)在文本框中输入-18,在文本区中会显示多少行整数,各行有几个数?
(2)在文本框中输入0,界面又会发生什么?
35.阅读下列程序,请回答以下问题:
(1)应用程序窗口中,有哪几个组件?
(2)当拖动滚动条滑块时,界面会有什么变化?
36.阅读下列程序,请回答以下问题:
(1)程序是如何实现画面动态显示的?
(2)创建DrawPane对象时,第3个参数的值增大或减小,对画面的显示有何影响?
六、程序设计题(本大题共2小题,每小题6分,共l2分)
37.请编写方法int countOddNum(int[]a),该方法的功能是求已知数组a中奇数的个数。要求根据方法的功能写
出方法的代码。
38.类MenuWindow对象构建如下图所示的框架窗口,窗口有一个菜单条,有“学习”和“工作”两个菜单,其中
“学习”菜单含“Java程序设计”菜单项;“工作”菜单含“项目设计”菜单项。窗口只有一个文本框,目的是用
于显示菜单选择的结果。
注:以下是要求你编写的类MenuWindow的构造方法的部分代码。