1225工信部人才交流中心Java面试题V21白话版.docx

上传人:b****8 文档编号:11208950 上传时间:2023-02-25 格式:DOCX 页数:27 大小:35.64KB
下载 相关 举报
1225工信部人才交流中心Java面试题V21白话版.docx_第1页
第1页 / 共27页
1225工信部人才交流中心Java面试题V21白话版.docx_第2页
第2页 / 共27页
1225工信部人才交流中心Java面试题V21白话版.docx_第3页
第3页 / 共27页
1225工信部人才交流中心Java面试题V21白话版.docx_第4页
第4页 / 共27页
1225工信部人才交流中心Java面试题V21白话版.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

1225工信部人才交流中心Java面试题V21白话版.docx

《1225工信部人才交流中心Java面试题V21白话版.docx》由会员分享,可在线阅读,更多相关《1225工信部人才交流中心Java面试题V21白话版.docx(27页珍藏版)》请在冰豆网上搜索。

1225工信部人才交流中心Java面试题V21白话版.docx

1225工信部人才交流中心Java面试题V21白话版

Java面试宝典2013版(蓝桥计划)

项目介绍5

前言7

一.Java基础部分9

1、请说一下break和continue的区别?

9

2、switch中用于判断的表达式,可以用哪些数据类型?

9

3、char型变量中能不能存贮一个中文汉字?

为什么?

9

4、静态变量和实例变量的区别?

9

5、是否可以从一个static方法内部发出对非static方法的调用?

9

6、Integer与int的区别9

7、Overload和Override的区别。

参数列表相同,返回值不同的方法,是否是重载方法?

10

8、接口是否可继承接口?

抽象类是否可实现(implements)接口?

抽象类是否可继承具体类(concreteclass)?

10

9、面向对象有哪三大特性?

10

10、abstractclass和interface有什么区别?

11

11、String是最基本的数据类型吗?

11

12、String和StringBuffer的区别11

13、数组有没有length()这个方法?

String有没有length()这个方法?

11

14、final,finally,finalize的区别。

11

15、请说一下你常用的几种异常?

11

16、线程的基本概念?

线程的基本状态以及状态之间的关系12

17、sleep()和wait()有什么区别?

12

18、多线程有几种实现方法?

12

19、启动一个线程是用run()还是start()?

.12

20、Set和List的区别,List和Map的区别12

21、HashMap和Hashtable的区别12

22、说出ArrayList,LinkedList的区别13

23、请描述一下JDK1.5有哪些新特性?

13

24、为什么要使用单例模式13

二.Javaweb部分13

25、什么是B/S和C/S?

13

26、如何设置servlet初始化参数?

如何获取servlet初始化的参数?

13

27、Ajax是干么用的?

有哪些常用的Ajax框架?

14

28、HTTP请求的GET与POST方式的区别14

29、说一说Servlet的生命周期?

Servlet里常用的方法有哪些?

14

30、ServletAPI中forward()与redirect()的区别?

14

31、jsp有哪些内置对象?

14

32、Session和Cookie的区别?

15

33、静态include和动态include的区别?

15

三.数据库部分15

34、SQL语言包括哪三种类型,每种类型又包括哪些语句?

15

35、简要介绍一下数据库有哪些常用对象?

15

36、什么是数据库中的视图,其好处是什么?

16

37、数据库中索引的好处是什么?

一个数据库表,经常要进行添加和删除记录的操作,应该为该表建多个索引吗?

16

38、什么是数据库游标?

16

39、什么是事务?

16

40、数据库中日志的作用是什么?

16

41、什么是主键和外键?

17

42、什么是数据库中的存储过程和触发器?

存储过程的好处?

17

43、内连接和外连接的区别?

17

44、请介绍一下数据库连接池技术?

17

45、MySQL、Oracle、SQLServer各数据库服务的端口号?

17

46、Oracle和SQLServer的分页有什么区别?

18

47、如何对数据库进行优化?

18

48、JDBC连接数据库的步骤?

18

49、JDBC中的PreparedStatement相比Statement的好处18

四.其他部分18

50、xml有哪些解析技术?

区别是什么?

18

51、xml文档在实际项目中有哪些应用?

19

五.流行框架与技术19

52、什么是MVC?

