Java语言进阶实验指导书 下载本文

《Java语言进阶》

实验指导书

福建农林大学 计算机与信息学院

实验一 Generic and Collections Framwork泛型与集合框架

一、实验目的:

1. 了解Java集合框架的接口和实现类

2. 理解泛型类、泛型接口、泛型方法的特点 3. 掌握常用泛型集合接口及其实现类

二、实验内容:

1. 编写程序练习List集合的基本使用:

2.设计学生管理类StudentManager(用List集合管理学生对象)。StudentManager类的功能包括添加学生、查询学生、删除学生、统计学生成绩等。需要设计表示学生对象的Student类,并用LinkedList或ArrayList集合来管理可被数量的学生对象。另外还需要设计测试类Test来验证StudentManager的功能。

3. (Optional ) Write a generic method that returns the maximum element in a two-dimensional array.

public static > E max(E[][] list)

三、实验要求:

1、认真执行每一个步骤的,并作好记录。

2、实验报告中给出配置的详细步骤和重要的截图。

四、实验学时:2学时

五、实验步骤:

1、编写程序练习List集合的基本使用:

1) 创建一个只能容纳String对象名为names的ArrayList集合;

2)按顺序往集合中添加5个字符串对象:“张三”、“李四”、“王五”、“马六”、“赵七”; 3)对集合进行遍历,分别打印集合中的每个元素的位置与内容;

4)首先打印集合的大小,然后删除集合中的第3个元素,并显示删除元素的内容,然后再打印目前集合中第3个元素的内容,并再次打印集合的大小。 代码如下:

package zhoupeili; import java.util.*; public class L1 {

public static void main(String[] args) { List names = new ArrayList(); names.add(\张三\ names.add(\李四\

names.add(\王五\names.add(\马六\names.add(\赵七\

for (int i = 0; i < names.size(); i++) { System.out.println(\第\条数据 为:\}

System.out.println(\集合大小为:\names.remove(2);

}

}

for (int i = 0; i < names.size(); i++) {

System.out.println(\第\条数据 为:\}

System.out.println(\第3条数据为:\System.out.println(\集合大小为:\

运行上述代码,观察并记录运行结果。

2.设计学生管理相应类,比较与上一段代码的重要区别。

实验二 Multithreading多线程

一、实验目的:

1. 理解多线程的原理和机制

2. 掌握Java内置多线程编程接口和相关的类

二、实验内容:

1. Write a program that launches 1000 threads. Each thread adds 1 to a variable sum that initially is 0. You need to pass sum by reference to each thread. In order to pass it by reference, define an Integer wrapper object to hold sum. Run the program with and without synchronization to see its effect. 2. .分析代码并解释

三、实验要求:

1、认真执行每一个步骤的,并作好记录。

2、实验报告中给出配置的详细步骤和重要的截图。

四、实验学时:2学时

五、实验步骤:

1. Write a program that launches 1000 threads. Each thread adds 1 to a variable sum that initially is 0. You need to pass sum by ref- erence to each thread. In order to pass it by reference, define an Integer wrapper object to hold sum. Run the program with and without synchroniza- tion to see its effect.

2. 运行下列代码,记录结果,并分析死锁的原因 // Exercise29_11.java: Demonstrate dead lock public class Exercise29_11 {

private Object object1 = new Object(); private Object object2 = new Object();

public static void main(String[] args) {

Exercise29_11 test = new Exercise29_11(); }

public Exercise29_11() { new Thread1().start(); new Thread2().start(); }