vlambda博客
学习文章列表

收藏夹舍不得删的几道Java面试题

1、打印昨天的当前时刻。

public   class   YesterdayCurrent {
  public static void main(String[] args){
    Calendar cal = Calendar.getInstance();
    cal.add(Calendar.DATE, -1);
    System.out.println(cal.getTime());
    }
}


2、error 和exception 有什么区别? 

error 表示系统级的错误和程序不必处理的异常,是恢复不是不可能但很困难的情况下的一种严重问题;比如内存溢出,不可能指望程序能处理这样的情况;exception 表示需要捕捉或者需要程序进行处理的异常,是一种设计或实现问题;也就是说,它表示如果程序运行正常,从不会发生的情况。

3、运行时异常与一般异常有何异同?

异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java 编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。

4、List,Set,Map 是否继承自Collection 接口?

List,Set 是;Map 不是。

5、List、Map、Set 三个接口,存取元素时,各有什么特点?

List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存key-value 值,value 可多值。

6、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 

多线程有两种实现方法,分别是继承Thread 类与实现Runnable 接口,同步的实现方面有两种,分别是synchronized,wait 与notify。

7、简述synchronized 和java.util.concurrent.locks.Lock 的异同?

主要相同点:Lock 能完成synchronized 所实现的所有功能;
主要不同点:Lock 有比synchronized 更精确的线程语义和更好的性能。synchronized 会自动释放锁,而Lock 一定要求程序员手工释放,并且必须在finally 从句中释放。

8、什么是ORM?

对象关系映射(Object—Relational Mapping,简称ORM)是一种为了解决面向对象与面向关系数据库存在的互不匹配的现象的技术;简单的说,ORM 是通过使用描述对象和数据库之间映射的元数据,将java 程序中的对象自动持久化到关系数据库中;本质上就是将数据从一种形式转换到另外一种形式。

9、Request 对象的主要方法?

setAttribute(String name,Object):设置名字为name 的属性值

getAttribute(String name):返回由name 指定的属性值

getAttributeNames():返回request 对象所有属性的名字集合(枚举)

getCookies():返回客户端的所有Cookie 对象,结果是一个Cookie 数组

getCharacterEncoding():返回请求中的字符编码方式

getContentLength():返回请求的Body 的长度

getHeader(String name):获得HTTP 协议定义的文件头信息

getHeaders(String name):返回指定名的request Header 的所有值(枚举)

getHeaderNames():返回所有request Header 的名字(枚举)

getInputStream():返回请求的输入流,用于获得请求中的数据

getMethod():获得客户端向服务器端传送数据的方法

getParameter(String name):获得客户端请求中传送的name 指定的参数值

getParameterNames():获得客户端传送给服务器端的所有参数的名字(枚

举)

getParameterValues(String name):获得有name 指定的参数的所有值

getProtocol():获取客户端向服务器端传送数据所依据的协议名称

getQueryString():获得查询字符串

getRequestURI():获取发出请求字符串的客户端地址

getRemoteAddr():获取客户端的IP 地址

getRemoteHost():获取客户端的名字

getSession([Boolean create]):返回和请求相关Session

getServerName():获取服务器的名字

getServletPath():获取客户端所请求的脚本文件的路径

getServerPort():获取服务器的端口号

removeAttribute(String name):删除请求中的一个属性

10、详细描述MVC。

基于Java 的Web 应用系统采用MVC 架构模式,即model(模型)、view(视图)、control(控制)分离设计;这是目前WEB 应用服务系统的主流设计方向。

Model:即处理业务逻辑的模块,每一种处理一个模块;

View:负责页面显示,显示MODEL 处理结果给用户,主要实现数据到页面转换过程;

Control:负责每个请求的分发,把FORM 数据传递给MODEL 处理,把处理结果的数据传递给VIEW 显示。