java软件工程师面试题小总结

来源:V型知识库 2017年07月25日 15:09 浏览:1058

1,IO流中字节流和字符流的区别是什么?

A:两个区别,一个是读写单位不同,字节流以字节(8bit)为单位来进行读取,字符流则以字符来进行读取。处理对象不同字节流可以处理几乎所有的类型的数据(文字,图片,音频等),儿字符流只能用来处理字符。

2,什么是WebService?它的工作原理是什么?

A:WebService是一个平台独立的,低耦合,自包含的,基于可编程Web的应用程序。

3,什么是Maven?

A:Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。

4,Jsp内置对象中session对象和request对象有什么区别?

A:两者最大的区别是生命周期。request对象的生命周期短,在一次客户端请求结束后request对象中的数据会被释放掉。而session对象则不会,session对象中的数据在一次会话中都会存在。

5,Jsp技术中就打内置对象分别是哪些?

A:分别是:request请求对象,response相应对象,Session会话对象,application应用程序对象,config配置对象,exception例外对象,page页面对象,out输出对象,pageContext作用域对象。

6,hibernate有什么缺点?

A:查询效率没有Jdbc高,被高度封装过的sql语句不便于sql优化。配置文件过于复杂。

7,怎样提高程序的运行速度?

A:提高程序(项目)运行速度主要有以下几种方法“

(1)提高编码水平,优化代码,例如使用特殊的数据结构和算法,提高代码的运行效率。

(2)避免随意使用静态变量,由于JVM的回收机制,滥用静态变量会占用大量系统内存,降低程序的运行速度。

(3)避免创建过多的java对象,理由同上。

(4)尽量使用final修饰符,使用局部变量,使用基本数据类型替代对象。

(5)单线程中集合应用尽量使用HashMap,因为它是非线程安全的,性能高。

(6)尽量避免使用二维数组。二维数组占用空间比一位数组大得多。

8,Hibernate中常用的类和接口有哪些?

A:Configuration接口(用于配置和启动hibernate,创建SessionFactory对象)。SessionFactory接口(用于初始化hibernate,充当数据源代理,创建session对象)。Session接口(用于数据的增删改查操作。非线程安全。一级缓存)Transaction接口(用于管理事物)Query和Criteria接口(用于执行数据库的查询)。

8,什么是级联?

A:级联是用来设计一对多关系的。例如一个表存放老师的信息:表A(姓名,性别,年龄),姓名为主键。还有一张表存放老师所教的班级信息:表B(姓名,班级)。他们通过姓名来级联。级联的操作有级联更新,级联删除。 在启用一个级联更新选项后,就可在存在相匹配的外键值的前提下更改一个主键值。系统会相应地更新所有匹配的外键值。如果在表A中将姓名为张三的记录改为李四,那么表B中的姓名为张三的所有记录也会随着改为李四。级联删除与更新相类似。如果在表A中将姓名为张三的记录删除,那么表B中的姓名为张三的所有记录也将删除。

9,请简述hibernate的工作流程.

A:configuration(),configure()方法读取配置xxx.cfg.xml配置文件。有xml文件中的mapping resource读取解析映射信息。创建sessionfactory。创建session。创建事物。持久化操作。提交事务。关闭session。关闭sessionfactory。