常用的MVC框架有哪些?

19

53、谈谈Struts的工作流程(或运行原理)19

54、谈谈Struts2的工作流程(或运行原理)20

55、说说struts1与struts2的区别20

56、Struts优缺点20

57、什么是Hibernate,好处是什么?

21

58、hibernate中的update()和saveOrUpdate()的区别21

59、hibernate中持久化对象的三种状态?

21

60、session的load()和get()的区别22

61、iBatis与Hibernate有什么不同?

22

62、介绍一下Hibernate的二级缓存22

63、什么是AOP?

谈谈你对他的理解。

23

64、什么是IOC和DI?

23

65、依赖注入的两种方式?

23

66、SpringIOC容器中Bean默认的范围(scope)?

23

项目介绍

在进行技术面试前,提醒大家,必须要准备好项目介绍,即需要准备好你的简历中列的所有项目的项目介绍!

面试时关于项目,面试官常见的问题及回答(以银行柜台系统为例):

●你给我简要介绍一下银行柜台系统?

1、简易银行柜台系统是模拟银行柜台的基本功能而做的一个系统。

2、系统分前台和后台部分,前台部分是银行柜台人员操作的,包括:

注册登录模块、开销户模块、帐号管理模块、存取钱转账模块、柜台人员信息管理;后台部分是银行管理者操作的,包括查看日志模块、管理柜台人员信息模块;

3、我主要负责的是前台的全部功能;

●你详细介绍一下你负责的模块的功能?

1、我负责的注册登录模块和柜台人员信息模块实际上是管理柜台人员信息的,内容比较简单;

2、开销户模块、帐号管理模块、存取钱转账模块是为银行储户服务的模块。

其中开销户就是为储户开户、销户的功能,账户管理模块就是帮储户冻结帐号、修改密码等功能,存取钱转账模块就是为储户存钱、取钱,帮储户转账的功能;

●这个项目几个人做的?

用了多长时间?

1、这个项目比较小,由2个人合作完成的,我负责的是前台部分;

2、项目大概用了4天左右的时间;

●这个项目使用了什么技术?

1、这个项目使用Struts2、Hibernate3和MySQL

●你在做这个项目的时候,遇到了什么困难,怎么解决的?

1、比如在Hiberante的使用,关于表之间关联关系的配置,我开始操作的时候不太熟悉,后来通过查文档、和其他同学沟通的方式,这个问题也得到了解决;

备注:

如果你在这里提到了表之间关联关系的配置,那么这个问题面试官非常有可能接下去就问这个技术问题,所以务必认真准备这个技术问题。

前言

这套面试题主要目的是帮助那些还没有java软件开发实际工作经验,而正在努力寻找java软件开发工作的学生在笔试/面试时更好地赢得好的结果。

由于这套试题涉及的范围很泛,很广,很杂,大家不可能一天两天就看完和学完这套面试宝典,即使你已经学过了有关的技术,那么至少也需要半个月的时间才能消化和掌握这套面试宝典,所以,大家应该早作准备,从拿到这套面试宝典之日起,就要坚持在每天闲暇之余学习其中几道题目,日积月累,等到出去面试时,一切都水到渠成,面试时就自然会游刃有余了。

答题时,先答是什么,再答有什么作用,要注意什么(这条可以没有)

比如说面试官问:

给我介绍一下ORM?

较好回答:

1、ORM就是ObjectRelationalMapping,就是对象关系映射;

2、作用:

我们在写程序的时候,用的是面向对象的方法,但是在关系型数据库里,存的是一条条的记录;为了用纯面向对象的思想解决问题,所以需要将程序中的对象和数据库中的记录建立起映射关系,ORM就是将对象和数据库中的记录建立起映射的技术;

答案要层次分明,条理清晰,从这些表面的东西也可以看出一个人的习惯、办事风格、条理等。

答题不局限于什么格式和形式,就是要将自己的掌握的技术内容展现出来,比如可以采用举例的说法:

需要特别注意的是,因为面试官本身水平层次不齐,不要因为人家题目问的模棱两可(或者题目问的不准确),你就心里胆怯和没底气了,不敢回答了。

你要大胆地提出对方题目中你不清楚的地方,希望对方能重新明确的提出问题?

例如,你可以问:

