首页 | 源码下载 | 网站模板 | 网页特效 | 广告代码 | 网页素材 | 字体下载 | 书库 | 站长工具
会员投稿 投稿指南 RSS订阅
当前位置:主页>网络编程>java教程>资讯:Java面试技巧:Java面试题集锦(三)

Java面试技巧:Java面试题集锦(三)

www.jz123.cn  2009-09-08   来源:   IT专家网    责任编辑(袁袁)    我要投递新闻

  3.1 Static Nested Class 和 Inner Class的不同。

  Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。

  3.2 JSP中动态INCLUDE与静态INCLUDE的区别?

  动态INCLUDE用jsp:include动作实现 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。

  静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面

  3.3 什么时候用assert.

  assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的。

  3.4 GC是什么? 为什么要有GC?

  GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。

  3.5 short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

  short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型)

  short s1 = 1; s1 += 1;(可以正确编译)

  3.6 Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

  Math.round(11.5)==12

  Math.round(-11.5)==-11

  round方法返回与参数最接近的长整数,参数加1/2后求其floor.

  3.7 String s = new String("xyz");创建了几个String Object?

  两个

  3.8 设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1.写出程序。

  以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。


 package test;
  public class ThreadTest1 {
  private int j;
  public static void main(String args[]) {
  ThreadTest1 tt = new ThreadTest1();
  Inc inc = tt.new Inc();
  Dec dec = tt.new Dec();
  for (int i = 0; i < 2; i++) {
  Thread t = new Thread(inc);
  t.start();
  t = new Thread(dec);
  t.start();
  }
  }
  private synchronized void inc() {
  j++;
  System.out.println(Thread.currentThread().getName() + "-inc:" + j);
  }
  private synchronized void dec() {
  j--;
  System.out.println(Thread.currentThread().getName() + "-dec:" + j);
  }
  class Inc implements Runnable {
  public void run() {
  for (int i = 0; i < 3; i++) {
  inc();
  }
  }
  }
  class Dec implements Runnable {
  public void run() {
  for (int i = 0; i < 3; i++) {
  dec();
  }
  }
  }
  }

  3.9 Java有没有goto?

  Java中的保留字,现在没有在Java中使用。

  3.10 启动一个线程是用run()还是start()?

  启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。


上一篇:Java:使用Executors创建和管理线程 下一篇:面向对象建模与数据库建模的比较

评论总数:0 [ 查看全部 ] 网友评论


关于我们隐私版权广告服务友情链接联系我们网站地图