服务热线:13616026886

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

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

java类 精彩问答


  天津市的王勇问:请问java中两个字符串如何比较判断?
  答:你可以试试下面这种方法:
  equals
  equalsignorecase
  上面两个返回的是bool。
  compareto
  这个返回的是int ,返回0表示相等。
  郑州市的刘波问:static声明有什么用?不用它声明有什么不同?
  答:使用 public static type variable或者public static finall type variable可以定义全局变量和全局常量。static方法是类方法与实例方法不同,各实例可统一调用相同的类方法。
  成都市的傅军问:我想用rmi,结果程序写好后编译非常成功,但我不知道如何启动服务端程序和注册表。不知能否指点一下。
  答:你可以试试这样做:
  
  1.start rmi bootstrap
  
  start rmiregistry (windows nt)
  
  rmiregistry& (solaris)
  
  2.start server
  
  java -d java.rmi.server.codbase = http://yourhost/..../yourcode
  石家庄的庞绍熙问:我无法在ie5.0中显示用swing 编写的 applet。我在系统中已经安装了plug-in:c:/tools/javasoft/ 和jdk1.2.2 : c:/tools/jdk1.2.2/ 。我设置的环境变量为:
  classpath=
  
  c:/tools/ibmvjava3.0/eab/runtime30;
  
  c:/tools/jdk1.2.2/jre/lib/rt.jar;
  
  c:/tools/jdk1.2.2/lib/tools.jar;
  
  c:/tools/jdk1.2.2/lib/dt.jar;
  
  c:/tools/jdk1.2.2/src.jar;
  
  d:/saint/study/java test (存放applet程序)
  path=
  c:/tools/jdk1.2.2/bin;
  c:/tools/ibmvjava3.0/eab/bin;
  
  在浏览器中运行时,报出如下错信息: can not be instantiated。我不知道是什么原因,希望能够得到帮助。
  答:到sun的网站上去下载一个jre,安装到你的机器上以更新你的jvm ,再下载一个htmlconver转换你的html代码就可以了。
  广州市的汤方梅问:现在我有一个用c语言编写的api,我需要在java 的程序中调用这个api。请问我该怎么写这个api。要求既有源文件,又有obj文件。
  答:具体过程不讲了,你试试用native方法吧。你可以在java程序中定义一个native方法,再用javah 编译包含该native方法的.class文件。这样会生成.h的头文件,再用javah -stub [class文件]生成stub文件。然后你就可以include 刚才生成的.h文件,制作一个dll。
  
  汕头市的薛建荣问:想在java应用程序中调用c++写的dll,该如何着手?
  答:如果你有该 dll 的源码,你可以按照 java 中 native 库的编写办法,首先写出程序框架,然后生成头文件,最后按照头文件改写原来的 c/c++ 程序,重新编译生成新结构的 dll。如果有源码的话,改写这一步应该还是可行的。
  上海市的梁平问: 有没有办法在load一个applet的时候在applet区域显示其进度?
  答:如果准备显示在状态条上,你可以试试这种实现方法:
  public class test extends applet {
  public void init() {
  showstatus("loading applet...");
  }
  }
  如果想显示在applet load 区内,则可以试试这种实现方法:
  import java.applet.applet;
  import java.awt.graphics;
  public class simple extends applet {
  stringbuffer buffer;
  public void init() {
  buffer = new stringbuffer();
  additem("initializing... ");
  }
  public void start() {
  additem("starting... ");
  }
  public void stop() {
  additem("stopping... ");
  }
  public void destroy() {
  additem("preparing for unloading...");
  }
  void additem(string newword) {
  system.out.println(newword);
  buffer.append(newword);
  repaint();
  }
  public void paint(graphics g) {
  //draw a rectangle around the applet's display area.
  g.drawrect(0, 0, size().width - 1, size().height - 1);
  //draw the current string inside the rectangle.
  g.drawstring(buffer.tostring(), 5, 15);
  }
  南宁市的周重亿问:我想让打开的文件对话框不去选择一个文件而是去选择一个目录,确定后可以返回该目录的完整路径。我该怎么办?
  答:你可以先选择文件,再返回文件所在的目录。或者写一个class来继承jfilechooset类。具体程序的编法限于篇幅我就不给出了。
  深圳市的路国德问:java 程序中如何执行其他的程序? 使用了 exec() 之后,怎样才能使用 i/o redirection ?
  答:以unix 为例(windows系统相似):
  
  import java.io.*;
  import java.util.*;
  class ioredirect {
  public static void main(string argv[]) {
  try {
  string[] command = {"/bin/sh", "-c", "/bin/ls > out.dat"};
  process p = runtime.getruntime().exec(command);
  p.waitfor();
  system.out.println("return code: " + p.exitvalue());
  } catch (ioexception e) {
  system.err.println("io error: " + e);
  } catch (interruptedexception e1) {
  system.err.println("exception: " + e1.getmessage());
  }
  }
  }
  北京市的张永林问:何处可以下载jsdk?
  答:你可以在这个地方找到jsdk:http://java.sun.com/products/servlet/download.html
  南昌市的朱捷问:如何用java语言实现打印?
  答:如果你使用jdk1.1.x,可以试试这样做:
  #import java.awt.*;
  public class print{
  public static void main(string args[])
  {
  frame f = new frame("tet");
  f.pack( );
  printjob pj = f.gettoolkit().getprintjob(f, "print1", null);
  if( pj != null){
  graphics g = pj.getgraphics( );
  g.filloval(5,5,150,100);
  g.dispose( );
  pj.end();
  }
  system.exit(0);
  }
  }
  武汉市的赵嘉问:请问如何用beep() 函数?
  答:在循环语句里加入:
  tookit.getdefaulttookit().beep(),
  就可以了。
  绵阳市的杨冰问:在windows98下装apache1.3.9加jserv和gnujsp1.0、jdk1.2.2、jsdk2.0时发现中文无法正常显示。要么出现乱码,要么出错。请问我该怎么办?
  答:你必须在安装中注意以下几点:
  1.修改区域设置:在控制面版中选择区域设置,设为英语(美国)。然后重新启动系统,一切就都正常了。
  2.在jsp页中加入一条语句:
  <%@ page contenttype="text/html;charset=gb2312" %>
  jsp显示就正常了。
  3.在编译servlet和jsp时加入代码选项。编译servlet使用javac -encoding iso8859_1 myservlet.java
  在jsp的zone配置文件中,修改编译参数为:
  compiler=builtin-javac -encoding iso8859_1
  使用这种方法后,不需要作其他的改动就可以正常显示中文了。
  4:在servlet源程序中加入代码变换语句。如
  try{
  out.println(new ( (new string("你好")).getbytes("gbk"),"iso8859_1"))
  }
  catch( unsupportedencodingexception e)
  {
  .......
  }
  此外,使用这种方法一定要注意捕获unsupported encoding exception是否异常。
  厦门市的李文华问:当用servlet来处理http请求并产生返回的html页面时,如何使html页面中的中文字符能够正常显示?
  答:javax.servlet.http.httpresponse类用于产生返回页面。通过httpresponse定义的方法getoutputstream()可以获得servletoutputstream的实例,这样你就可以利用servletoutputstream.write方法向输出流中写入返回页面的内容。但是servletoutputstream使用的是缺省的编码方式,如果要使返回页面中的中文字符能够正常显示,最好显示地指定所用的字符编码方式。 通常需要构造一个 outputstreamwriter。
  例程如下:
  public void doget (httpservletrequest req, httpservletresponse res) throws servletexception, ioexception
  {
  res.setcontenttype("text/html");
  servletoutputstream out = res.getoutputstream();
  outputstreamwriter ow = new outputstreamwriter(out,"gb2312");
  ow.write("test");
  ow.flush();
  ow.close();
  }
  成都的刘波问:为什么我在server端发出的汉字在client端却成了乱码?
  答:如果是基于1.1api的,就应该用reader和writer,它们有内码unicode自动转换功能。如你的网络传输用的是bufferedreader与bufferedwriter,文件操作用的是filereader与filewriter或其他1.0api,采用1.1api就不会有问题了。