java基础选择题--15

一、 选择

1.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的 ?

A ArrayList myList=new Object();

B List myList=new ArrayList();

C ArrayList myList=new List();

D List myList=new List();

2.paint()方法使用哪种类型的参数?

A Graphics

B Graphics2D

C String

D Color

3.指出正确的表达式 C

A byte=128;

B Boolean=null;

C long l=0xfffL;

D double=0.9239d;

4.指出下列程序运行的结果 B

public class Example{

String str=new String("good");

char[]ch={'a','b','c'};

public static void main(String args[]){

Example ex=new Example();

ex.change(ex.str,ex.ch);

System.out.print(ex.str+" and ");

Sytem.out.print(ex.ch);

}

public void change(String str,char ch[]){

str="test ok";

ch[0]='g';

}

}

A good and abc

B good and gbc

C test ok and abc

D test ok and gbc

5.运行下列程序, 会产生什么结果

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 程序会运行和启动

在Java中,当你想要一个类继承自Thread类,并且想要它作为线程运行,你只需要覆盖run()方法即可。但是,在你的代码中,你试图让X类同时继承Thread并实现Runnable接口,这是不允许的,因为Java不支持多重继承(除了接口的多重实现)。

6.要从文件" file.dat"文件中读出第10个字节到变量C中,下列哪个方法适合? A

A FileInputStream in=new FileInputStream("file.dat"); in.skip(9); int c=in.read();

B FileInputStream in=new FileInputStream("file.dat"); in.skip(10); int c=in.read();

C FileInputStream in=new FileInputStream("file.dat"); int c=in.read();

D RandomAccessFile in=new RandomAccessFile("file.dat"); in.skip(9); int c=in.readByte();

7.容器被重新设置大小后,哪种布局管理器的容器中的组件大小不随容器大小的变化而改变?B

A CardLayout

B FlowLayout

C BorderLayout

D GridLayout

8.给出下面代码:

public class Person{

static int arr[] = new int[10];

public static void main(String a[])

{

System.out.println(arr[1]);

}

}

那个语句是正确的? C

A 编译时将产生错误;

B 编译时正确,运行时将产生错误;

C 输出零;

D 输出空。

9.哪个关键字可以对对象加互斥锁? B

A transient

B synchronized

C serialize

D static

10.下列哪些语句关于内存回收的说明是正确的?

A 程序员必须创建一个线程来释放内存;

B 内存回收程序负责释放无用内存

C 内存回收程序允许程序员直接释放内存

D 内存回收程序可以在指定的时间释放内存对象

11.下列代码哪几行会出错: C

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 4

B line 6

C line 7//,第7行会导致编译错误,因为变量k在使用前没有初始化。要修复这个错误,你需要在声明k的同时给它一个初始值

D line 8

二、多项选择

1.执行下列代码后,哪个结论是正确的 String[] s=new String[10];B D

A s[10] 为 "";

B s[9] 为 null;

C s[0] 为 未定义

D s.length 为10

2.下面的表达式哪个是正确的?AE

A String s="你好";int i=3; s+=i;

B String s="你好";int i=3; if(i==s){ s+=i};

C String s="你好";int i=3; s=i+s;

D String s="你好";int i=3; s=i+;

E. String s=null; int i=(s!=null)&&(s.length>0)?s.length():0;

3.选出合理的标识符 AC

A _sys1_lll

B 2mail

C $change

D class

4.哪个布局管理器使用的是组件的最佳尺寸( preferred size)AE

A FlowLayout

B BorderLayout

C GridLayout

D CardLayout

E.GridBagLayout

5.下列哪个方法可用于创建一个可运行的类? AE

A public class X implements Runable{ public void run(){ ......} }

B public class X implements Thread{ public void run(){ ......} }??

C public class X implements Thread{ public int run(){ ......} }

D public class X implements Runable{ protected void run(){ ......} }

E.public class X implements Thread{ public void run(){ ......} }

A. public class X implements Runnable { public void run(){ ......} }
这是正确的。Runnable 是一个接口,它定义了一个没有返回值且不抛出任何受检查异常的方法 run()。一个类实现 Runnable 接口并覆盖 run() 方法后,可以创建一个该类的实例,并将其作为参数传递给 Thread 类的构造函数来创建一个新的线程。

C. public class X implements Thread { public int run(){ ......} }
这是不正确的。run() 方法在 Thread 类中的定义是返回 void 而不是 int。因此,你不能改变它的返回类型。

D. public class X implements Runnable { protected void run(){ ......} }
这是不正确的。虽然技术上你可以将 run() 方法的访问修饰符从 public 改为 protected,但通常我们不会这样做,因为当 Runnable 的实例被传递给 Thread 的构造函数时,Thread 类期望 run() 方法是 public 的。

E. public class X implements Thread { public void run(){ ......} }
这实际上是选项B的重复,但仍然是正确的。一个类可以通过继承 Thread 类并重写 run() 方法来创建一个新的线程。

所以,正确的选项是 A 和 E(但请注意,选项A中的 Runable 应更正为 Runnable)。

6.下面哪个方法可以在任何时候被任何线程调用? EFD

