栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java 编程练习

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java 编程练习

编程练习:

1、通过实现Runnable接口的方式创建线程类Cat和Dog,run()方法实现的功能为:加入一个循环长度为3的for循环,分别循环输出信息“A cat”和“A dog”。

2、在测试类中分别创建Cat和Dog类的对象,启动两个线程。

3、在测试类中创建一个循环长度为3的for循环,打印输出信息“main thread”。

测试类

public class Test {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        for(int i=0;i<3;i++) {
            System.out.println("main thread");
        }
        Cat one=new Cat();
        Dog two=new Dog();
        Thread t1=new Thread(one);
        Thread t2=new Thread(two);
        t1.start();
        t2.start();
//        new Thread(t1).start();
//        new Thread(t2).start();
    }
}

Cat类

class Cat implements Runnable {
	public void run() {
		for (int i=0;i<3; i++) {
			System.out.println(Thread.currentThread().getName() + "A cat");
		}
 
	}
}
 

Dog类

class Dog implements Runnable {
	public void run() {
		for (int i=0;i<3; i++) {
			System.out.println(Thread.currentThread().getName() + "A dog");
		}
 
	}
}

 

2.(单选题) 

 用Runnable接口创建线程的主要工作如下,它们正确的先后顺序为()

     (1) 通过实现类的对象创建线程类的对象

     (2) 声明实现Runnable接口的类

     (3) 调用start()方法启动线程

     (4) 创建实现类的对象

     (5) 在实现类内实现run()方法 

           正确答案: C      我的答案: C

  • A. 

    1-4-2-5-3

  • B. 

    2-1-4-5-3

  • C. 

    2-5-4-1-3

  • D. 

    1-5-2-4-3

线程

//process(进程)可以同时运行多个程序块,达到多任务处理的目的      
//同时激活多个线程

3.编程练习:

通过继承Thread类的方式创建线程,并在线程体中通过循环打印输出如演示效果所示的内容。

public class Test {
       public static void main(String[] args) {
           new TestThread().start();      
       }
}
class TestThread extends Thread{
    public void run() {
        for(int i=1;i<=10;i++) {
            System.out.println("打印机正在运行"+i);
        }
    }
}

 4.以下代码中,在划线处加入什么语句能成功启动线程。

 答案:one.start();

5.(多选题) 选项中,哪两句的说法是错误的?(选择两项)

正确答案: BC              我的答案:BC

  • A. 

    线程是比进程还要小的运行单位

  • B. 

    Thread类位于java.thread包下

  • C. 

    run()方法用于启动线程

  • D. 

    CPU使用时间片轮转的工作方式,可以让多个程序轮流占用CPU,达到同时运行的效果

6.(简答题) 编程练习:应用对象序列化和对象反序列化向文件写入对象,并将对象读取出来输入到控制台上。效果图:

任务要求:

1、创建Product类,并声明它的属性:id,name,categories,price

2、实现Serializable接口;

3、定义Product类构造方法;

4、在Test类里面,创建Product类的对象:iphone,ipad,macbook,iwatch

5、实例化对象输入流和对象输出流;

6、写入Product类的四个对象;

7、从文件里读取四个product类的四个对象。

 Product类:

import java.io.Serializable;
public class Product implements Serializable {
	private int ID;
	private String name;
	private String categories;
	private Double price;
	public Product() {
		
	}
	public Product(int iD, String name, String categories, Double price) {
		super();
		ID = iD;
		this.name = name;
		this.categories = categories;
		this.price = price;
	}
 
	public int getID() {
		return ID;
	}
 
	public void setID(int iD) {
		ID = iD;
	}
 
	public String getName() {
		return name;
	}
 
	public void setName(String name) {
		this.name = name;
	}
 
	public String getCategories() {
		return categories;
	}
 
	public void setCategories(String categories) {
		this.categories = categories;
	}
 
	public Double getPrice() {
		return price;
	}
 
	public void setPrice(Double price) {
		this.price = price;
	}
 
	public String toString() {
		return "产品ID:" + ID + "n产品名称:" + name + "n产品属性:" + categories + "n产品价格:" + price + "元";
	}
 
}

ProductTest类:

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
 
public class ProductTest {
 
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Product iphone = new Product(123, "iphone", "telephone", 4888.0);
		Product ipad = new Product(234, "ipd", "computer", 5088.0);
		Product macbook = new Product(345, "macbook", "computer", 10688.0);
		Product iwatch = new Product(256, "iwatch", "watch", 4799.0);
		try {
			FileOutputStream fos = new FileOutputStream("product.txt");
			ObjectOutputStream oos = new ObjectOutputStream(fos);
			FileInputStream fis = new FileInputStream("product.txt");
			ObjectInputStream ois = new ObjectInputStream(fis);
			oos.writeObject(iphone);
			oos.writeObject(ipad);
			oos.writeObject(macbook);
			oos.writeObject(iwatch);
			oos.flush();
			System.out.println("apple系列产品信息:");
			
			// 方式1输出产品信息
			Product pro = (Product) ois.readObject();
			Product pro1= (Product) ois.readObject();
			Product pro2 = (Product) ois.readObject();
			Product pro3 = (Product) ois.readObject();
			System.out.println("apple系列产品信息");
			System.out.println(pro);
			System.out.println();
			System.out.println(pro1);
			System.out.println();
			System.out.println(pro2);
			System.out.println();
			System.out.println(pro3);
			System.out.println();
			oos.close();
			fos.close();
			ois.close();
		} catch (FileNotFoundException e) {
//			 TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
 
	}
 
}

 

 

7.(单选题) 请阅读下列程序,选择正确的语句排序后填写在横线上 (选择一项)

使得运行结果为:

I.      oos.writeObject(doberman);

II.     Dog dog1=(Dog)ois.readObject();

III.    oos.write(doberman);

IV.    ObjectOutputStream oos=new ObjectOutputStream(fos);

V.     ObjectInputStream ois=new ObjectInputStream(new FileInputStream("Dog.txt"));

VI.    OutputStreamWriter oos=new OutputStreamWriter(fos);

VII.    String toString()

VIII.   String()

IX.     public class Dog implements Serializable

X.     public class Dog extends Serializable

正确答案: D       我的答案: D

  • A. 

    X VII  IV  V   I   II

  • B. 

    IX VIII  VI  V  III   II

  • C. 

    X  VIII  VI  V  III   II

  • D. 

    IX  VII  IV   V  I   II

8.(简答题) 编程练习:利用System.in从键盘输入多行字符串,输入一行控制台输出一行,同时利用PrintWriter输出到文件一行,直到输入为“exit”,退出程序。运行效果:

import java.io.*;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class Test {
    public static void main(String[] args) throws IOException{
    	BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
		  BufferedWriter buf2 = new BufferedWriter(new FileWriter("test.txt"));
		  System.out.println("请输入小写英文字符串");
		  String str = buf.readLine();
		   while(!str.equals("exit")){
			   System.out.println(str);
//			   System.out.println("程序结束");
		   buf2.write(str);
		   buf2.newLine();
		   System.out.println();
		   str = buf.readLine();
		    }
		   System.out.println("程序结束");
		  buf.close();
		  buf2.close();
    }
}

 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/946575.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号