新闻动态 > 新闻 

IT面试题:联想Java架构师笔试题

2017年12月06日

原标题:IT面试题:联想Java架构师笔试题
IT面试题:联想Java架构师笔试题
选择题:(总共20道)
1 关于类的描述
2 Java关键字的相关题目
3 Java的垃圾回收机制
4 一个INT 型数据,让它的值翻倍
5 基本全是问程序的执行结果,想不起来了(有关于赋值,异常等很多,部份653考试题中的选择题)
简答题:(好像是选做三个)
1 struts中关于共享资源区作用域的问题,以及转发跟重定向的主要区别
转发跟重定向的主要区别在于:1.请求转发的时候,请求中所带的参数是放在数据包的包体当中,而重定向的时候请求所带的参数是放在包头当中的。2.转发的时候可以传参传的是对象,而重定向的时候所带的参数只能是字符串。3.使用转发的时候地址栏无变化,而使用重定向的时候地址栏会发生变化。4.请求范围不同,转发属于同一个请求范围而重定向属于两个不同的请求范围。
2 struts中formbean、validator的相关内容。(我觉得这个题如果出现似乎应该是在编程题中)
3 JSP中有三种独立的向页面添加代码段的技术,写出其中的两种
在中加入Java(http://www.softeem.com/java.html)脚本;jstl 、el表达式。
4 结合你所做项目中用到的一个框架,谈谈它的特点,利弊,主要结合业务描述
Hibernate框架:其主要优点在于:1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。5. 当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。6.hibernate中加入了一、二级缓存,ehcache提升了服务器的性能。
其主要缺点在于:1.虽然使用hibernate减少了大量重复代码的编写,提升了程序以及服务器的性能但是对于初学者而言配置文件太多而且太繁杂,不能很好的应用他的优势。2.使用hibernate的时候他的底层对于我们而言是透明的,出现问题的时候调试不是很方便。
(简述JAVA的垃圾回收机制优点和原理,并考虑2种回收机制。有可能在简答中考)
Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有”作用域”的概念,只有对象的引用才有”作用域”。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。
编程题
1写一个JSP中关于error-page 404错误的配置,让其指向error404.jsp的页面,
或者描述其配置的原理
404
error404.jsp
2 将一个int型数组写到一个temp.dat文件中,再从temp.dat中读出,并在控制台上逆序打印数组元素(包自己导)
public class Test {
public static void main(String[] args) {
int[] num = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
PrintWriter os = null;
try {
os = new PrintWriter(new FileOutputStream(“d:/tmp.dat”));
for (int b : num) {
os.print(b);
}
os.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
os.close();
} catch (Exception e) {
e.printStackTrace();
}
}
InputStream is = null;
try {
List list = new ArrayList();
is = new FileInputStream(“d:/tmp.dat”);
int i;
while ((i = is.read()) > 0) {
list.add(i);
}
for (int n = list.size(); n >= 0; n–) {
System.out.println(n);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
3 帮一个业务操作运营平台写一个用户登录页面
这个仅仅是一个页面~没有什么!