A notify()

B wait()

C notifyAll()

D sleep()

E.yield()

F.synchronized(this)

7.构造BufferedInputStream的合适参数是哪个? CA

A BufferedInputStream

B BufferedOutputStream

C FileInputStream

D FileOuterStream

E. File

8.下列说法正确的是 CB

A java.lang.Clonable是类

B java.lang.Runnable是接口

C Double对象在java.lang包中

D Double a=1.0是正确的java语句

A. java.lang.Cloneable是类
这是不正确的。java.lang.Cloneable 是一个标记接口(marker interface),它没有定义任何方法。它的主要目的是允许对象被克隆。当一个类实现了 Cloneable 接口并且覆盖了 Object 类的 clone() 方法时,该类的对象就可以被克隆了。但它本身并不是一个类。

B. java.lang.Runnable是接口
这是正确的。java.lang.Runnable 是一个接口,它定义了一个名为 run() 的方法,该方法没有参数且没有返回值。这个接口通常被用于定义那些计划由线程执行的任务。

C. Double对象在java.lang包中
这是正确的。Double 类是 Java 的基本数据类型 double 的包装类,它位于 java.lang 包中。这个包包含了 Java 编程语言的核心类。

D. Double a=1.0是正确的java语句
这是不正确的。在 Java 中,你不能直接将一个 double 类型的字面量赋值给一个 Double 类型的变量,除非进行了自动装箱(autoboxing)。但在这个例子中,1.0 是一个 double 类型的字面量,而不是一个 Double 对象。正确的赋值方式是使用 Double 类的静态方法 valueOf(),如 Double a = Double.valueOf(1.0);,或者让 Java 进行自动装箱,如 Double a = 1.0D;(注意 D 后缀表示这是一个 double 类型的字面量)。

所以,根据题目的要求,选项 B 和 C 是正确的。

9.指出正确的表达式 BA

A double a=1.0;

B Double a=new Double(1.0);

C byte a = 340;

D Byte a = 120;

10.定义一个类名为"MyClass.java"的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为:CD

A private class MyClass extends Object

B class MyClass extends Object

C public class MyClass

D public class MyClass extends Object

11.指出下列哪个方法与方法public void add(int a){}为合理的重载方法。CD

A public int add(int a)

B public void add(long a)  ?????

C public void add(int a,int b)

D public void add(float a)

在Java中,方法重载(Overloading)指的是在同一个类中,有多个方法具有相同的名称但参数列表不同(参数类型、参数个数或参数顺序不同)。

A. public int add(int a)
这个方法与给定的方法名称相同,但返回类型不同(void vs int)。在Java中,方法的返回类型不是重载的一部分,因此这个方法不能作为合理的重载方法。

B. public void add(long a)
这个方法与给定的方法名称相同,但参数类型不同(int vs long)。尽管参数类型不同,但在Java中,基本数据类型int和long之间不存在自动装箱/拆箱,所以它们被认为是不同的方法,因此这个方法是一个合理的重载方法。

C. public void add(int a, int b)
这个方法与给定的方法名称相同,但参数个数不同(一个参数 vs 两个参数)。因此,这是一个合理的重载方法。

D. public void add(float a)
这个方法与给定的方法名称相同,但参数类型不同(int vs float)。尽管int和float都是数值类型,但它们是不同的类型,因此这个方法也是一个合理的重载方法。

所以,根据Java的方法重载规则和题目给出的选项,合理的重载方法是C和D。

答案:C和D。

12.如果下列的方法能够正常运行,在控制台上将显示什么? ACD

public void example(){

try{

unsafe();

System.out.println("Test1");

}

catch(SafeException e)

{System.out.println("Test 2");}

finally{System.out.println("Test 3");}

System.out.println("Test 4");

}

A Test 1

B Test 2

C Test 3

D Test 4

13.下列哪些情况可以终止当前线程的运行? ABD

A 抛出一个例外时。

B 当该线程调用sleep()方法时。

C 当创建一个新线程时。 //
创建新线程只是为线程的执行提供了一个起点,并不会导致任何现有线程的终止。新线程会开始其生命周期,但现有线程会继续执行(除非它们自己决定终止)。所以,这个选项是不正确的。

D 当一个优先级高的线程进入就绪状态时。

答案

一、 选择题答案

选择第1题

B

选择第2题

A

选择第3题

C

选择第4题

B

选择第5题

A

选择第6题

A

选择第7题

B

选择第8题

C

选择第9题

B

选择第10题

B

选择第11题

C

二、多项选择题答案

多项选择第1题

BD多项选择第2题

AE

多项选择第3题

AC

多项选择第4题

AE

多项选择第5题

AE

多项选择第6题

DEF

多项选择第7题

AC

多项选择第8题

BC

多项选择第9题

AB

多项选择第10题

CD

多项选择第11题

CD

多项选择第12题

ACD

多项选择第13题

ABD