您提的问题,我刚才没有完全听明白,能不能再说一遍。

一.Java基础部分

1、请说一下break和continue的区别?

1、这两个语句都可以用于跳出循环的;

2、break是中止循环,执行循环体以后的语句,而continue是跳出本次循环,执行下一次循环;

2、switch中用于判断的表达式,可以用哪些数据类型?

1、可以是char、byte、short、int,不可以是long、String等其他类型;

2、从JDK1.7开始,支持String类型;

3、char型变量中能不能存贮一个中文汉字?

为什么?

Java里采用了Unicode编码格式,Unicode编码中一个char型占用2个字节,而一个汉字也是占用2个字节,所以可以存储中文汉字。

备注:

C语言里,char占用1个字节,不能存汉字。

4、静态变量和实例变量的区别?

在语法定义上的区别:

静态变量前要加static关键字,而实例变量前则不加。

在程序运行时的区别:

实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。

静态变量不属于某个实例对象,而是属于类,所以也称为类变量,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。

总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。

5、是否可以从一个static方法内部发出对非static方法的调用?

不可以。

因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以直接调用。

也就是说,当一个static方法被调用时,可能还没有创建任何实例对象,如果从一个static方法中发出对非static方法的调用,那个非static方法是关联到哪个对象上的呢?

这个逻辑无法成立,所以,一个static方法内部发出对非static方法的调用。

6、Integer与int的区别

1、int是基本数据类型,Integer是包装类;

2、int的默认值是0,Interger的默认值是null;

7、Overload和Override的区别。

参数列表相同,返回值不同的方法,是否是重载方法?

Overload是重载的意思,Override是覆盖的意思,也就是重写。

重载是指在一个类里,方法名相同,参数不同;

重写是指子类继承父类,子类里重新编写了父类中的同名(同参数)方法,也就是覆盖了父类的方法;

不是!

因为重载必须要求参数列表不同!

8、接口是否可继承接口?

抽象类是否可实现(implements)接口?

抽象类是否可继承具体类(concreteclass)?

接口可以继承接口。

抽象类可以实现(implements)接口,抽象类是否可继承具体类。

备注:

只要明白了接口和抽象类的本质和作用,这些问题都很好回答。

只有记住抽象类与普通类的唯一区别就是不能创建实例对象和允许有abstract方法。

9、在面向对象有哪三大特性?

1、面向对象有三大特性,分别是:

封装、继承和多态。

2、封装:

面向对象的封装就是把描述一个对象的属性和行为的代码封装在一个类中,有些属性是不希望公开的,或者说被其他对象访问的,所以我们使用private修饰该属性,使其隐藏起来;类中提供了方法(用public修饰),常用的是get、set方法,可以操作这些被隐藏的属性,其他类可以通过调用这些方法,改变隐藏属性的值!

下面的回答是更高要求,不需要学生必须掌握:

封装是保证软件部件具有优良的模块性的基础,封装的目标就是要实现软件部件的“高内聚、低耦合”,防止程序相互依赖性而带来的变动影响。

在面向对象的编程语言中,对象是封装的最基本单位,面向对象的封装比传统语言的封装更为清晰、更为有力。

3、继承:

在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,使用extends关键字实现继承;子类中可以加入若干新的内容,或修改原来的方法使之更适合特殊的需要,这就是继承。

继承是子类自动共享父类数据和方法的机制,这是类之间的一种关系,提高了软件的可重用性和可扩展性。

4、多态:

多态就是在声明时使用父类,在实现或调用时使用具体的子类;即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性,多态增强了软件的灵活性和扩展性。

这里可以举个例子,比如声明时使用的是动物类,调用时传递的是一个猫类(动物类的子类)的对象,具体执行父类里动物——吃的方法时,实际执行的是猫——吃的方法。

10、abstractclass和interface有什么区别?

1、抽象类里面可以用普通方法,而接口中的方法全部都是抽象的;

2、在应用范围上来说,接口往往在程序设计的时候,用来定义程序模块的功能,方便各模块协同工作;抽象类是对相似类进行抽象,形成一个抽象的父类可供重用!

11、String是最基本的数据类型吗?

1、String是个类,不是基本数据类型;

2、基本数据类型包括byte、int、char、long、float、double、boolean和short。

