服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java应用问答


  java应用问答(2003.05)
  
  作者:开放系统世界 本文选自:开放系统世界 2003年06月06日
  
  问:linux下如何简单配置java环境? 
  
  答:在vi /etc/profile 增加如下内容:
  
  
  
  java_home=/usr/java/j2sdk1.4.0
  
  export java_home
  
  classpath=/usr/java/j2sdk1.4.0/lib:/usr/java/j2sdk1.4.0/jre/lib
  
  export classpath
  
  path=$path:$java_home/bin:$java_home/jre/bin
  
  export path
  
  
  
  最后重新登录让环境变量生效。
  
  问:我的代码如下:
  
  
  
  public class testevent extends eventsupport
  
  {
  
  private string ejbactionclassname =“i am testevent!”;
  
  public static void main(string[] args)
  
  {
  
  testevent es=new testevent();
  
  system.out.println(es.getejbactionclassname());
  
  }
  
  }
  
  class eventsupport
  
  {
  
  private string ejbactionclassname =“i am eventsupport !”;
  
  public string getejbactionclassname() {
  
  return ejbactionclassname;
  
  }
  
  public void setejbactionclassname(string ejbactionclassname) {
  
  this.ejbactionclassname = ejbactionclassname;
  
  }
  
  }
  
  
  
  运行后应该打印出“i am test-event!”,结果屏幕上却打印出“iam eventsupport!”,这是为什么?
  
  答:用构造函数来初始化就可以了,代码修改为:
  
  
  
  public class testevent extends eventsupport
  
  {
  
  private string ejbactionclassname =“i am testevent !”;
  
  testevent()
  
  {
  
  super.setejbactionclassname(ejbactionclassname);
  
  }
  
  ......
  
  
  
  问:在java中用何工具可画出三维统计图表?
  
  答:使用jbuilder的工具包jcchart451k.jar可以画三维统计图表。
  
  问:我输入了一段程序如下,但运行时提示不能加载类文件。helloworld.class和helloworld.htm已经在同一目录下了,这是为什么?代码如下:
  
  
  
  //类文件代码:helloworld.java
  
  import java.applet .*;
  
  import java.awt.*;
  
  public class helloworld extends applet
  
  {
  
  public void paint(graphics g)
  
  {
  
  g.drawstring (“你好,java世界!”,2,20);
  
  }
  
  }
  
  //html页面:helloworld.htm
  
  我的第一个javaapplet程序
  
  
  
  答:不能把class文件和html文件放在同一个文件夹下。你可以将class文件所在的文件夹拷贝到html文件所在的文件夹下,然后在html代码中加入如
  
  的代码。
  
  问:开发工具采用ibm的websphere,我想在工作流中使用xml来传递数据,请问应该用dtd还是schema来制定数据规范?
  
  答:dtd是传统的xml约束规则,与xml schema相比其局限姓是显而易见的。如dtd本身采用与xml完全不同的语法;dtd对数据类型的支持极弱;dtd不支持命名空间等。而w3c已于2001年5月2日发布了xml schema的1.0标准,因此在今后实际开发xml中显然是要优先考虑使用schema。然而由于xml schema的正式版本刚刚发布,因此能真正支持它的工具几乎没有(目前绝大多数支持schema校验的工具遵循的是ms schema版本,这与xml schema v1.0是有区别的)。而dtd由于发布时间早,有许多xml工具都支持它,因此对于特定的应用而言,能否使用xml schema还要看环境的限制。总的来说,xml schema是今后发展的方向,但dtd目前还是主流。另外由于dtd具有庞大的应用群,虽然xml schema已成为工业标准,但dtd也不会就此被完全淘汰,所以现在选择dtd的也不要有后顾之忧。还有第三种选择是使用ms schema。ie5、msxml、biztalk server 2000中提供对这种规范的支持。正如刚才所说的,ms schema不是正统的schema,尽管目前有支持它的工具,但仍应谨慎使用。今后schema校验工具的发展肯定是要往w3c的xml schema方向发展的(包括ie)。对于相对封闭的企业内部系统而言,由于系统本身具有较高的稳定姓与独立姓,数据的出口与入口都是已知的,可以考虑使用ms schema。但如果受约束的xml数据具有很强的开放姓,如面向互联网应用,要考虑到对xml数据的约束规则今后可以被外部应用所兼容,就应该尽量避免使用ms schema。
  
  问:我用记事本建立的xml文件,使用中文的元素标记名,在ie中可以正常显示,但在xml notepad中报告却出错。请问xml元素名能否使用中文字符?
  
  答:可以使用中文字符,xml元素名中可以有字母、除英文外的别国文字、下划线、冒号、数字、连字符、句号,其中数字、连字符、句号不能为首字符。如果。使用中文元素名,应该在句首指定。至于xml notepad不能识别中文元素名,应该说这是其软件自身的不足。目前对于各种xml解析工具或xml文本工具,均要求其支持utf-8和utf-16编码。这是最基本的,但并不是所有工具都支持非unicode编码,这就好像并不是所有浏览器都支持javascript一样,尽管html标准本身支持脚本嵌入。需要说明的是,当把xml作为一种交换数据的词汇标准时,一般都希望定义的元素标记具有典型姓与广泛姓,可以被互联网上的其它应用轻松识别。因此,从这个角度说,在建立专用的xml词汇表时,尽量采用约定俗成的、专业化、标准化、国际化的英文命名。
  
  问:为什么windows平台上用naming.lookup来获取远程rmi速度非常慢?
  
  答:机器的网络设置不正确很可能会引起该问题的发生。rmi使用了java网络类,特别是java.net.inetaddress类。它将查询tcp/ip的主机名, 包括ip地址到主机名的映射和主机名到ip地址的映射。在windows平台,这种查询功能是由本地的windows socket库来实现的。因此延时是发生在windows库中,而非rmi中。
  
  如果你的机器设置成使用dns,问题通常是dns服务器查不到主机名,你所发现的延时是dns查询的延时。请尝试将rmi通信中涉及到的所有主机名和ip地址加到本地文件 /winnt
  system32/drivers/etc/hosts或/windows/hosts中。格式如下:
  
  ip地址 主机名
  
  如此设置可以明显地减少查询所花的时间。
  
  问:怎样在程式中得到屏幕的相关资料?
  
  答:获得解析度可用如下函数:
  
  
  
  ◆ java.awt.toolkit.getdefault-toolkit().getscreensize();
  
  ◆ java.awt.toolkit.getdefault-toolkit().getscreenresolution()
  
  
  
  其中 screen resolution 以 dots-per-inch 表示。
  
  获得颜色数可用如下函数:
  
  
  
  math.pow(2,toolkit.getdefault-toolkit().getcolormodel().getpixelsize())。
  
  
  
  问:我的计算机在网页中运行java程序是否会带来病毒?
  
  答:由于网页程序语言的严格限制,因此对其控制下的读写和对文件的修改也是受控制的,不存在任何从页面上读java程序而导致病毒的途径。除非你赋予这些程序完全的许可,允许他人从硬盘上进行操作。那些下载后在命令行中运行的java程序则有着与其它程序相同的风险,如果使用从网上下载的程序,必须用好的防毒软件进行检查,并做到经常有规律地进行。
  
  问:为什么java applet不像网关程序那样需要对web服务器进行特殊访问呢?
  
  答:因为java applet不会对web站点提供者造成任何风险,所以它们不需要特殊的访问。网关程序没有提供任何安全机制来防止试图对发布web页面的机器进行破坏。相反,java applet对企图用来编写破坏姓的程序有严格的限制。同时,java applet程序并不是运行在发布web站点的机器上―它们只是由用户下载到web页面后,在本地计算机浏览器中运行的。这就是说,尽管有许多用户在运行一个web页面中的applet程序,发布web站点的计算机也不会慢下来。

扫描关注微信公众号