数组章节作业 1、将一个数组中的元素倒排过来,不能新开一个数组的临时存储空 间,只能在原数组上改。 2、写一个类用来模拟栈这种数据结构,要求底层 使用数组存储数据, 并给出相应的进栈和出栈的方法。MyStack int arr[]; int count;//栈中元素个数 public MyStack(int n){ arr = new int[n]; } boolean push(int num){ if(count==arr.length){} arr[count++]=num; } int pop(){ if(count==0){ return -1;} return arr[--count]; } 3、实现在一个数组指定位置添加元素和删除元素的功能。 1、数组容量问题? 2、添加元素前后数组中元素的变化 3、删除元素前后数组中元素的变化 面向对象章节作业 1,写一个类,名为Animal,该类有两个私有属性, name(代表动物的名字),和legs(代表动物的腿的条 数)。并提供个两构造方法,一个无参,默认给name 赋值为AAA,给legs赋值为4;另一个需要两个参数, 分别用这两个参数给私有属性赋值。该类还有两个重载的move()方法,其中一个无参,在屏幕上输出一行文字: XXX Moving!!(XXX为该动物的名字);另一个需要一个int参数n,在屏幕上输出n次 XXX Moving!! 2,写一个类Person,包含以下属性:String name; int age; boolean gender; Person partner。 为Person类写一个marry(Person p)方法,代表当前 对象和p结婚,如若可以结婚,则输出恭贺信息, 否则输出不能结婚原因。要求在另外一个类中写一 个主方法,来测试以上程序。(下列情况不能结婚: 结婚年龄,男<24,女<22;3,某一方已婚) 3,写一个类,名为Animal,该类有两个私有属性,name(代表动物的名字),和legs(代表动物的腿的条数);要求为两个私有属性提供public 的访问方法。并提个两构造方法,一个无参,默认给name赋值为AAA,给legs赋值为4;另一个需要两个参数,分别用这两个参数给私有属性赋值。要求在第一个构造方法调用第二个构造方法。该类还有两个重载的move()方法,其中一个无参,在屏幕上输出一行文字: XXX Moving!!(XXX为该动物的名字);另一个需要一个int参数n,在屏幕上输出n次 XXX Moving!! 4,写一个类Fish,继承自Animal类,并提供一个构造方法,该构造方法需要一个参数name,并给legs赋默认值0;该类还要求覆盖Animal类中的无参move()方法,要求输出:XXX Swimming!! 5,写一个类Bird,继承自Animal类,并提供一个构造方法,该构造方法需要一个参数name,并给legs赋默认值2;该类还要求覆盖Animal类中的无参move()方法,要求输出:XXX Flying!! 6,写一个类Zoo,要求分别生成若干个Animal,Fish和Bird。并调用他们的属性和方法。 7,写Shape类,要求如下: 1.int类型属性x和y,分别表示图形的中心点坐标 2.无参构造器 3.构造器,对x和y进行初始化 4.draw()方法,输出"Shape draw" 写Circle类,继承Shape类,要求如下 1.double类型属性r,表示圆的半径 2.无参构造器,将r初始化为1.0 3.构造器,对r进行初始化 4.构造器,对x、y、r进行初始化 5.draw()方法,输出"draw in circle"和x,y,r的值 写Rectangle类,继承Shape类,要求如下 1.double类型属性height和width,表示矩形的高和宽 2.无参构造器,将height和width都初始化为1.0 3.构造器,对height和width进行初始化 4.构造器,对x、y、height、width进行初始化 5.draw()方法,输出"draw in rectangle"和x,y,height,width的值 使用ShapeTest类测试以上代码。 8,某公司的雇员分为以下若干类: Employee:这是所有员工总的父类,属性:员工的姓名,员工的生日月份。方法:getSalary(int month) 根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励100元。 SalariedEmployee:Employee的子类,拿固定工资的员工。属性:月薪 HourlyEmployee:Employee的子类,按小时拿工资的员工,每月工作超出160小时的部分按照1.5倍工资发放。属性:每小时的工资、每月工作的小时数 SalesEmployee:Employee的子类,销售人员,工资由月销售额和提成率决定。属性:月销售额、提成率 BasedPlusSalesEmployee:SalesEmployee的子类,有固定底薪的销售人员,工资由底薪加上销售提成部分。属性:底薪。 写一个程序,把若干各种类型的员工放在一个Employee数组里,写一个函数,打印出某月每个员工的工资数额。注意:要求把每个类都做成完全封装,不允许非私有化属性。 容器类章节作业 1、写MyStack类,实现栈功能。在类中使用ArrayList保存数据。 2、使用TreeSet和Comparator,写TreeSetTest1 要求:对TreeSet中的元素"HashSet"、"ArrayList"、"TreeMap"、"HashMap"、"TreeSet"、"LinkedList"进行升序和倒序排列 3、使用TreeSet和Comparator,写TreeSetTest2 要求:对TreeSet中的元素1,2,3,4,5,6,7,8,9,10进行排列,排序逻辑为奇数在前偶数在后,奇数按照升序排列,偶数按照降序排列 4、使用TreeSet和Comparator,写TreeSetTestInner 要求: 对TreeSet中的元素"HashSet"、"ArrayList"、"TreeMap"、"HashMap"、"TreeSet"、"LinkedList"进行升序和倒序排列 1. 使用匿名内部类实现 2. 使用静态内部类实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值