1.在Java中,以下关于方法重载和方法重写描述正确的是
 
 A. 方法重载和方法的重写实现的功能相同 
 
 B. 方法重载出现在父子关系中,方法重写是在同一类中 
 
 C. 方法重载的返回值类型必须一致,参数项必须不同
 
  D.方法重写的返回值类型必须相同或相容
 
 
 
  答:D
 
 
 
  析:
 
 
 
 
  2.下列哪些语句关于内存回收的说明是正确的
 
 
 
   A. 程序员必须创建一个线程来释放内存 
  
 
  
    B.内存回收程序负责释放无用内存
   
 
   
    C. 内存回收程序允许程序员直接释放内存 
   
 
   
     D. 内存回收程序可以在指定的时间释放内存对象 
    
 
    
     答:B
    
 
    
     析:
    
 
    
     A. 程序员不需要创建线程来释放内存
     
C. 也不允许程序员直接释放内存
D. 不一定在什么时刻执行垃圾回收
 
     
    C. 也不允许程序员直接释放内存
D. 不一定在什么时刻执行垃圾回收
      3.在 java 中 , 以下__类的对象以键 - 值的方式存储对象 
     
 
     
      A. java,util.List 
     
 
     
      B. java,util.ArrayList
     
 
    
 C.java,util.HashMap
 
  D. java,util.LinkedList 
 
 
 
  答:C
 
 
 
  析:
 
 
 
  Map以key-value形式保存,HashMap、HashTable继承自Map
 
 
 
  ArrayList底层以数组方式存储
 
 
 
  LinkedList以链表形式存储
 
 
  
 
   4.下列说法正确的是
  
 
  
   A.
   形式参数可被字段修饰符修饰
  
 
  
    B. 形式参数不可以是对象 
   
 
   
    C. 形式参数为方法被调用时真正被传递的参数 
   
 
   
    D. 形式参数可被视为local variable 
   
 
   
    答:D
   
 
   
    析:
    
A.对于形式参数只能用final修饰符,其它任何修饰符都会引起编译器报错,但是用这个修饰符也有一定的限制,就是在方法中不能对参数做任何修改,所以一般情况下,一个方法的形参不用final修饰
 
   A.对于形式参数只能用final修饰符,其它任何修饰符都会引起编译器报错,但是用这个修饰符也有一定的限制,就是在方法中不能对参数做任何修改,所以一般情况下,一个方法的形参不用final修饰
    B.形参可以是对象,如果形参是对象,那么形参里面存储的就是对象的引用
    
C.真正被传递的是实参的值,而不是形参
 
   C.真正被传递的是实参的值,而不是形参
    D.local variable代表的含义是局部变量
   
 
    
   
    5.以下语句的执行结果是什么
   
 
   
     1+”10”+3+”2” 
    
 
    
      A.”11032”
     
 
    
      B. “16” 
     
 
     
      C. 16 
     
 
     
      D. “32101” 
     
 
     
      答:A
     
 
     
      析:在遇到string类型之前,int间使用“+”还是表示数值的相加,但是遇到第一个string后,后面就都是按string类型来了,变成字符串的拼接。
     
 
      
     
       6.A派生出子类B,B派生出子类C,并且在java源代码中有如下声明,以下哪个说法是正确的
      
 
      A a0 = new A();
A a1 = new B();
A a2 = new C(); 
       
        A. 第1行,第2行和第3行的声明都是正确的 
       
 
       
        B. 第1,2,3行都能通过编译,但第2,3行运行时出错
       
 
       
        C.
        第1,2行能通过编译,但第3行编译出错 
       
 
       
         D. 只有第1行能通过编译 
        
 
        
         答:A
        
 
        
         析:
        
 
        
         Java虽然是单继承,但是继承具有传递性(间接继承)。
        
 
        
         C继承B,B继承A,用子类对象实例给父类类型引用赋值,会进行自动转型。
        
 
        
         比如:所有的类都是Object类的子类。Object obj = new everything();
        
 
         
        
         7.在 Java 7 中,下列哪个说法是正确的
        
 
        
         A.
         ConcurrentHashMap 使用 synchronized 关键字保证线程安全
        
 
        
          B. HashMap 实现了 Collection 接口 
         
 
         
          C. Arrays.asList 方法返回 java.util.ArrayList 对象 
         
 
         
          D. SimpleDateFormat 对象是线程不安全的
         
 
         
          答:D
         
 
         
          析:
         
 
         
          A.hashMap在单线程中使用大大提高效率,在多线程的情况下使用hashTable来确保安全.
         
 
         
          hashTable中使用synchronized关键字来实现安全机制,但是synchronized是对整张hash表进行锁定即让线程独享整张hash表,在安全同时造成了浪费;
          
ConcurrentHashMap使用的是Segement(继承自 ReentrantLock )采用分段加锁的机制来确保安全.
 
         ConcurrentHashMap使用的是Segement(继承自 ReentrantLock )采用分段加锁的机制来确保安全.
          B.HashMap实现的是Map接口.
         
 
         C.Arrays.asList方法返回List列表, public static <T> List <T> asList (T... a);Arrays.asList()将一个数组转化为一个List对象,这个方法返回一个ArrayList类型的对象, 这个ArrayList类并非java.util.ArrayList类,而是Arrays类的静态内部类!用这个对象对列表进行添加删除更新操作,就会报UnsupportedOperationException异常。
D.SimpleDateFormat查看Java源码可以看到,它的方法都不是Synchronized的,也没有采用其他的同步措施.
8.给定代码,第三行将输出什么
public class SwitchTest{ //1
   public static void main(String[] args) {//2
       System.out.println("value=" + switchit(4));//3
   } //4
   public static int switchit(int x) {
       int j = 1;
       switch (x) {
          case 1 : j++;
          case 2 : j++;
          case 3 : j++;
          case 4 : j++;
          case 5 : j++;
          default : j++;
       }
       return j + x;
   }
} 
          
           A.value=6
          
 
          
           B. value=8 
          
 
          
           C. value=3 
          
 
          
           D. value=5 
          
 
          
           E. value=4 
          
 
          
           答:B
          
 
          
           析:switch代码块中没有break,从case 4开始一直执行到最后,j自加3次变成了4,结果返回8。
          
 
           
          
            9.关于以下程序段,正确的说法是
           
 
           String s1="abc"+"def";//1
String s2=new String(s1);//2
if(s1.equals(s2))//3
   System.out.println(".equals succeeded");//4
if(s1==s2)//5
   System.out.println("==succeeded");//6 
            
             A. 行4,行6都不执行 
            
 
            
             B. 行6执行,行4不执行 
            
 
            
              C.行4执行,行6不执行
             
 
             
               D. 行4,行6都将执行
              
 
              
               答:C
              
 
              
               析:equals()比较的是字符串的内容,==比较的是内存地址值。 
               
 
              
               10.Java 多线程有几种实现方法
              
 
              
                A. 继承Thread类 
               
 
               
                B. 实现Runnable接口 
               
 
               
                C. 实现Thread接口
               
 
               
                D. 以上都不正确 
               
 
               
                答:AB
               
 
               
                析:
                
   
                
              java多线程实现方式主要有三种:继承
                Thread类、实现
                Runnable接口、使用
                ExecutorService、
                Callable、
                Future实现有返回结果的多线程。
               


















