java基础训练

一、编程题:Java多线程简单应用 编写一个程序,在不同时段进行多线程消息显示。创建3 个线程,每个线程都显示一个消息,指出它即将进入睡眠状态,线程的睡眠时间为0~5秒之间的随机数,随后进入睡眠状态。当一个线程被唤醒,首先显示该线程的名称,并指出它已经完成睡眠,然后线程终止并进入死亡状态。

程序运行结果如下: 第一次运行: 线程开始

线程1进入睡眠时间2427 线程2进入睡眠时间1828 线程开始,main方法结束

线程3进入睡眠时间4803 线程2正在睡眠... 线程1正在睡眠... 线程3正在睡眠... 第二次运行: 线程开始

线程1进入睡眠时间1010 线程开始,main方法结束

线程2进入睡眠时间225 线程3进入睡眠时间3338 线程2正在睡眠... 线程1正在睡眠... 线程3正在睡眠...

实验步骤:

1、用MyEclipse或记事本工具按照Java编码规范创建Java程序,输入程序代码后,进行编译和运行。

2、用JDK工具(javac.exe、java.exe)、MyEclipse或其他工具对上述程序进行编译和运行。

代码如下:

import java.util.Random;

class MyThread implements Runnable{ private String name; private int time; public MyThread(String name,int time){ this.name=name; this.time=time; } public MyThread(){} public void run(){ System.out.println(this.name+\进入睡眠时间\+this.time); try{ Thread.sleep(this.time); }catch(InterruptedException e){ e.printStackTrace(); } System.out.println(this.name+\正在睡眠...\); }

public void info(){ System.out.println(\线程开始,main方法结束\); System.out.println(\); } }

public class Demo1 { public static void main(String[] args) { System.out.println(\线程开始\); Random r=new Random(); int a=r.nextInt(5000); int b=r.nextInt(5000); int c=r.nextInt(5000); MyThread my1=new MyThread(\线程1\,a); MyThread my2=new MyThread(\线程2\,b); MyThread my3=new MyThread(\线程3\,c); new Thread(my1).start(); new Thread(my2).start(); new Thread(my3).start(); MyThread my=new MyThread(); my.info(); } }

一、编程题:

编写一个程序,完成在银行的取款和存款操作。在定义银行类时,若取钱数大于余额,则做异常处理。控制台输出如下: ? 你当前的余额为:4000

? 请选择你要办理的业务种类(输入1或者2):1、取款,2、存款 ? 1

? 请输入金额(精确到元): ? 2000

? 对不起你的余额不足……

代码如下:

import java.util.Scanner; public class BankMoney { public static void main(String[] args) { Scanner scan1=new Scanner(System.in); System.out.println(\您当前的金额为:\); float mon1=scan1.nextFloat();

System.out.println(\您当前的金额为:\+mon1);

System.out.println(\请输入你要办理的业务种类(输入1或者2):1、取款,2、存款\);

Scanner scan2=new Scanner(System.in); int a=scan2.nextInt();

System.out.println(\请输入金额:\);

Scanner scan3=new Scanner(System.in); float mon2=scan3.nextFloat(); if(a==1){

if(mon2>mon1){ try{ throw new Exception(\对不起你的余额不足!\); }catch(Exception e){

System.out.println(e); }

}else{ System.out.println(\你所剩余额为:\+(mon1-mon2)); } }

if(a==2){ System.out.println(\你所剩余额为:\+(mon1+mon2)); } } }

显示结果一:

您当前的金额为: 4000

您当前的金额为:4000.0

请输入你要办理的业务种类(输入1或者2):1、取款,2、存款 1

请输入金额: 2000

你所剩余额为:2000.0

显示结果二:

您当前的金额为: 4000

您当前的金额为:4000.0

请输入你要办理的业务种类(输入1或者2):1、取款,2、存款 1

请输入金额: 5000

java.lang.Exception: 对不起你的余额不足!

显示结果三: 您当前的金额为: 4000

您当前的金额为:4000.0

请输入你要办理的业务种类(输入1或者2):1、取款,2、存款 2

请输入金额: 2000

你所剩余额为:6000.0

二、编程题:Java异常处理简单应用

通过图形界面从键盘输入两个数,进行相除,显示商。当输入串中含有非数字时或除数为0时,通过异常处理机制,使程序能正确运行。

public class ExceptionDemo1 { public static void main(String[] args) {

String str1=javax.swing.JOptionPane.showInputDialog(\请输入被除数\);

String str2=javax.swing.JOptionPane.showInputDialog(\请输入除数\); int a=0; try{ int s1=Integer.parseInt(str1); int s2=Integer.parseInt(str2); a=s1/s2;

}catch(ArithmeticException e){ javax.swing.JOptionPane.showMessageDialog(null,\算数异常:\+e); }catch(NumberFormatException e){ javax.swing.JOptionPane.showMessageDialog(null,\数字转换异常:\+e); }catch(Exception e){ javax.swing.JOptionPane.showMessageDialog(null,\其他异常:\+e); }

javax.swing.JOptionPane.showMessageDialog(null,\计算结果是:\+a ); } }

显示结果: 结果一:

结果二:

结果三:

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4