12、String和StringBuffer的区别

1、String是个不可变长度的字符串,而StringBuffer是个可变长度的字符串;

2、在对String类进行操作的时候(例如增加字符),实际上是在内存中产生了一个新的String对象;而StringBuffer是给原对象增加字符,不是新创建一个对象;

13、数组有没有length()这个方法?

String有没有length()这个方法?

数组没有length()这个方法,有length的属性。

String有length()这个方法。

14、final,finally,finalize的区别。

final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。

finally是异常处理语句结构的一部分,表示总是执行。

finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。

JVM不保证此方法总被调用

15、请说一下你常用的几种异常?

比如:

1、空指针异常;

2、数组下标越界;

3、类型转换异常;

4、算数异常,例如除数为零;

5、IO异常,比如说找不到文件;

6、找不到类异常;

7、sql异常,例如sql语句不能正常运行;

8、…

16、线程的基本概念?

线程的基本状态以及状态之间的关系

1、是程序执行流的最小单元。

在单个程序中同时运行多个线程完成不同的工作,称为多线程。

2、开始时:

就绪状态,等待cpu调用后进入运行状态,运行过程中遇到阻塞事件,进入阻塞状态,等待阻塞事件结束后,重新进入就绪状态;如果没有阻塞事件,运行结束后,则进入结束状态。

17、sleep()和wait()有什么区别?

sleep就是暂停当前线程一段时间,把cpu让给其他线程使用,到时后会自动恢复。

调用sleep不会释放对象锁。

wait方法导致本线程放弃对象锁,进入等待,只有等到本对象的notify方法(或notifyAll)后本线程才进入就绪状态,等待执行。

18、多线程有几种实现方法?

多线程有两种实现方法,分别是继承Thread类与实现Runnable接口

19、启动一个线程是用run()还是start()?

.

启动一个线程是调用start()方法,使线程就绪状态,以后可以被调度为运行状态,一个线程必须关联一些具体的执行代码,run()方法是该线程所关联的执行代码。

20、Set和List的区别,List和Map的区别

1、Set是无序的,元素不可重复;List是有序的,元素可以重复;

2、List存储的是单个对象的集合(有序的),Map存储的是键值对为对象的集合(无序的);

21、HashMap和Hashtable的区别Collections

1、HashMap和Hashtable都完成了Map接口;

2、HashMap非线程安全的,而Hashtable是线程安全的,原因是Hashtable里面的方法使用Synchronize关键字修饰的;

3、因为Hashtable使用了Synchronize关键字修饰,其性能比较差;(具体原因不做详细说明)

22、说出ArrayList,LinkedList的区别

1、ArrayList和LinkedList都完成了List接口;

2、ArrayList底层是用数组实现的,而LinkedList使用链表实现的;

3、ArrayList在插入、删除时,需要移动数组元素,故性能较差;但是在查询时,因为是连续的数组,所以查询速度快;LinkedList正好相反。

23、请描述一下JDK1.5有哪些新特性?

1、泛型

2、For-Each循环

3、自动装包/拆包

4、枚举

5、静态导入

6、Annotation

24、为什么要使用单例模式

1、避免在开发程序的时候,创建出一个类的多个实例(占用空间,性能问题),所以使用单例模式,保证该类只创建一个对象;

2、一般单例模式通常有两种形式:

它的构造函数为private的,必须有一个静态方法,静态方法返回自己的实例;实行形式有两种,懒汉式和饿汉式;所谓的饿汉式就是在声明实例的时候直接初始化对象,而懒汉式是先声明一个空对象,在静态方法中实例化该对象并返回。

二.Javaweb部分

25、什么是B/S和C/S?

1、B/S:

浏览器服务器模式;

2、C/S:

客户端服务器模式;

26、如何设置servlet初始化参数?

如何获取servlet初始化的参数?

1、在web.xml里为每一个Servlet配置初始化参数;

2、通过ServletConfig对象实现对Servlet初始化对象的获取;

27、Ajax是干么用的?

有哪些常用的Ajax框架?

1、Ajax是采用了异步请求的方式,解决了页面无刷新式提交的问题,改善了页面的用户体验效果;常用在google地图,注册时用户名重复性校验,XX搜索下拉列表框;

