sirius java_【Java】过程考核试题

2-1

在使用 interface声明一个接口时,只可以使用(   )修饰符修饰该接口。

private

protected

private  protected

public

2-2

Java的字符类型采用的是Unicode编码方案,每个Unicode码占用(   )个比特位。

8

16

32

64

2-3

关于构造函数的描述错误的是:

构造函数返回的类型只能是void类型

构造函数是类的一种特殊函数,它的方法名必须与类名相同

构造函数的主要作用是完成对类的对象的初始化工作

一般在创建新对象时,系统会自动调用构造函数

2-4

有语句String s=”hello world”; ,以下操作哪个是不合法的?

int i=s.length()

s>>>=3

String ts=s.trim()

String t=s+”!”

2-5

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

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

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

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

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

2-6

以下哪个不是Java的关键字?

TRUE

const

super

void

2-7

Java语言的类间的继承关系是。

多重的

单重的

线程的

不能继承

2-8

下列选项中,用于在定义子类时声明父类名的关键字是。

interface

package

extends

class

2-9

在java中,( )对象可以使用键/值的形式保存数据.

ArrayList

HashSet

HashMap

LinkedList

2-10

给定如下的java代码,编译时会在( )出现错误。 class Parent{ }

class Child extends Parent{

public static void main(String args[]){

Parent p1=new Parent();//第一行

Parent p2=new Child();//第二行

Child c1=new Child();//第三行

Child c2=new Parent();//第四行

} }

第一行

第二行

第三行

第四行

2-11

( )类应该是你在java里创建的任何异常类的超类。

Exception类

Throwable类

Error类

RuntimeException类

2-12

( )合法构造并初始化了数组。

int array[]={1,2,3};

int array[][]={1,2,3,4};

int []array=(1,2,3);

int []array=[1,2,3];

2-13

下列InputStream类中哪个方法用于关闭流?

skip()

close()

reset()

mark()

2-14

在类的定义中可以有两个同名函数,这种现象称为函数的( )。

封装

覆盖

继承

重载

2-15

在下面关键字中,哪一个不是用于异常处理语句( )。

try

catch

break

finally

4-1

abstract

方法是一种仅有方法的定义,没有具体方法体和操作实现的方法;

final

方法是不能被当前类的子类重新定义的方法。

4-2

创建一个名为YourPackage的包的语句是

package YourPackage;

该语句应放在程序位置的

第一行

4-3

在java程序中,通过类的定义只能实现

重继承,通过

接口

的定义可以实现多重继承。

4-4

子类必须通过

extends

关键字调用父类有参数的构造函数

4-5

在java语言中,所有的类都是

Object

的子类

4-6

一个类如果实现一个接口,那么它就需要实现接口中定义的全部

方法

,否则该类就必须定义成

抽象类

//这是对堆栈进行操作的泛型类。有入栈push和出栈pop两个方法,请完成填空。

public class Stack<T> {

private class Node<T>{

public T Item;

public Node<T> next;

public Node(T item,Node<T> nt) {

Item = item;

next = nt;

}

public boolean end() {

return Item==null && next==null;

}

}

private Node top;//

public Stack() {

top=new Node<T>(null,null);

}

public void push(T item) {

top = new Node<T>(item,top);

}

public T pop() {//

if(top.end())

return null;

T item=top.Item;

top = top.next;

return item;//

}

}

public class First {

public static void main(String[] args) {

Stack<T> s=new Stack<T>();//

int i;

for(i=0;i<10;i++) {

s.push(i);

}

for(i=0;i<10;i++) {

System.out.println(s.pop());

}

}

}

8-1 多线程同步编程 (20分)

有A,B两个线程,A线程产生小于20的随机数,B线程计算随机数的平方值。要求A,B线程必须同步(即A线程产生一个数之后,B线程计算该数的平方值;如果A线程还没产生,B线程只能等待,如果B线程还没取值,A线程只能等待)。

/**

*

*/

/**

* @author SiriusZHT 2018110262

*

*/

package test1;

import java.util.Random;

public class ThreadTurn {

Object o = new Object();

Boolean f = true ; // True 时线程1执行

int max=20;

int min=0;

int s=0;

int doubles=0;

class Thread1 extends Thread{

public void run() {

synchronized (o) {

for (int i = 0; i < 100; i++) {

Random random = new Random();

s = random.nextInt(max)%(max-min+1) + min;

System.out.println("A" + i + ":" + s);

o.notify();

if(f){

f = false;

try{

o.wait();

}catch(Exception e){

System.out.print(e);

}

}

}

}

}

}

class Thread2 extends Thread{

public void run(){

synchronized (o){

for(int i=0;i<100;i++){

doubles = s*s;

System.out.println("B" + i + ":" + doubles);

o.notify();

if(!f){

f = true;

try {

o.wait();

}catch(Exception e){

System.out.print(e);

}

}

}

}

}

}

public void start(){

new Thread1().start();

new Thread2().start();

}

public static void main(String args[]){

ThreadTurn t = new ThreadTurn();

t.start();

}

}

990835a5611400307ef6eb0d3eeefaec.png

8-2 请按要求完成程序 (20分)

计算机的文件假如分为文本文件、图像文件、压缩文件三种类型,编写一个程序模拟打开这三种类型的文件(在打开Open()方法中只显示打开某种类型的文件即可)。要求使用接口或抽象类, 接口或抽象类的名称为FileOpen, 文本文件类名为TextFile, 图像文件类名为ImageFile, 压缩文件类名为ZipFile。主程序代码如下,请完成其他类的编程。

/**

*

*/

/**

* @author SiriusZHT 2018110262

*

*/

package test2;

abstract class FileOpen {

public String filename;

public void Open() {

}

}

class TextFile extends FileOpen{

public TextFile(String name) {

// TODO Auto-generated constructor stub

this.filename = name;

}

public void Open() {

System.out.println(this.filename);

}

}

class ImageFile extends FileOpen{

public ImageFile(String name) {

// TODO Auto-generated constructor stub

this.filename = name;

}

public void Open() {

System.out.println(this.filename);

}

}

class ZipFile extends FileOpen{

public ZipFile(String name) {

// TODO Auto-generated constructor stub

this.filename = name;

}

public void Open() {

System.out.println(this.filename);

}

}

public class File{

public static void main(String[] args) {

FileOpen []fp=new FileOpen[10];

int n;

for(int i=0;i< fp.length;i++){

n=(int)(Math.random()*3);

switch(n){

case 0:

fp[i]=new TextFile ("文本文件.txt");

break;

case 1:

fp[i]=new ImageFile ("图像文件.jpg");

break;

case 2:

fp[i]=new ZipFile ("压缩文件.Zip");

break;

}

}

for(FileOpen ones:fp)

ones.Open();

}

}

b0145007a28678a111704c14ad3c9c79.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值