2016一份最新的java笔试题和答案

近期,某大型企业的高级java开发工程师的面试题,现给出试题和答案,供大家参考,如有不对之处,请大家指教。

选择题

1)servlet处理请求的方式? 以响应的方式

2)抽象类代码的编写,哪行代码不产生编译出错?A

public abstract class MyClass{
 public int constInt=5;
 (________)
 public void method(){
 }
}

A 、  public abstract void method (int a) ;
B 、  constInt=constInt+5;    声明阶段不能赋值
C 、  public int method () ;  抽象类可以重载,重载输入参数要不一样,与返回参数无关,这体现了java的多态性
D 、  public abstract void anothermethod (){} ;  抽象方法无{}

3)下面说法正确的有(B)
A class中的constructor不可以省略
B constructor必须与class同名,但方法不能与class同名
C constructor在一个对象被new时执行
D 一个class只能定义一个constructor

4)java中集合类型包含ArrayList,LinkedList,HashMap等类,下面描述错误的是(B)
A ArrayList和LinkedList均实现了List接口
B 添加和删除元素时,ArrayList的表现更佳
C ArrayList的访问速度比LinkedList快
D HashMap的实现MAP接口,它允许任何类型的键和值对象并允许将null作为键或值

多选题

  1. 下列哪些情况可以终止当前线程的运行?(AB)
    A 抛出一个异常
    B 当该线程调用sleep()方法时
    C 当创建一个新线程时
    D 当一个优先级高的线程进入就绪状态时。

  2. 下面关于java语言实例方法和类方法的说法,哪几项是对的?(BC)
    (在方法前面加上static就成了类方法,static只能操作static)
    A 实例方法可以直接通过类名调用。
    B 类方法可以直接通过类名调用。
    C 实例方法可以操作实例变量也可以操作类变量。
    D 类方法可以操作实例变量也可以操作类变量。

  3. 关于IOC的理解,正确的是(ABD)
    A 控制反转 B 对象被动的接口依赖类
    C 对象主动的去找依赖类 D 一定要用接口

8 以下哪些对接口methoda的定义是正确的?AC
A void methoda();
B public final double methoda(); // final 不能用
C public double methoda();
D static void methoda(double d1); //static不能用

9 下列是jsp作用域的通信对象的有(ABD)+page
A session B cookie C application D pagecontext

10 以下关于final关键字说法错误的是(AD)
A final是java的修饰符,可以修饰类、接口、抽象类、方法和属性
B final修饰变量不允许被再次赋值从而避免了复杂的协议转换
C final修饰的类肯定不能被继承
D final修饰的方法不能被重载

一、final关键字可以用来修饰类、方法、变量。各有不同。
A、修饰类(class)。 ** 1、该类不能被继承。 2、类中的方法不会被覆盖,因此默认都是final的。 3、用途:设计类时,如果该类不需要有子类,不必要被扩展,类的实现细节不允许被改变,那么就设计成final类
B、修饰方法(method) 1、该方法可以被继承,但是不能被覆盖。 2、
用途:一个类不允许子类覆盖该方法,则用final来修饰 3、好处:可以防止继承它的子类修改该方法的意义和实现;更为高效,编译器在遇到调用fianal方法转入内嵌机制,提高了执行效率。 4、注意:父类中的private成员方法不能被子类覆盖,因此,private方法默认是final型的(可以查看编译后的class文件)
C、修饰变量(variable) ** 1、用final修饰后变为常量。包括静态变量、实例变量和局部变量
这三种。 2、特点:可以先声明,不给初值,这种叫做final空白。但是使用前必须被初始化。一旦被赋值,将不能再被改变。
**D、修饰参数(arguments) ** 1、用final修饰参数时,可以读取该参数,但是不能对其作出修改
二、final关键字不能用来抽象类和接口。

11 接口和抽象类描述正确的是 (BC)
A 抽象类没有构造函数
B 接口没有构造函数
C 抽象类不允许多继承
D 接口中的方法可以有方法体

12 以下可以正确获取结果集的有(AD)
A Statement sta=con.createStatement();
ResultSet rst=sta.excuteQuery("select * from book");
B Statement sta=con.createStatement("select * from book");
ResultSet rst=sta.excuteQuery();
C PreparedStatement pst=con.preparedStatement();
ResultSet rst=sta.excuteQuery("select * from book");
D PreparedStatement pst=con.preparedStatement("select * from book");
ResultSet rst=sta.excuteQuery();

问答器

** 用一个sql语言查询每门课程大于80分的学生姓名
name kecheng fenshu
张三 语文 81
张三 数学 74
李四 语文 76
李四 数学 90
王五 语文 81
王五 数学 100
王五 英语 90

** 什么是java线程池?在什么情况下使用线程池?**
java线程池就是java用来管理线程的池子。限制线程的数量

当程序并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,
那么就需要频繁地创建销毁一些相同的线程时,可以使用线程池来管理。
线程池的优点
1)避免线程的创建和销毁带来的性能开销。
2)避免大量的线程间因互相抢占系统资源导致的阻塞现象。
3}能够对线程进行简单的管理并提供定时执行、间隔执行等功能。

** 写出一个单例模式。

public class Singleton  {       
   private static final Singleton singleton = null;   
   private Singleton(){ }        
   public static Singleton getInstance()   {            
     if (singleton== null)  {     
        synchronized (Singleton.class)  {       
           if (singleton== null)  {          
              singleton= new Singleton();    
           }   
        }  
     }           
    return singleton;        
   }    
}  
或者
```python

public class Singleton    {        
  private static final Singleton singleton = new Singleton();       

   private Singleton()  {   }       
   public static Singleton getInstance()   { 
              return singleton;  
   }    
} 

sleep() 和wait() 的区别

Java程序中wait 和 sleep都会造成某种形式的暂停,它们可以满足不同的需要。wait()方法用于线程间通信,如果等待条件为真且其它线程被唤醒时它会释放锁,而sleep()方法仅仅释放CPU资源或者让当前线程停止执行一段时间,但不会释放锁。需要注意的是,sleep()并不会让线程终止,一旦从休眠中唤醒线程,线程的状态将会被改变为Runnable,并且根据线程调度,它将得到执行。
总结: sleep()保持对象锁、wait()释放对象锁。

附加题

** 假如有一个投票支持页面,用户点击支持按钮,限定一个小时内不能再次点击,一小时后可以再次点击,后面以此类推,请问如何实现

** 如有要采集一个页面的PV、UV数量,应该如何设计?(PV页面展示次数;UV独立访客数)

补充

servlet和 filter的区别

1、servlet:servlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层。
2、filter:filter是一个可以复用的代码片段,可以用来转换HTTP请求、响应和头信息。Filter不像Servlet,它不能产生一个请求或者响应,它只是修改对某一资源的请求,或者修改从某一的响应。


友情提示

我是和奇谷朴,一个在帝都周末自己选择加班的有志好青年,读完我的文章如果有收获,记得打赏、关注和点赞哦!么么哒!!

你可能感兴趣的:(2016一份最新的java笔试题和答案)