码迷,mamicode.com
首页 > 编程语言 > 详细

Java 面试题

时间:2014-05-23 08:37:33      阅读:311      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   c   code   java   

1.解释实现多线程的几种方法? 

一 Java 线程可以实现 Runnable 接口或者继承 Thread 类来实现,当你打算多重继承时,优先选择实现 Runnable。 

2.Thread.start ()与 Thread.run ()有什么区别? 

Thread.start ()方法(native)启动线程,使之进入就绪状态,当 cpu 分配时间该线程时,由 JVM 调度执行 run ()方法。 

3.为什么需要 run ()和 start ()方法,我们可以只用 run ()方法来完成任务吗? 

我们需要 run ()&start ()这两个方法是因为 JVM 创建一个单独的线程不同于普通方法的调用,所以这项工作由线程的 start 方法来完成,start 由本地方法实现,需要显示地被调用,使用这俩个方法的另外一个好处是任何一个对象都可以作为线程运行,只要实现了 Runnable 接口,这就避免因继承了 Thread 类而造成的 Java 的多继承问题。 

Collection和Collections的区别   

 
 

Collection是个java.util下的接口,它是各种集合结构的父接口。

Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。

Collection 层次结构中的根接口。Collection 表示一组对象,这些对象也称为 collection的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 SetList)实现。此接口通常用来传递 collection,并在需要最大普遍性的地方操作这些 collection。

Collection  
├List  
│├LinkedList  
│├ArrayList  
│└Vector  
│ └Stack  
└Set 

collections 此类完全由在 collection 上进行操作或返回 collection 的静态方法组成。它包含在 collection 上操作的多态算法,即“包装器”,包装器返回由指定 collection 支持的新 collection,以及少数其他内容。 如果为此类的方法所提供的 collection 或类对象为 null,则这些方法都会抛出 NullPointerException

 Java代码

  1. import java.util.ArrayList;   
  2. import java.util.Collections;   
  3. import java.util.List;   
  4.   
  5. public class TestCollections {   
  6.        
  7.     public static void main(String args[]) {   
  8.         //注意List是实现Collection接口的   
  9.         List list = new ArrayList();   
  10.         double array[] = { 11211123456231 };   
  11.         for (int i = 0; i < array.length; i++) {   
  12.             list.add(new Double(array[i]));   
  13.         }   
  14.         Collections.sort(list);   
  15.         for (int i = 0; i < array.length; i++) {   
  16.             System.out.println(list.get(i));   
  17.         }   
  18.         // 结果:23.0 111.0 112.0 231.0 456.0   
  19.     }   
  20. }  
 

 

 

最有效率的方法算出2乘以8等於几?

用移位运算 int a=2<<3;
a就是2乘以8 最后结果是16 这是最省内存 最有效率的方法

这个方法确实高效率的。我来解释一下:
2的二进制是10 在32位存储器里面是0000 0000 0000 0010
左移三位后变成 0000 0000 0001 0000 也就是16

再来观察左移三位,需要消耗3个机器时钟,如果能在一个时钟内完成,效率就更高了。
a=2 & 16 只要一个机器时钟。^_^,效率是不是更高呢?

Java 面试题,布布扣,bubuko.com

Java 面试题

标签:style   class   blog   c   code   java   

原文地址:http://www.cnblogs.com/dnxf/p/3738079.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!