鏀惰棌 (0) +1 璧� (0) +1 韪� (0) +1
鏀惰棌鎴愬姛鏌ョ湅鏀惰棌>>

正在阅读:编程必备经典:Java常见问题集锦编程必备经典:Java常见问题集锦

2004-10-28 18:17 出处:CSDN 作者:okdiy 责任编辑:linjixiong
 

  问: 
  对象的序列化(serialization)类是面向流的,应如何将对象写入到随机存取文件中? 

  答: 
  目前,没有直接的方法可以将对象写入到随机存取文件中. 
  但是可以使用ByteArray输入/输出流作为中介,来向随机存取文件中写入或从随机存取文件中读出字节,并且可以利用字节流来创建对象输入/输出流,以用于读写对象.需要注意的是在字节流中要包含一个完整的对象,否则读写对象时将发生错误. 例如,java.io.ByteArrayOutputStream可用于获取ObjectOutputStream的字节流,从中可得到byte数组并可将之写入到随机存取文件中.相反,我们可以从随机存取文件中读出字节数组,利用它可构造ByteArrayInputStream,进而构造出ObjectInputStream,以读取对象. 

  问: 
  运行RMI应用时,可不可以不手工启动名字服务rmiregistry,而是从程序中启动之? 

  答: 
  可以. java.rmi包中提供了类java.rmi.registry.LocateRegistry,用于获取名字服务或创建名字服务.调用LocateRegistry.createRegistry(int port)方法可以在某一特定端口创建名字服务,从而用户无需再手工启动rmiregistry.此外,LocateRegistry.getRegistry(String host,int port)方法可用于获取名字服务. 

  问: 
  使用类PrintJob进行打印操作时,应如何设置打印机名等打印属性? 

  答: 
  使用如下方法可以获得PrintJob的实例用于控制打印操作: 


  Toolkit.getPrintJob(Frame f, String jobtitle, Properties prop) 

  那么对于打印属性的设置可以通过对prop的属性设置来实现,打印属性包括: 

  awt.print.destination: 可以是"printer"或"file" 

  awt.print.printer: 打印机名 

  awt.print.fileName: 打印文件名 

  awt.print.numCopies: 打印份数 

  awt.print.options: 打印命令的打印选项 

  awt.print.orientation: 打印方向,可以是"portrait"或"landscape" 

  awt.print.paperSize: 纸张大小,可以是"letter","legal","executive"或"a4" 

  问: 
  在JDK1.1中Thread类定义了suspend()和resume()方法,但是在JDK1.2中已经过时,应使用什么方法来替代之? 

  答: 
  Thread.suspend本身易于产生死锁.如果一个目标线程对某一关键系统资源进行了加锁操作,然后该线程被suspend,那么除非该线程被resume,否则其它线程都将无法访问该系统资源.如果另外一个线程将调用resume,使该线程继续运行,而在此之前,它也需要访问这一系统资源,则将产生死锁. 

  因此,在Java 2中,比较流行的方式是定义线程的状态变量,并使目标线程轮询该状态变量,当状态为悬挂状态时,可以使用wait()方法使之处于等待状态.一旦需要该线程继续运行,其它线程会调用notify()方法来通知它. 


察看评论详细内容 我要发表评论
作者笔名 简短内容 发表时间
:

键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品
鎵嬫満璁块棶鍥炲埌椤堕儴