版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2025年JAVA语言程序设计-国家开放大学电大学习网形考作业题目答案说明:本答案适配国家开放大学电大学习网《JAVA语言程序设计》课程4个阶段形考作业,涵盖单选、填空、判断、简答及编程/综合题,严格贴合课程考核大纲。若学习网当期题目存在细微调整,需以官方发布的正式题目为准;所有编程题均经编译验证,可直接运行。形考作业一(基础语法阶段)一、单项选择题(每题2.5分,共75分)提供给上层应用进行开发和构建应用的基础类库的是()
A.JVMB.Java应用C.JRED.JDK
答案:D(解析:JDK包含JRE和开发工具,提供基础类库支持应用开发)Java程序在编译之后,以()方式被Java虚拟机执行
A.文本B.字节码C.源代码D.二进制
答案:B(解析:.java源文件编译生成.class字节码文件,JVM执行字节码)下列哪个移动开发平台使用Java语言作为官方推荐开发语言()
A.AndroidB.WindowsC.iOSD.Symbian
答案:A(解析:Android平台官方推荐使用Java和Kotlin开发)Java语言中用来编译Java程序的命令是()
A.javac.exeB.javap.exeC.javaw.exeD.java.exe
答案:A(解析:javac.exe是编译命令,java.exe是运行命令)下列哪个是合法的标识符()
A.{printOut}B.modityPriceC.23667D.num_green
答案:D(解析:标识符由字母、数字、下划线、$组成,不能以数字开头,不能含特殊符号)下列哪个不是保留字()
A.privateB.byteC.num_blueD.return
答案:C(解析:private、byte、return均为Java保留字,num_blue是合法标识符)关于float类型floatf=5.2的说法,正确的是()
A.错误,精度不够,需要强制类型转换B.正确C.错误,可以考虑使用int类型D.错误,变量声明错误
答案:A(解析:5.2默认是double类型,赋值给float需强制转换:floatf=(float)5.2或floatf=5.2f)下列代码执行的结果中m和n的值分别为()
intm=50,n=160;inttmp=m;m=n;n=tmp;
A.50/160B.160/50C.50/50D.160/160
答案:B(解析:通过临时变量tmp交换m和n的值)表达式29/3*3的值是()
A.27B.29C.27.999D.27.0
答案:A(解析:整数除法29/3结果为9,9*3=27)执行下列语句:intm=15;intval=m--;val的值是()
A.15B.14C.16D.13
答案:A(解析:m--是后置自减,先赋值再自减)执行下列语句:intm=15;intval=-m;val的值是()
A.13B.14C.16D.-15
答案:D(解析:-m表示取m的相反数)编译运行以下代码段后,关于输出结果正确的是()
publicclassConditional{
publicstaticvoidmain(Stringargs[]){
intx=4;
System.out.println("valueis"+((x==4)?99.9:9));
}}
A.valueis9B.valueis9.0C.编译错误D.valueis99.9
答案:B(解析:三元运算符中99.9是double类型,9会自动提升为double类型)下列代码的执行结果是()
publicclassExam1{
publicstaticvoidmain(String[]args){
doublevar1=333;
doublevar2=2344;
Stringstr=var1+"/"+var2+"=";
var2=var1/var2;
str=str+var2;
System.out.println(str);
}}
A.0.142B.333.0/2344.0=0.142C.333.0/2344.0=0.14206484641638226D.0.142064846
答案:C(解析:double类型运算保留完整精度,字符串拼接会保留数值原始格式)下列代码段运行结果为()
intnum=15;
if(num%2==0){
System.out.println(num+"is偶数");
}else{
System.out.println(num+"is奇数");
}
A.2B.15is偶数C.15is奇数D.15
答案:C(解析:15是奇数,num%2结果为1,执行else分支)下列代码段中,m的值为2时会输出()
publicclassTest1{
publicstaticvoidmain(Stringargs[]){
intm=2;
switch(m){
case0:
System.out.println("case0");
break;
case1:
System.out.println("case1");
break;
case2:break;
default:System.out.println("default");
}}}
A.无输出B.case0C.case1D.default
答案:A(解析:case2后有break语句,执行后直接跳出switch,无输出)下列循环语句实现先执行后判断循环条件的是()
A.for循环B.while循环C.do-while循环D.以上都不是
答案:C(解析:do-while循环先执行循环体,再判断条件)下列关于for循环的说法,错误的是()
A.for循环的初始化表达式可以省略B.for循环的条件表达式可以省略C.for循环的更新表达式可以省略D.for循环的三个表达式都不能省略
答案:D(解析:for循环的三个表达式均可省略,若条件表达式省略则为无限循环)执行下列代码段后,i的值是()
inti=0;
while(i<5){
i++;
}
A.4B.5C.6D.0
答案:B(解析:i从0开始,每次循环自增1,当i=5时不满足条件,退出循环)下列代码段的执行结果是()
for(inti=1;i<=5;i++){
if(i%2==0)
continue;
System.out.print(i+"");
}
A.12345B.135C.24D.无输出
答案:B(解析:continue跳过偶数,只打印奇数)下列关于数组的说法,正确的是()
A.数组的长度可以动态改变B.数组的索引从1开始C.数组元素的类型必须相同D.数组可以存储不同类型的数据
答案:C(解析:数组长度固定,索引从0开始,元素类型必须一致)定义一个int类型数组,正确的是()
A.int[]arr;B.intarr[];C.intarr[5];D.A和B都正确
答案:D(解析:Java中两种数组声明方式均合法,C选项错误在于不能在声明时指定长度)执行下列代码段后,数组arr的长度是()
int[]arr=newint[5];
arr[0]=1;arr[1]=2;
A.2B.5C.3D.0
答案:B(解析:数组长度在创建时确定,为5,与元素是否赋值无关)下列代码段的执行结果是()
int[]arr={1,2,3,4,5};
for(inti=0;i<arr.length;i++){
if(arr[i]==3)
break;
System.out.print(arr[i]+"");
}
A.12B.123C.12345D.无输出
答案:A(解析:遇到arr[i]==3时执行break,跳出循环)下列关于方法的说法,错误的是()
A.方法可以有返回值B.方法可以没有返回值C.方法的参数可以有多个D.方法的返回值类型必须与return语句的值类型一致
答案:D(解析:若方法返回值类型为void,无return语句;若有返回值,return值类型需与声明类型一致或兼容)定义一个无返回值、无参数的方法,正确的是()
A.publicvoidmethod(){}B.publicvoidmethod()C.publicmethod(){}D.publicintmethod(){}
答案:A(解析:无返回值用void声明,方法体必须用{}包裹)下列关于方法重载的说法,正确的是()
A.方法名必须相同B.参数列表必须相同C.返回值类型必须相同D.访问修饰符必须相同
答案:A(解析:方法重载要求方法名相同,参数列表不同,与返回值类型、访问修饰符无关)执行下列代码段后,输出结果是()
publicclassTestMethod{
publicstaticintadd(inta,intb){
returna+b;
}
publicstaticvoidmain(String[]args){
System.out.println(add(3,5));
}}
A.3B.5C.8D.无输出
答案:C(解析:add方法返回3+5的结果8)下列关于静态方法的说法,正确的是()
A.静态方法属于对象B.静态方法可以访问非静态成员变量C.静态方法可以直接通过类名调用D.静态方法必须通过对象调用
答案:C(解析:静态方法属于类,可直接通过类名调用,不能访问非静态成员)二、填空题(每空2分,共20分)Java程序的运行环境简称为JRE,它包含Java虚拟机和核心类库。Java语言具有面向对象、平台无关、健壮性、安全性等核心特性。在Java中,基本数据类型分为整数类型、浮点类型、字符类型和布尔类型四大类。char类型的数据占用2个字节,其取值范围是0~65535。数组的length属性用于获取数组的长度。方法的参数列表中,多个参数之间用逗号分隔。静态方法是用static关键字修饰的方法。三、编程题(5分)编写一个Java程序,计算1至100之间所有整数的和,并在控制台输出结果。
答案:
publicclassSum{
publicstaticvoidmain(Stringargs[]){
intsum=0;
//循环遍历1到100的整数
for(inti=1;i<=100;i++){
sum+=i;//累加求和
}
System.out.println("1至100之间整数的和为:"+sum);
}
}运行结果:1至100之间整数的和为:5050下列关于类和对象的说法,正确的是()
A.类是对象的实例B.对象是类的模板C.一个类可以创建多个对象D.类和对象没有关系
答案:C(解析:类是对象的模板,对象是类的实例,一个类可创建多个对象)下列关于构造方法的说法,错误的是()
A.构造方法的名称必须与类名相同B.构造方法没有返回值C.构造方法可以重载D.构造方法必须显式定义
答案:D(解析:若未显式定义构造方法,编译器会自动生成默认无参构造方法)Java中,访问控制修饰符不包括()
A.publicB.privateC.protectedD.default
答案:D(解析:default是默认访问权限,无对应关键字,其他三个是访问控制修饰符)下列关于private修饰符的说法,正确的是()
A.可以被同一包中的类访问B.可以被不同包中的子类访问C.只能被当前类访问D.可以被所有类访问
答案:C(解析:private修饰的成员只能在当前类内部访问)Java中,实现类的继承使用的关键字是()
A.implementsB.extendsC.superD.this
答案:B(解析:extends用于类继承,implements用于实现接口)下列关于继承的说法,错误的是()
A.Java支持单继承B.Java支持多继承C.子类可以继承父类的非private成员D.子类可以重写父类的方法
答案:B(解析:Java支持单继承,多实现接口)下列用于声明抽象方法的关键字是()
A.finalB.staticC.abstractD.implements
答案:C(解析:abstract关键字用于声明抽象方法和抽象类)内部类不可以声明在()
A.类的构造方法内部B.类的内部C.类的方法内部D.类的外部
答案:D(解析:内部类声明在类内部,包括构造方法、方法内部等,类外部声明的是外部类)下列修饰符修饰的变量是被同一个类生成的对象共享的是()
A.privateB.publicC.staticD.final
答案:C(解析:static修饰的静态变量属于类,被所有对象共享)Java语言中用来抛出异常的关键字是()
A.tryB.throwC.finallyD.catch
答案:B(解析:throw用于手动抛出异常对象,throws用于声明方法可能抛出的异常)下列哪个类是所有异常类的父类()
A.ErrorB.ExceptionC.IOExceptionD.Throwable
答案:B(解析:Exception是所有异常类的父类,Throwable是Error和Exception的父类)自定义异常类时,可以继承的类是()
A.ErrorB.AppletC.Exception及其子类D.AssertionError
答案:C(解析:自定义异常需继承Exception或其子类,继承Error的是错误类,非异常)使用catch(Exceptione)的优点是()
A.只捕获个别类型的异常B.捕获try语句块中产生的所有类型异常C.执行一些程序D.忽略一些异常
答案:B(解析:Exception是所有异常的父类,可捕获try块中产生的所有异常)Java语言中,一定会执行完的代码是()
A.throwB.tryC.finallyD.catch
答案:C(解析:finally块中的代码无论是否发生异常都会执行,除非虚拟机退出)下列哪个属于受控异常()
A.ErrorB.IOExceptionC.NullPointerExceptionD.ClassCastException
答案:B(解析:受控异常需显式捕获或声明抛出,IOException是受控异常,其他选项是非受控异常)下列哪个异常属于非受控异常()
A.SocketExceptionB.FileNotFoundExceptionC.RuntimeExceptionD.SQLException
答案:C(解析:RuntimeException及其子类是非受控异常,无需显式处理)下列关于异常的说法正确的是()
A.异常声明可以声明多个异常,中间用;分开B.抛出异常是指程序运行中出现异常情况时发生中断的现象C.抛出异常是异常处理的起点D.使用关键字catch声明可能发生的异常
答案:C(解析:A选项多个异常用逗号分隔;B选项是异常发生的定义,非抛出异常;D选项用throws声明异常)如下程序代码运行的结果是()
publicclassFoo{
publicstaticvoidmain(String[]args){
try{
return;
}finally{
System.out.println("Finally");
}
}
}
A.正常运行但没有任何输出B.运行时抛出异常C.FinallyD.编译失败
答案:C(解析:即使try块中有return语句,finally块中的代码仍会执行)下列关于接口的说法,正确的是()
A.接口可以包含非抽象方法B.一个类可以实现多个接口C.接口可以被实例化D.接口之间不能继承
答案:B(解析:接口中的方法默认是抽象方法;接口不能实例化;接口之间可以继承)在子类中重写父类方法时,方法的()必须与父类完全一致
A.名称、参数列表、返回值类型B.名称、参数列表、访问修饰符C.名称、返回值类型、访问修饰符D.参数列表、返回值类型、访问修饰符
答案:A(解析:方法重写要求名称、参数列表、返回值类型完全一致,访问修饰符不能低于父类)二、简答题(每题10分,共20分)简述面向对象的三大特征及各自的作用。
答案:面向对象的三大特征是封装、继承、多态。
①封装:将类的属性和方法隐藏在类内部,通过访问控制修饰符限制外部直接访问,仅提供公开的getter/setter方法供外部操作。作用:隐藏内部实现细节,保护数据安全性,提高代码可维护性。
②继承:子类继承父类的属性和方法,实现代码复用。作用:减少代码冗余,提高开发效率,便于功能扩展。
③多态:同一方法名在不同类中有不同实现,或同一接口被不同类实现时有不同表现。作用:提高代码灵活性和扩展性,简化代码逻辑。简述try-catch-finally异常处理结构的执行流程。
答案:执行流程如下:
①执行try块中的代码,若未发生异常,则跳过catch块,直接执行finally块中的代码;
②若try块中发生异常,则立即终止try块的执行,根据异常类型匹配对应的catch块并执行;
③无论try块中是否发生异常,finally块中的代码都会执行(除非虚拟机退出);
④若catch块中处理完异常,程序继续执行finally块之后的代码;若未处理,则异常向上层传递。三、编程题(20分)定义一个“商品”类(Commodity),包含商品名称(name)、单价(price)两个私有属性,提供无参和有参构造方法,提供getter和setter方法,定义一个“showInfo()”方法输出商品信息;定义“特价商品”类(SpecialCommodity)继承Commodity类,新增折扣(discount)私有属性,重写showInfo()方法输出特价商品信息(包含名称、单价、折扣后价格)。编写测试类创建SpecialCommodity对象并调用showInfo()方法。
答案:
//商品类
classCommodity{
privateStringname;
privatedoubleprice;
//无参构造方法
publicCommodity(){}
//有参构造方法
publicCommodity(Stringname,doubleprice){
=name;
this.price=price;
}
//getter和setter方法
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
=name;
}
publicdoublegetPrice(){
returnprice;
}
publicvoidsetPrice(doubleprice){
this.price=price;
}
//输出商品信息
publicvoidshowInfo(){
System.out.println("商品名称:"+name+",单价:"+price+"元");
}
}
//特价商品类,继承商品类
classSpecialCommodityextendsCommodity{
privatedoublediscount;//折扣(如0.7表示7折)
//有参构造方法
publicSpecialCommodity(Stringname,doubleprice,doublediscount){
super(name,price);//调用父类有参构造方法
this.discount=discount;
}
//getter和setter方法
publicdoublegetDiscount(){
returndiscount;
}
publicvoidsetDiscount(doublediscount){
this.discount=discount;
}
//重写showInfo方法,输出特价商品信息
@Override
publicvoidshowInfo(){
doublespecialPrice=getPrice()*discount;
System.out.println("特价商品名称:"+getName()+",原价:"+getPrice()+"元,折扣:"+discount+",折扣后价格:"+specialPrice+"元");
}
}
//测试类
publicclassTestCommodity{
publicstaticvoidmain(String[]args){
//创建特价商品对象(啤酒,原价10元,7折)
SpecialCommoditybeer=newSpecialCommodity("啤酒",10.0,0.7);
beer.showInfo();
}
}运行结果:特价商品名称:啤酒,原价:10.0元,折扣:0.7,折扣后价格:7.0元下列关于String类的说法,错误的是()
A.String类的对象是不可变的B.String类的equals()方法用于比较字符串内容C.String类的concat()方法用于追加字符串D.String类的对象可以被修改
答案:D(解析:String类的对象是不可变的,修改时会创建新对象)下列方法中,不属于Math类的静态方法是()
A.abs()B.toString()C.max()D.sqrt()
答案:B(解析:toString()是Object类的方法,Math类的方法均为静态方法)下列关于StringBuffer类的说法,正确的是()
A.StringBuffer类的对象是不可变的B.StringBuffer类的append()方法用于追加字符串C.StringBuffer类的效率低于String类D.StringBuffer类不支持字符串修改
答案:B(解析:StringBuffer类的对象是可变的,append()方法用于追加字符串,效率高于String类)下列关于数组的说法,错误的是()
A.数组可以存储基本数据类型B.数组可以存储引用数据类型C.数组的长度可以动态改变D.数组的索引从0开始
答案:C(解析:数组长度在创建时确定,无法动态改变)下列关于ArrayList的说法,正确的是()
A.ArrayList的长度是固定的B.ArrayList可以存储不同类型的数据C.ArrayList的add()方法用于添加元素D.ArrayList不支持删除元素
答案:C(解析:ArrayList是动态数组,长度可动态改变,只能存储引用数据类型,add()方法添加元素,remove()方法删除元素)Java中,创建线程的方式不包括()
A.继承Thread类B.实现Runnable接口C.实现Callable接口D.继承Runnable类
答案:D(解析:Runnable是接口,不能被继承,可通过实现Runnable接口创建线程)下列关于Thread类的run()方法的说法,正确的是()
A.run()方法是线程的入口方法B.可以直接调用run()方法启动线程C.线程启动后会立即执行run()方法D.一个线程可以多次调用run()方法
答案:A(解析:run()方法是线程入口方法,需通过start()方法启动线程,线程启动后进入就绪状态,等待CPU调度,一个线程只能调用一次start()方法)下列用于实现线程同步的关键字是()
A.synchronizedB.staticC.finalD.abstract
答案:A(解析:synchronized关键字用于实现线程同步,解决线程安全问题)下列关于线程sleep()方法的说法,正确的是()
A.sleep()方法会释放锁资源B.sleep()方法会暂停线程执行C.sleep()方法用于线程间通信D.sleep()方法抛出的异常不需要处理
答案:B(解析:sleep()方法暂停线程执行,不会释放锁,需要处理InterruptedException异常,wait()方法用于线程间通信)下列关于IO流的说法,正确的是()
A.字节流可以处理文本文件和二进制文件B.字符流可以处理二进制文件C.字节流的顶层抽象类是Reader和WriterD.字符流的顶层抽象类是InputStream和OutputStream
答案:A(解析:字节流可处理所有类型文件,字符流适合处理文本文件;字节流顶层抽象类是InputStream和OutputStream,字符流是Reader和Writer)下列用于读取字节文件的类是()
A.FileReaderB.FileWriterC.FileInputStreamD.FileOutputStream
答案:C(解析:FileInputStream用于读取字节文件,FileOutputStream用于写入字节文件,FileReader和FileWriter是字符流类)下列关于File类的说法,正确的是()
A.File类可以创建文件内容B.File类的exists()方法用于判断文件是否存在C.File类的delete()方法只能删除文件D.File类的mkdir()方法可以创建多级目录
答案:B(解析:File类只能操作文件元数据,不能创建文件内容;delete()方法可删除空目录;mkdir()方法创建单级目录,mkdirs()创建多级目录)下列关于序列化的说法,正确的是()
A.序列化是将对象转换为字节流的过程B.所有对象都可以被序列化C.序列化不需要实现Serializable接口D.反序列化是将字节流转换为对象的过程
答案:A(解析:序列化是对象转字节流,反序列化是字节流转对象;只有实现Serializable接口的对象才能被序列化)下列关于ObjectInputStream类的说法,正确的是()
A.用于写入序列化对象B.用于读取序列化对象C.继承自InputStream类D.不需要处理异常
答案:B(解析:ObjectInputStream用于读取序列化对象,ObjectOutputStream用于写入;需要处理IOException和ClassNotFoundException异常)下列关于多线程的说法,错误的是()
A.多线程可以提高程序的执行效率B.多线程会引发线程安全问题C.线程安全问题可以通过同步机制解决D.多线程的执行顺序是固定的
答案:D(解析:多线程的执行顺序由CPU调度决定,是不确定的)下列关于线程优先级的说法,正确的是()
A.线程优先级越高,越先执行B.线程优先级的范围是1~10C.所有线程的默认优先级都是5D.线程优先级可以随意设置
答案:B(解析:线程优先级范围1~10,默认优先级5;优先级越高获得CPU调度的机会越多,并非一定先执行)下列关于try-with-resources语句的说法,正确的是()
A.用于自动关闭资源B.不需要处理异常C.只能关闭IO流资源D.资源不需要实现AutoCloseable接口
答案:A(解析:try-with-resources用于自动关闭实现AutoCloseable接口的资源,仍需处理异常,可关闭多种资源)下列关于BufferedReader类的说法,正确的是()
A.用于读取字节流B.提供缓冲功能,提高读取效率C.继承自FileReader类D.只能读取字符文件
答案:B(解析:BufferedReader是字符缓冲流,提供缓冲功能,提高读取效率,继承自Reader类,用于读取字符流)下列关于线程join()方法的说法,正确的是()
A.用于暂停线程执行B.用于等待其他线程执行完毕C.用于唤醒线程D.用于终止线程
答案:B(解析:join()方法让当前线程等待调用join()方法的线程执行完毕后再继续执行)下列关于异常处理的说法,正确的是()
A.非受控异常必须显式处理B.受控异常可以不处理C.一个try块可以有多个catch块D.finally块中的代码可以省略
答案:C(解析:非受控异常可不用显式处理,受控异常必须处理;一个try块可对应多个catch块处理不同类型异常;finally块可省略)二、填空题(每空2分,共20分)Java中,所有类的根类是Object类。String类的length()方法用于获取字符串的长度,equals()方法用于比较字符串内容是否相等。Math类中,PI常量表示圆周率,max()方法用于获取两个数中的最大值。创建线程后,通过调用线程对象的start()方法启动线程,线程的核心执行逻辑写在run()方法中。字节流中,InputStream类用于读取数据,OutputStream类用于写入数据。线程间通信的常用方法有wait()、notify()和notifyAll()。三、编程题(40分)编写一个Java程序,读取指定文本文件(如test.txt)的内容,统计文件中单词的个数(单词以空格分隔),并将统计结果写入另一个文本文件(result.txt)。
答案:
importjava.io.*;
publicclassWordCount{
publicstaticvoidmain(String[]args){
//定义输入文件和输出文件路径
StringinputPath="test.txt";
StringoutputPath="result.txt";
//声明字符流对象
BufferedReaderbr=null;
BufferedWriterbw=null;
try{
//创建字符输入流和输出流
br=newBufferedReader(newFileReader(inputPath));
bw=newBufferedWriter(newFileWriter(outputPath));
Stringline;
intwordCount=0;
//读取文件内容,逐行统计单词个数
while((line=br.readLine())!=null){
//按空格分割单词,过滤空字符串
String[]words=line.split("");
for(Stringword:words){
if(!word.isEmpty()){
wordCount++;
}
}
}
//将统计结果写入输出文件
bw.write("文件中单词的个数为:"+wordCount);
System.out.println("统计完成,结果已写入result.txt");
}catch(IOExceptione){
e.printStackTrace();
}finally{
//关闭流资源
try{
if(bw!=null){
bw.close();
}
if(br!=null){
br.close();
}
}catch(IOExceptione){
e.printStackTrace();
}
}
}
}编写一个Java程序,创建两个线程,分别打印1~20的奇数和偶数,要求两个线程交替执行(使用同步机制保证线程安全)。
答案:
//共享资源类,用于打印数字
classNumberPrinter{
privateintnumber=1;
privatestaticfinalintMAX=20;
//打印奇数的方法
publicsynchronizedvoidprintOdd(){
while(number<=MAX){
if(number%2!=0){//是奇数
System.out.println(Thread.currentThread().getName()+":"+number);
number++;
notify();//唤醒打印偶数的线程
}else{
try{
wait();//等待,释放锁
}catch(InterruptedExceptione){
e.printStackTrace();
}
}
}
}
//打印偶数的方法
publicsynchronizedvoidprintEven(){
while(number<=MAX){
if(number%2==0){//是偶数
System.out.println(Thread.currentThread().getName()+":"+number);
number++;
notify();//唤醒打印奇数的线程
}else{
try{
wait();//等待,释放锁
}catch(InterruptedExceptione){
e.printStackTrace();
}
}
}
}
}
//奇数线程
classOddThreadimplementsRunnable{
privateNumberPrinterprinter;
publicOddThread(NumberPrinterprinter){
this.printer=printer;
}
@Override
publicvoidrun(){
printer.printOdd();
}
}
//偶数线程
classEvenThreadimplementsRunnable{
privateNumberPrinterprinter;
publicEvenThread(NumberPrinterprinter){
this.printer=printer;
}
@Override
publicvoidrun(){
printer.printEven();
}
}
//测试类
publicclassTestThread{
publicstaticvoidmain(String[]args){
NumberPrinterprinter=newNumberPrinter();
ThreadoddThread=newThread(newOddThread(printer),"奇数线程");
ThreadevenThread=newThread(newEvenThread(printer),"偶数线程");
oddThread.start();
evenThread.start();
}
}运行结果示例:
奇数线程:1
偶数线程:2
奇数线程:3
偶数线程:4
...(依次交替打印至20)下列不属于Swing组件的是()
A.JFrameB.PanelC.JButtonD.JTextField
答案:B(解析:Panel是AWT组件,JPanel是Swing组件)下列关于JFrame的说法,正确的是()
A.JFrame是Swing中的顶层容器B.JFrame的默认布局是FlowLayoutC.JFrame不需要设置大小D.JFrame不能添加组件
答案:A(解析
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江西吉安吉州区北门街道真君山社区招聘就业见习人员1人模拟笔试试题及答案解析
- 2026湖南长沙市达德中学公开招聘校聘教师考试备考题库及答案解析
- 2025吉林长春市德惠市大学生乡村医生专项计划招聘2人(1号)模拟笔试试题及答案解析
- 2025福建福州滨海实验学校临聘教师招聘1人(提供住宿还有食堂)备考考试试题及答案解析
- 深度解析(2026)《GBT 25995-2010精细陶瓷密度和显气孔率试验方法》
- 深度解析(2026)GBT 25934.3-2010高纯金化学分析方法 第3部分:乙醚萃取分离ICP-AES法 测定杂质元素的含量
- 2025山东德州临邑县人民医院招聘备案制工作人员15人备考考试题库及答案解析
- 2025江西省财通供应链金融集团有限公司第二批次社会招聘2人模拟笔试试题及答案解析
- 深度解析(2026)《GBT 25743-2010钢件深冷处理》
- 2025新疆青河县社保中心综柜岗位见习生招聘1人参考考试题库及答案解析
- 2024北京广播电视台招聘30人笔试备考题库及一套参考答案详解
- DBJT15-85-2011 工程质量安全监督数据标准
- 金蝶新员工培训大纲
- 西梅栽培技术课件
- 小学生有担当教育课件
- 《村级防疫员管理办法》
- 驾校消防安全责任制度
- 福禄贝尔教学课件
- 绿色建筑自评估报告参考样式
- 牙隐裂的诊断及治疗讲课件
- 涉密文件解密管理制度
评论
0/150
提交评论