济南网页设计|自助建站济南网站建设|聊城网站建设济南网站制作|济南网站优化 http://www.mzwkj.com www.tuanqv.com

JDK API方面问题连载

如何将默认的系统输出重定向到文件?
 System类变量out对象是系统默认的标准输出,err对象是默认的出错信息输出,一般情况下,这两个对象都输出信息到console,但通过System的setErr和setOut可以重定向到文件或其它流中,如下代码:
       PrintStream st = new PrintStream(new FileOutputStream("output.txt"));
        System.setErr(st);
        System.setOut(st);

简单的说,abstrace class和interface有哪些不同?
抽象类可以包函具体的方法体,在接口中这是不能的;你可以通过extends操作来继承一个abstrace class,对于接口,可以通过implements来实现多个接口.

使用synchronized时,为何尽量使用同步块而不要同步方法?
   简单的说,包含在synchronizce中的代码在同一时间,就只能有一个Thread来访问;当同步的内容多时,会影响性能,或带来死锁等问题;而同步块会缩小范围,减少出错的机会;同步块:
       synchronized(lockObject){
                  your code here......
                 }
         同步方法:
         public synchronized vod yourMethod(){
                    your code here......
                  }

transient关键字是什么意思?
     当一类变量使用transient修修饰时,标志者这个类变量不能被序列化(serialized);且当de-serialized时,这个类变量只能得到一个它的数据类型所决定的初始值,比如某个类的变量:public  transiend int tInt=100; 当de-serialized时,得到的值是int的默认初始值0;

如何强制执行vm的垃圾回收(garbage collection)?
   可以通过调用System.gc()执行,但JVM并不保证这个执行马上实现,具体由VM内部调度;

什么情况下需要一个显式的类型转换?
 当将类的一个父类对象引用到一个这引类或这个类的子类时,需要显式的转换,如:
     Object obj; Customer c; b=(Customer)obj;
反向时(将子类指向父类的类型变量),则不需要显式转换,系统会自动完成。

Thread类的sleep()和wait()有何不同?
 例如:sleep(1000)会精确的控制Thread停止1秒;wait(1000)具有同样的效果,但可通过notify()或者notifyAll()打断这个waiting。wait()方法是定义在Object类中,也就是说所有的对象都具有这个方法;而sleep()只是定义在Thread类中。

构造器(constructors)和其它的方法(method)有什么不同?
 constructors必须有一个和类同名的名字而且不返回任何值,对一个对象来说它的constructors只调用一次,而其它方法可以多次调用!

java中package有什么用处?
 当一个项目有多个模块是,这是一种组织文件的好办法,比如一个org.netjava.db.*下面放所有DB相类,org.NetJava.uitl.*下面放所有公用的工具类;另外,使用package结构可以保持类命令的唯一性:在不同的package中,可以有同名的类而不冲突;使用package还可以保户类数据,避免不正确的访问。

如何设置某一个package中类的环境变量,以便使用这个类?
可以将这个jar文件的绝对路径或class文件目录加入到classpath变量中,如有一个类User在包org.netjava.user中,其位置是c:/dev/org/netjava/user/User.class,就需要将c:/dev加到classpath中,如果这个类中有一个main方法,则可在系统中调用,如
 c:/java org.netjava.user.User

J2SDK1.6和J2SDK6.0有什么不同?
 其实这两者是同一样东东,一般来说1.6是开发版本号,6.0是产品版本号。

这段代码有什么问题吗?
     try{
       读文件的操作。。。
        }
        catch(IOException ef){}
        catch(FileNotFoundException ff){}
   这段代码的问题是catch声明异常的顺序出错了,FileNotFoundException是IOException的一个子类(都是Exception的子类),所以应先catch的异常是FileNotFoundException。

一个定义在method中的inner class可否访问这个方法体内的变量?
 可以,当这个变量定义为final时,如:
     public void create(){
             final Student student=new Student();
              Teacher teach=new Teacher(){
                      teach.stu=student;
                       };
                 } 

Vector类和ArrayList的关键不同点是?
     Vector内在支持线程安全访问,是一个同步对象,而ArrayList是没有同步的。

队列(queue)和stack的主要是同是?
    static中的对象的存取规则是LIFO(Last in-First out),而queues是FIFO--先进先出。
 

posted on 2006-12-20 15:59  路大侠  阅读(210)  评论(0编辑  收藏  举报

导航

济南户外拓展|企业户外拓展 http://www.tuanqv.com