IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java 编程练习 -> 正文阅读

[Java知识库]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(进程)可以同时运行多个程序块,达到多任务处理的目的? ? ??
//同时激活多个线程
/*使一个类可激活线程,使用以下语法表示:
?* class 类名称 extends Thread ? //从Thread类扩展出子类
?* {
?* ? ? ?属性
?* ? ? ?方法
?* ? ? ?修饰符 run(){ ? ? ? ? ? ?//覆盖Thread类里的run()方法
?* ? ? ? ? ?以线程处理的程序
?*/

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();
    }
}

?

?

?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-06-06 17:11:36  更:2022-06-06 17:13:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:18:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码