JAVA练习——选择+编程(1)

本文是一篇关于JAVA编程的基础练习,包括选择题和编程题两部分。选择题涉及多线程、序列化、面向对象设计等概念,详细解析了每个问题并给出答案。编程题则提出字符串操作和选手组队优化问题,要求最大化队伍的水平值总和。
摘要由CSDN通过智能技术生成

1. 选择题

1)1、执行如下程序,输出结果是( C)

class Test {
	private int data;
	int result = 0;
	public void m() {
		result += 2;
		data += 2;
	System.out.print(result + " " + data);
	}
}
class ThreadExample extends Thread {
	private Test mv;
	public ThreadExample(Test mv)  {
	this.mv = mv;
	}
	public void run() {
		synchronized(mv){
			mv.m();
		}
	}
}
class ThreadTest {
	public static void main(String args[]) {
		Test mv = new Test();	// 声明并初始化对data赋默认值 
		Thread t1 = new ThreadExample(mv);
		Thread t2 = new ThreadExample(mv);
		Thread t3 = new ThreadExample(mv);
		t1.start();
		t2.start();
		t3.start();
	}
}

A、0 22 44 6
B 、2 42 42 4
C、2 24 46 6
D、4 44 46 6
解答
① 使用synchronized关键字加同步锁,使三个线程依次顺序操作m() 方法
② t1.start(); 使得result=2,data=2,输出即为2 2
t2.start(); 使得result=4,data=4,输出即为4 4
t3.start(); 使得result=6,data=6,输出即为6 6
③ System.out.print(result +" "+ data);
是print()方法,不会自动换行,所以输出结果为2 24 46 6

2)要使对象具有序列化能力,则其类应该实现如下哪个接口(A)
A、java.io.Serializable
B 、java.lang.Cloneable
C、java.lang.CharSequence
D、java.lang.Comparable
解答
A: 专门提供给类实现序列化的
B: 实现克隆方法的;Object.clone() 方法可以合法地对该类实例进行按字段复制
C: CharBu

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值