2、常用的Ajax框架:

底层框架:

JQuery、Prototype;高层框架:

DWR、DOJO、EXTJS、YUI;

28、HTTP请求的GET与POST方式的区别

Get和Post都是提交表单的方式之一;

1、get方式表单中的数据放到HTTP数据包的头部,post方式放到body中;

2、get方式提交后,数据会在地址栏中显示出来,而post方式不会,所以post更安全;

3、get方式在提交数据的时候,数据长度是有限制的;而post方式在理论上对提交数据的大小是无限制的;

4、get提交表单永远使用字符方式提交;而post方式提交表单可以是字节方式也可以是字符方式

29、说一说Servlet的生命周期?

Servlet里常用的方法有哪些?

Servlet生命周期包括加载和实例化、初始化、处理请求以及服务结束;

Servlet生命周期是由容器进行管理的,不可以被程序员手工销毁;

Servlet被服务器实例化后(用户第一次访问该Servlet时),容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。

30、ServletAPI中forward()与redirect()的区别?

1、forward是请求转发,而reditect是重定向;

2、请求转发是服务器将客户端的请求转发到另一个地址去处理,然后将响应返回给客户端;实际上是1次请求,1次响应,对客户端而言是透明的;而重定向是服务器根据客户端发来的请求,返回给一个客户端一个新的地址,客户端根据这个返回的地址再发送请求,得到响应;实际上是2次请求,2次响应,而且客户端的地址是第二次访问的地址;

3、转发只能转发到自己的资源,重定向无限制。

:

4、请求转发可以Request可以携带数据,传递到下一个Servlet中,而重定向重现产生Request。

31、jsp有哪些内置对象?

JSP共有以下9个内置的对象:

request用户端请求

response网页传回用户端的回应

pageContext网页的属性是在这里管理

session与请求有关的会话期

application

out用来传送回应的输出

config

pageJSP网页本身

exception页面中的异常和错误

32、Session和Cookie的区别?

1、Session和Cookie都是会话跟踪技术;

2、Session是保存在服务器端的技术(保持用户登录状态的检查常用Session),而Cookie是保存在客户端的技术;

3、Cookie只能存字符串,Session可以存对象;

33、静态include和动态include的区别?

1、静态包含属于编译期包含(包含页面和被包含的页面在编译期形成一个jsp文件),动态包含属于运行期包含(包含页面和被包含的页面分别编译成两个文件,然后运行时把两个文件组装起来);

2、动态包含可以带参数;

三.数据库部分

重要备注:

此数据库部分面试题不含SQL语句(含各类函数)面试具体的题目,关于SQL语句的使用,请学生自己准备!

34、SQL语言包括哪三种类型,每种类型又包括哪些语句?

数据定义:

createTable,AlterTable,DropTable,Create/DropIndex等(学生需要了解)

数据操纵:

select,insert,update,delete(这个最重要,学生需要开展学习准备)

数据控制:

grant,revoke

35、简要介绍一下数据库有哪些常用对象?

常用的数据库对象包括:

表、视图、索引、函数、存储过程、触发器等。

36、什么是数据库中的视图,其好处是什么?

1、视图是一个虚拟表,是由查询语句产生的,不是真实存在的表;同真实的表一样,视图包含一系列带有名称的列和行数据。

2、它主要出于两种原因:

安全原因,视图可以隐藏一些数据,如:

员工信息表,可以用视图只显示姓名,年龄、性别等通用信息,而隐藏工资等敏感信息,另一原因是多表连接,可使复杂的查询易于理解和使用。

37、数据库中索引的好处是什么?

一个数据库表,经常要进行添加和删除记录的操作,应该为该表建多个索引吗?

1、索引是一种特殊的查询表,简单的理解就是在数据库中,将数据按一定的顺序进行排列(分物理索引:

只有1个和逻辑索引:

可以有多个),查询的时候,可以有效提高查询速度。

2、如果一个表要频繁的进行添加和删除记录的操作(不是查询),不建议建立多个索引,因为添加和删除记录,都需要调整索引,增加数据库负担,影响性能。

38、什么是数据库游标?

1、游标是对查询出来的结果集进行处理的一个对象,游标可以定在该集合中的特定行,从而根据游标从

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1