R4-1
请写出以下程序运行结果:
class DepositThread extends Thread { BankDemo account; int Deposit_amount; String message; DepositThread(BankDemo account,int amount,String message){ this.message=message; this.account=account; this.Deposit_amount=amount; } public void run() { account.Deposit(Deposit_amount,message); } } public class BankDemo { static int balance=1000; BankDemo() { DepositThread first,second; first=new DepositThread(this,2000,"#1 "); second=new DepositThread(this,3000,"\t\t\t\t#2 "); first.start(); second.start(); try { first.join(); second.join(); }catch(InterruptedException e){} System.out.println("____________________"); System.out.println("final balance is "+balance); } void Deposit(int amount,String name) { int bal; System.out.println(name+"trying to deposit "+amount); System.out.println(name+"getting balance"); bal=getBalance(); System.out.println(name+"balance got is "+balance); bal+=amount; System.out.println(name+"setting balance--"); setBalance(bal); System.out.println(name+"new balance set to "+balance); } int getBalance(){ try { Thread.sleep(2000); }catch(InterruptedException e){}; return balance; } void setBalance(int bal) { try{ Thread.sleep(2000); }catch(InterruptedException e){}; balance=bal; } public static void main(String[] args) { new BankDemo(); } }
#2 trying to deposit 3000
#1 trying to deposit 2000
#1 getting balance
#2 getting balance
2 分
#2 balance got is 1000
#2 setting balance--
#1 balance got is 1000
#1 setting balance--
#2 new balance set to 3000
#1 new balance set to 3000
____________________
final balance is 3000
R4-2
Java中的事件主要有两种:
组件类事件
和动作类事件。
R4-3
调用线程对象的
start()
方法可以启动线程,使线程处于可运行状态。
R4-4
25-3 The output of the code below is:
public class Main { static int count = 0; public static void main(String[] args) { for ( ;; ) { try { if ( count++ == 0 ) throw new Exception(); System.out.println(1); } catch (Exception e) { System.out.println(2); } finally { System.out.println(3); if ( count == 2 ) break; } System.out.println(4); } } }
2
3
4
1
R4-5
Java使用
RMI
2 分
可以让一个虚拟机(JVM)上的应用程序请求调用位于网络上另一处的JVM上的对象.。
R4-6
请写出以下程序运行结果
class Main { private static int cnt=0; public void run() { new Thread(()->{ try { Thread.sleep(1000); } catch (InterruptedException e) { } synchronized(this) { cnt++; } }).start(); } public static void main(String [] args) { try { Main m = new Main(); for ( int i=0; i<3; i++ ) m.run(); Thread.sleep(5000); System.out.println(cnt); } catch (InterruptedException e) { }}}
2 分
R4-7
2 分
对话框可以中断对话过程,去响应对话框以外的事件。
R4-8
在Java中,
2 分
类用于表示一个互联网协议地址(封装IP地址和域名)。
R4-9
JDBC中获取ResutlSet对象rst的第一行数据,使用代码
2 分
R4-10
Java程序中的线程被设计为一个对象,该对象具有自己的生命周期,可以利用接口Runnable和类
2 分
创建一个线程。
R4-11
2 分
布局包括五个明显的区域:东、南、西、北、中。
R4-12
使用JDBC连接数据库的顺序有下面几个,其中正确的顺序是
2 分
A) 加载驱动 B) 导入驱动包 C) 发送并处理SQL语句 D) 建立于数据库的连接 E) 关闭连接
R4-13
按异常处理不同可以分为运行异常、捕获异常、声明异常和
2 分
R4-1
给出以下代码:
public class Main { void f() { FirstThread first = new FirstThread(this); SecondThread second = new SecondThread(this); first.start(); second.start(); try { System.out.println("Waiting for first thread to finish..."); first.join(); System.out.println("It's a long wait!"); System.out.println("Waking up second thread.."); synchronized (this) { this.notify(); } System.out.println("Waiting for second thread to finish.."); second.join(); } catch (InterruptedException e) { } System.out.println("I'm ready to finish too."); } public static void main(String[] args) { Main m = new Main(); m.f(); } } class FirstThread extends Thread { Object lock; FirstThread(Object o) { lock = o; } public void run() { try { System.out.println("First thread starts running."); sleep(10000); System.out.println("First thread finishes running."); } catch (InterruptedException e) { } } } class SecondThread extends Thread { Object lock; SecondThread(Object o) { lock = o; } public void run() { System.out.println("Second thread starts running."); System.out.println("Second thread suspend itself."); try { synchronized (lock) { lock.wait(); } } catch (InterruptedException e) { } System.out.println("Second thread runs again and finishes."); } }
程序运行后输出结果为(一行一空):
2 分
2 分
2 分
2 分
2 分
2 分
2 分
2 分
2 分
2 分