xjtu bbs 上的FAQ

 1.有关CLASSPATH的问题:
     11.sun的官方解释:
            http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/classpath.html
   
     12. 一定要设置CLASSPATH=.;xxxx;xxxx(注意前面的.)
   
     13.CLASSPATH的路径中可以有重复的类,调用是按照顺序匹配,因为ClassLoader
        一找到类就返回
   
     14.CLASSPATH=d:/java/myproject/*.jar 错
        不能用*.jar,必须指明jar的名称且其先后排列是有意义的
   
     15.到底如何知道自己在哪个目录呢?
            写个测试程序:
            System.getProperties().get("user.dir");//得到当前程序运行的根目录
            getClass().getResource(".");//得到当前对象所在目录  
   
     16.linux下怎么设置CLASSPATH 呢?
            step1. 更改当前目录的.bashrc
                   在最后加上 export CLASSPATH=.:xxxx:xxxx
            step2. 保存后在terminal输入 source .bashrc
 
     17.出现:Exception in thread "main" java.lang.NoClassDefFoundError:
        Graph 怎么办 ?
            step1.检查CLASSPATH又没写"."
            step2.检查源程序有没有写package
            step3.如果上面都正确的话在当前目录写Helloworld测试
 
     18.使用到别的包,如:"org.gjt.mm.mysql.Driver"找不到包怎么办?
            学会用google


2.乱码相关的问题:
21.示例:
                 import java.io.*;
                 public class BUG {
                     public static void main(String args[]) {
                          FileInputStream fi;
                          DataInputStream di;
                          char c;

                          try {
                               fi = new FileInputStream("data.txt");
                               di = new DataInputStream(fi);
                               while (true) {
                                  c = di.readChar();
                                  System.out.print(c);
                                  System.out.flush();
                                  if (c == '/n') break;
                                }
                          fi.close();
                              } catch (Exception e) { }
                          System.exit(0);
               }
          }
         输出的是乱码,原因是readChar()读入的是16位的unicode字符,
         而System.out.print()总是将其当8位的ISO-8859-1
         最好使用BufferedReader中的readLine()方法
 
22.页面中的乱码:
            在基于JAVA的编程中,经常会碰到汉字的处里及显示的问题,
            比如一大堆乱码或问号,这是因为JAVA中默认的编码方式是
            UNICODE,而中国人通常使用的文件和DB都是GB2312或者BIG5
            等编码,故会出现此问题。
   
           1、在网页中输出中文
               JAVA在网络传输中使用的编码是"ISO-8859-1",故在输出时需要进行转化
               String  str="中文";
               str=new  String(str.getBytes("GB2312"),"8859_1");
               但如果在编译程序时,使用的编码是“GB2312”,
               且在中文平台上运行此程序,不会出现此问题,一定要注意。
     
           2、从参数中读取中文
               这正好与在网页中输出相反如:
               str=new  String(str.getBytes("8859_1"),"GB2312");
     
           3、操作DB中的中文问题
               一个较简单的方法是:在“控制面扳”中,把“区域”设置为
               “英语(美国)还会出现乱码,还可进行如下设置:
                取中文时:str=new  String(str.getBytes("GB2312"));
                向DB中输入中文:str=new  String(str.getBytes("ISO-8859-1"));

3.String类的一点说明:
         
           String a = "test";
           String b = "test";
           则a==b,a.euqals(b)都输出ture
           String a="test";
           String b=new String("test");
           则a==b输出false,a.equals(b) 输出true;
           因为String a="test";建立了两个对象,相当于:
           String temp=new String("test");
           String a=temp;
           而String b=new String("test")
           只建立了一个对象.

4.数据转换相关问题:
41. 字符串转换成整数:
                String MyNumber ="1234";
                int MyInt = Integer.parseInt(MyNumber);

42. 整数转换成字符串:
                int  MyInt = 1234;
                String MyString = "" + MyInt;

43. 十进制整数转换成二进制整数,返回结果是一个字符串:
                Integer.toBinaryString(int i);


44.其它进制到十进制的转换
                五进制字符串14414转换成十进制整数,结果是1234:
                System.out.println(Integer.valueOf("14414", 5);
                Integer和Long提供的valueOf(String source, int radix)方法,可以
                将任意进制的字符串转换成十进制数据。

5.IDE相关:
   (以下是个人观点):
     众所周知,javaIDE满街都是,如果你想成为一个优秀的javaer,
     而不是仅仅把java当做一个工具来使用,那么刚开始的时候一定
     不要用集成的IDE,一定要从jdk的基础命令中理解java编译运行的过程
     推荐: linux:     vim+jdk5+ant
           windows:   editplus+jdk5+ant
     当你已经基本掌握java.util中的基本数据结构与算法,需要进行gui和web设计时:
     推荐:eclipse(btw.一定要明白IDE为你做了什么)
   p.s.相信我,我可是深受IDE之苦阿!


Q:jdk中bin下面的命令是干什么的?
A:javac 编译用的
  appletviewer 是看applet用的
  jdb 是调试用的
  jar 是打包用的
  javaw 是没有console窗口跑java的
  javah 是帮助

Q:如何显示源程序中使用的所有类?
A:javac -verbose source.java

Q:如何编译多个.java?
A:1.javac -d . a.java b.java c.java(.是当前目录)
  2.有个工具叫ant

Q:如何实现动态数组?
A:Vector,ArrayList
   
Q:如何实现多维向量(动态多维数组,广义表)?
A:1.Vector v1=new Vector();
    Vector v2=new Vector();
    HashTable ht=new HashTable();
    ht.put("guahu1",v1);
    ht.put("guahu2",v2);
 
  2.Vector v1 = new Vector();
    Vector v2 = new Vector();
    v1.add(v2);

Q:如何在程序中调用系统命令?
A:String cmd="ls";
  Runtime.getRuntime().exec(cmd);
 
Q:如何反编译.class文件?
A:有个程序叫jad
  jad -a source.class后生成source.jad
  然后把source.jad重命名为source.java

Q:如何把.class 或 .jar转换为.exe
A:请住手!你违背了java的原则
  如果你真的要这样,那就...
  用Excelsior JET制作exe文件,
  http://www.excelsior-usa.com/jet.html下载

Q:java里有什么简单易用的输入对话框?
A:JOptionPane.showInputDialog("Say Hello");
  import java.swing.*;
     
Q:eclipse中如何导入javadoc:
A:下载jdk_docs.jar解包 $JDK_HOME/lib
  设置 eclipse 的 window -> preferences -> install JRE ->
  把这个设置成使用jdk目录下的,按‘编辑’按钮,
  里面有jdkdoc的目录选择栏
  光标转移到类的方法上,使用shift-F2,查看--
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值