1. 用Spring实现一个功能:记录应用对每个Web请求的处理时间,并将这个视图最终显示到这个页面上。
考察知识点:
1)Spring的核心模块之一:MVC接收请求 :包括MVC模式及其好处,@Controller, @RequestMapping的用处。
2)Spring MVC中怎样实现类似Sevlet过滤器的功能。
1种是实现HandlerInterceptor接口,并复写preHandle(), postHandle(), afterCompletion()3个方法。
2种是继承HandlerInterceptorAdapter()抽象类并复写感兴趣的方法(上面3个方法中的任何方法)。
此处可延伸到设计模式的考察Adapter模式 - Java IO中大量使用了Adapter和Decorator模式。
3)处理程序的注册。
A: 注册到DefaultAnnotationHandlerMapping中
这个bean的作用是将拦截器应用到所有以@Controller注解标注的类,意思是说所有的控制器都要受到拦截器的控制。(可以在数组类型的interceptors属性中指定多个拦截器)
B:注册到SelectedAnnotaionHandlerMapping中
延伸到两种的优缺点,以及如果maven的官方repository中没有想要的jar包怎么办?
B1)写信到maven官方客服 B2)放到WEB-INF/lib 3)加到maven的repository中。
参见更为详尽的博客:http://josh-persistence.iteye.com/admin/blogs/1880324
4)视图解析器:为什么在URL请求中没有显示指定.jsp等后缀,Spring是怎样处理的。
如今,应用常常要以不同的格式(如XML,JSON,PDF或者XLS(Excel))提供相同的内容。检查请求中提供的扩展名(如果有)以及确定使用的视图技术应该留给视图解析器完成。
参见更为详尽的博客: http://josh-persistence.iteye.com/admin/blogs/1880324
2. 将一个文件内容复制到另一个文件中
考察知识点
1) Java中流的分类:字符流,字节流
2) 流的嵌套使用。
3) 为什么用BufferedReader 和 BufferedWriter
4) Java中怎样获取项目的路径
5) java中流的关闭(异常,顺序)
package com.ebay.cms.cms.test;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import org.junit.Test;
public class CMSDnsFileSyncTest extends CMSBaseTest {
// change to the real file path
private final static String PRO_FILE = "C:/cloudvipzonefile.txt";
private final static String LOCAL_FILE = "\\src\\test\\resources\\dnsfiles\\testzonefile.txt";
@Test
public void copyContents() {
try {
String projectPath = System.getProperty("user.dir");
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(PRO_FILE)));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(projectPath + LOCAL_FILE)));
String currentLineData = null;
while ((currentLineData = br.readLine()) != null) {
bw.write(currentLineData);
bw.newLine(); // line feed
}
bw.close();
br.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
注: String projectPath = System.getProperty("user.dir");
java项目中的路径是相对于项目的根目录
web项目中的文件路径视不同的web服务器不同而不同(tomcat是相对于 tomcat安装目录\bin)
3. Java中正则表达式的使用
怎样从字符串:{"_type":"FQDN","_oid":"51a867e4773da1128b1422ad"} 中取出这段数
1) String的indexOf和String类的subString()方法
2) 正则表达式的方法: [0-9A-Za-z]{24,}
3) java.util.regex.Pattern 模式类:用来表示一个编译过的正则表达式。
4. Spring中怎样实现页面国际化
考察点:
1) 国际化概念:同样的页面内容根据用户所在的区域显示出对应的信息。
2) 不需要为相同的页面内容开发不同版本的页面文件。
3) Spring中的LocalReslover解析器
AcceptHeaderLocalReslover, SessionLocaleResolver, CookieLocaleReslover.自定义Locale(实现LocaleResolver接口)并使用LocaleChangeInterceptor.
4) 使用外部的message信息。message.properties, message_de.properties, message_zh.propertises.
5) 使用外部的message信息需要实现MessageResource信息源接口。
参见更为详尽的博客: http://josh-persistence.iteye.com/admin/blogs/1881831
5. 为什么要使用Spring 3.X中内容协商处理器。
考察点:
1) Spring MVC - View: 视图解析器
2) 内容协商视图解析器的好处:
ContentNegotiatingViewResolver可以允许你拥有多个同名的逻辑视图,每个视图支持一种不同的媒体类型(例如HTML,PDF,XLS),然后由ContentNegotiatingViewResolver来解析最佳匹配。 它会使控制器的设计进一步简化了,因为再也没有必要用硬编码为某个媒体类型创建特定的逻辑视图(例如pdfReservation, xlsReservation, htmlReservation),而代之以单一的视图(reservation),让ContentNegotiatingViewResolver解析器确定最佳匹配。要么匹配reservation.pdf, reservation.html,reservation.xls,reservation.json,reserveration.jsp等。
3) 视图协商处理器的优先级应该比其它的视图解析器的优先级更高,这样当控制器处理结束后,返回逻辑视图,那么此时进行处理的就是内容协商处理解析器,该解析器可能会将视图解析分配给其它的解析器。
参见更为详尽的博客:http://josh-persistence.iteye.com/admin/blogs/1884206
6. Spring中怎样创建Excel和PDF视图
考察点
1) 将Excel和PDF看作Spring MVC中的特殊视图。
2) 处理Excel和PDF的常见程序库。
Spring将Excel和PDF文件的生成集成到MVC框架中。你可以将Excel和PDF文件看作特殊类型的视图,因此你就可以在控制器中一致性地处理web请求,并将数据添加到一个传递给Excel和PDF视图的模式中。这样,你就没有必要再去考虑处理复杂的HTTP响应头标和输出流了。
Spring MVC支持使用Apache POI程序库(http://poi.apache.org)或者JExcel API程序库(http://jexcelapi.sourceforge.net)生成Excel文件。对应的视图类分别是AbstractExceView和AbstractJExcelView。PDF文件由IText程序库(http://www.lowagie.com/iText/)生成,对应的视图类是AbstractPdfView类。
参见更为详尽的博客:http://josh-persistence.iteye.com/admin/blogs/1885286
7. Java获取ip地址:
考查点:网络知识: 用户使用代理的情况
public static String getUserRealIP(HttpServletRequest request) throws UnknownHostException {
String ip = "";
// 有的user可能使用代理,为处理用户使用代理的情况,使用x-forwarded-for
if (request.getHeader("x-forwarded-for") == null) {
ip = request.getRemoteAddr();
} else {
ip = request.getHeader("x-forwarded-for");
}
if ("127.0.0.1".equals(ip)) {
// 获取本机真正的ip地址
ip = InetAddress.getLocalHost().getHostAddress();
}
return ip;
}
详见博客:http://josh-persistence.iteye.com/admin/blogs/1886456
8. Java中可用于switch子句的类型:
byte, char, short, int及其封装类,enum类。
注:不能用于swtich子句的类型: 除byte, char, short,int之外的所有的封装类型,long, float, double,boolean及其封装类型。
详解博客:http://josh-persistence.iteye.com/admin/blogs/1886894
9. java中变量及其生命周期。
1) java变量分为成员变量和局部变量。
2) java类的成员变量有两种: (静态变量,实例变量)
1.被static关键字修饰的变量,叫类变量或者静态变量。
2.另一种没有static修饰,为实例变量
3. 静态变量生命周期就是类的开始和销毁,实例变量生命周期就是对象的开始和销毁.
3) 初始化
1:局部变量在使用前必须被程序员主动的初始化,
2:成员变量则会被系统提供一个默认的初始值。
所以在语法上,类的成员变量能够定义后直接使用,而局部变量在定义后先要赋初值,然后才能使用。
4) 引用:所有类的成员变量可以通过this来引用。
详见博客:http://josh-persistence.iteye.com/admin/blogs/1886949
10)Rest中哪种资源(Representation)操作方法不具有幂等性:
GET方法具有幂等性[指多个相同请求返回相同的结果] ——如果你发送了一个GET请求没有得到结果,你可能不知道原因是请求未能到达目的地,还是响应在反馈的途中丢失了。幂等性保证了你可以简单地再发送一次请求解决问题。幂等性同样适用于PUT(基本的含义是“更新资源数据,如果资源不存在的话,则根据此URI创建一个新的资源”)和DELETE(你完全可 以一遍又一遍地操作它,直到得出结论——删除不存在的东西没有任何问题)方法。POST方法,通常表示“创建一个新资源”,也能被用于调用任意过程,因而 它既不安全也不具有幂等性。
详见博客:http://josh-persistence.iteye.com/admin/blogs/1887382
11) 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
答:是值传递。当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的引用一个副本。指向同一个对象,对象的内容可以在被调用的方法中改变,但对象的引用(不是引用的副本)是永远不会改变的。
相关推荐
【神路信息Java面试题目详解】 1. **MVC全称及理解** MVC(Model-View-Controller)是软件设计中的一个经典架构模式,全称为模型-视图-控制器。它将应用程序分为三个主要部分:模型负责管理数据和业务逻辑,视图...
除了上述内容,面试题目还可能涉及更多细碎的知识点,包括但不限于:JSP和Servlet之间的生命周期;Java中的集合框架;以及对SSH2框架的了解等。对于数据库部分,面试题可能涉及对SQL语言的熟悉程度、数据库事务的...
`华为面试题.doc`通常会包含特定公司的面试题目,可能侧重于公司项目相关的技术栈,如分布式系统、微服务架构、大数据处理、云计算等。华为作为一家全球性的科技巨头,其面试题往往具有较高的难度和技术前瞻性。 `...
以下是一些常见的Java面试题目及其详细解答: 1. **继承、封装、多态**: - 继承是类与类之间的关系,允许一个类(子类)继承另一个类(父类)的特性,增强了代码的复用性。 - 封装是面向对象的核心特征之一,...
本压缩包集合了十多个不同的题库,涵盖了Core Java、JSP、jQuery、SQL以及SSH框架等多个核心领域,旨在帮助面试者全方位提升技能,以应对各大公司的面试挑战。 1. **Core Java**: Core Java是Java的基础,包括语法...
### Java 亚信上海 面试题解析 #### 笔试题知识点详解 ##### 1. 选择题(未提供具体题目) 由于题目未给出具体内容,这里我们无法对选择题进行详细解析。 --- ##### 2. 简答题 **抽象类与接口的区别:** - **...
- **实现原理**:Ajax的核心在于使用JavaScript进行后台数据的异步获取,常见的实现方法包括XMLHttpRequest对象或现代前端框架如jQuery、React等提供的API。 - **应用场景**:适用于需要频繁与服务器交互的应用场景...
以上只是Java笔试面试题库中可能涉及的部分关键知识点,实际题目会更加丰富和深入,涵盖JVM原理、数据库操作、网络编程、Spring框架等。准备面试时,不仅要熟悉这些概念,还要能够通过实践来加深理解,解决实际问题...
- 面试当天避免过度思考面试题目,保持良好的心态。 - 积极提问,表现出对职位的兴趣和对公司的了解。 - 在面试中遇到不确定的问题时,诚实回答并表示愿意进一步学习。 综上所述,成为一名成功的Java开发者不仅需要...
【JavaWeb经典面试题目解析】 JavaWeb开发是Java技术领域中的一个重要组成部分,它涉及服务器端编程、数据库交互、网络通信等多个方面。传智博客作为知名的IT教育平台,由张孝祥老师精心整理的JavaWeb面试题目,...
【前端开发与小程序面试题目】 前端开发面试通常涵盖多个领域,包括前端架构、HTML5/CSS3的新特性、性能优化、JavaScript技术以及特定框架的使用。以下是对面试题目中的关键知识点的详细解释: 1. **响应式布局**...
### Java面试知识点解析 #### 单选题解析 **1. 关于编码规范描述正确的是(A)** - **选项A**: 类和方法都必须编写注释。 - 正确答案。良好的编码规范强调代码的可读性和可维护性。编写注释是一种常见做法,特别...
- **Web前端**:HTML、CSS、JavaScript、Ajax,以及相关框架如jQuery、Vue.js等。 - **框架部分**:Spring、Spring Boot、Spring MVC、MyBatis等主流框架的应用与原理,以及AOP和DI的理解。 - **高新就业部分**:...
面试题目的意义 - **预示着职业生涯的开始**:从学习面试题开始,标志着离学校生活越来越远,正式踏入职场。 - **就业市场的挑战**:随着就业压力的增大,学习如何面试成为进入职场的第一步。 #### 2. 面试内容...
这个“Java笔试面试题(含数据库.rar”压缩包文件显然包含了与Java编程、数据库以及Web开发相关的重要面试题目,旨在帮助求职者准备技术面试。其中的“Java笔试面试题(含数据库&JSP&JQuery).pdf”文件,很可能是对...
以下是一些常见的Java面试题目及其详细解析: **一、JDK常用的包** JDK(Java Development Kit)是开发Java应用程序的基础,其中包含了许多核心库,如`java.lang`,`java.util`,`java.io`等。`java.lang`是最基础...
Java 软件工程师面试资料大整合 1 Java 面霸 1 1. int 和 Integer 有什么区别? 8 2. String 和StringBuffer的区别 8 3. 运行时异常与一般异常有何异同? 8 4. 说出ArrayList,Vector,LinkedList的存储性能和特性 8 5...
【前端开发与小程序面试题目解析】 一、前端面试知识点 1. 响应式布局:是一种根据设备屏幕尺寸和方向动态调整网页布局的设计方法。它通过CSS媒体查询、百分比单位和流式布局等技术,确保网站在不同设备上都能提供...
Java面试的基础知识涵盖广泛,涉及Java虚拟机(JVM)、编程基础、面向对象设计、异常处理、输入/输出(IO)、集合框架、多线程、网络编程、高级特性以及Web开发相关技术。以下是对这些知识点的详细解释: 1. **Java...
以下是对一些常见面试题目的详细解答: 1. Java的基本数据类型包括byte、short、int、long、float、double、char和boolean。String是一个对象,不是基本数据类型,它是一个字符序列,具有不可变性。 2. ArrayList...