Java面试宝典版.docx
- 文档编号:3443420
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:93
- 大小:98.53KB
Java面试宝典版.docx
《Java面试宝典版.docx》由会员分享,可在线阅读,更多相关《Java面试宝典版.docx(93页珍藏版)》请在冰豆网上搜索。
Java面试宝典版
JAVA面试、笔试题(2015版)
欲想成功,必须用功!
目录
一、HTML&CSS部分9
1、HTML中定义表格的宽度用80px和80%的区别是什么?
9
2、CSS样式定义优先级顺序是?
10
3、div和span的区别?
10
4、CSS选择器包括?
10
5、用css3语法中,如何实现一个矩形框的圆角效果和50%红色透明效果?
,请写出关键脚本10
6、Div与Table的区别11
7、行级标签转块级标签,块级标签转行级标签11
二、Java基础部分11
1、java中有哪些基本类型?
11
2、java为什么能够跨平台运行?
12
3、String是基本数据类型吗?
我可不可以写个类继承于String?
12
4、谈谈&和&&的区别?
12
5、Switch语句里面的条件可不可以是byte、long、String?
使用时候还应注意什么?
12
6、shorts1=1;s1=s1+1;有什么错?
shorts1=1;s1+=1有什么错?
12
7、char为什么能存贮一个汉字?
13
8、用最效率的办法算出2乘以8等于几?
13
9、final修饰变量时,该变量是对象时,对象的值可不可以改变?
13
10、静态变量和实例变量的区别?
13
11、面向对象的基本特征是什么?
13
12、作用域public,private,protected,以及不写时的区别?
14
13、Overload和Override的区别。
14
14、构造器可不可以被重载或重写?
14
15、Java中有没有多继承?
15
16、抽象类和接口的区别?
15
17、java中实现多态的机制是什么?
15
18、int和integer的区别?
15
19、String和StringBuffer的区别?
StringBuffer和StringBuilder区别?
16
20、Strings=newString(“xyz”);创建了几个StringObject?
16
21、数组中有没有length()方法,String中有没有length()方法?
16
22、try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?
16
23、final,finally,finalize的区别。
17
24、‘==’和equals的区别?
17
25、error和exception有什么区别?
17
26、heap和stack有什么区别。
18
27、GC是什么?
为什么要有GC?
18
28、什么是内部类?
分为哪几种?
18
29、为什么需要内部类?
18
30、内部类可以引用它的包含类的成员吗?
有没有什么限制?
19
31、AnonymousInnerClass(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
20
32、使用java命令查看java虚拟机版本20
33、数字转字符有多少种方式,分别是什么20
34、Java创建对象有几种方式20
35、写一个反序列化实例20
三、JavaScript/JQuery/Ajax部分22
1、请写一段Javascript程序,对以下程序的用户输入日期的有效性进行判断,如果格式错误就提示用户。
在程序的恰当位置注明怎样调用你写的程序。
日期格式为:
年年年年月月日日小时,例如2003010812。
22
2、Java和Javascript区别在哪?
23
3、列举javaScript的3种主要数据类型,2种复合数据类型和2种特殊数据类型。
24
4、谈谈你的JS的理解?
25
5、ajax的优点?
26
6、简述一下ajax调试代码查找错误的方法?
26
7、简述ajax中Js脚本缓存问题该如何解决?
26
8、Ajax应用和传统的web应用有何不同?
26
9、javascript的作用?
27
10、为什么要有jquery?
27
11、jQuery选择器有多少种?
27
12、jquery选择器有哪些优势?
27
13、你是如何使用jquery中的ajax的?
28
14、jquery中的$.get和$.post请求区别?
28
15、jquery中如何操作样式的?
28
16、如何设置和获取HTML和文本的值?
28
17、Jquery能做些什么?
28
18、在ajax中data主要有哪几种?
29
19、jQuery中ajax由几部分组成?
29
四、jsp/servlet部分29
1、Tomcat的优化经验29
2、Tomcat根目录下有哪些文件29
3、什么是TOMCAT,怎样启动停止,配置文件,日志文件的存储。
30
4、解释一下什么是servlet;什么是servlet容器;30
5、说一说Servlet的生命周期,执行过程?
31
6、实例化servlet有几种方式31
7、HTTP请求的GET与POST方式的区别31
8、请写一个Servlet的基本架构。
32
9、forward和redirect的区别?
32
10、servlet中怎么定义forward和redirect33
11、过滤器有哪些作用?
33
12、JSP的常用指令?
33
13、JSP和Servlet中的请求转发分别如何实现?
33
14、JSP乱码如何解决?
34
15、session和application的区别?
34
16、jsp有哪些内置对象?
作用分别是什么?
34
17、Jsp有哪些动作?
作用分别是什么?
35
18、JSP中动态INCLUDE与静态INCLUDE的区别?
35
19、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
35
20、页面传递对象的方法?
36
21、Cookied和session区别?
36
五、数据库部分36
1、触发器的作用?
36
2、什么是存储过程?
用什么来调用?
37
3、存储过程的优缺点?
37
4、存储过程与函数的区别37
5、索引的作用?
和它的优点缺点是什么?
38
6、什么样的字段适合建索引38
7、索引类型有哪些?
38
8、什么是事务?
什么是锁?
39
9、什么叫视图?
游标是什么?
39
10、视图的优缺点39
11、列举几种表连接方式,有什么区别?
40
12、主键和外键的区别?
40
13、在数据库中查询语句速度很慢,如何优化?
40
14、数据库三范式是什么?
41
15、union和unionall有什么不同?
41
16、Varchar2和varchar有什么区别?
42
17、Oracle和Mysql的区别?
42
18、Oracle语句有多少类型43
19、oracle分页语句43
20、从数据库中随机取50条44
21、orderby与groupby的区别44
22、commit在哪里会运用44
23、行转列、列换行怎么转44
24、什么是PL/SQL?
44
25、序列的作用45
26、表和视图的关系45
27、oracle基本数据类型45
28、truncate与delete区别45
29、oracle获取系统时间46
30、oracle怎么去除去重46
31、现在有表:
46
32、现有表:
47
33、怎样把这样一个表(表名:
tmp_table_201307)48
34、数据库中有一张表ismg_icp_flow,结构如下49
六、Java高级部分50
1、java中有几种方法可以实现一个线程?
用什么关键字修饰同步方法?
stop()和suspend()方法为何不推荐使用?
50
2、sleep()和wait()有什么区别?
50
3、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
51
4、线程的基本概念51
5、什么是多线程51
6、程序、进程、线程之间的关系51
7、创建线程有几种方式,分别是什么?
52
8、线程的生命周期53
9、线程currentThread()与interrupt()方法的使用53
10、线程状态53
11、什么是java序列化,如何实现java序列化?
54
12、编写一个程序,将d:
\java目录下的所有.java文件复制到d:
\jad目录下,并将原来文件的扩展名从.java改为.jad。
54
13、java中有几种类型的流?
JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
57
14、字节流与字符流的区别57
15、怎么判断指定路径是否为目录59
16、怎么获取指定路径下的全部文件59
17、Java怎么读取文件和写入文件60
18、java怎么复制文件62
19、用JDBC如何调用存储过程63
20、JDBC中的PreparedStatement相比Statement的好处65
21、写一个用jdbc连接实例。
66
22、ArrayList和Vector的区别?
67
23、List、Set和Map的区别?
68
24、Collection和Collections的区别。
69
25、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
是用==还是equals()?
它们有何区别?
69
26、HashMap与HashTable的区别69
27、Java中有多少种数据结构,分别是什么?
70
28、Arraylist和linklist的区别70
29、List遍历方式有多少种70
30、Map怎么遍历71
31、怎么获取Map所有的key,所有的value71
32、获取Class的实例有几种方式71
33、怎么获取类中所有的方法,所有属性71
七、框架部分71
1、谈谈你对Struts2的理解。
71
2、谈谈你对Hibernate的理解。
72
3、你对Spring的理解。
73
4、Struts2优缺点73
5、说说struts1与struts2的区别。
75
6、struts的核心组件有哪些?
76
7、Strus2的执行过程76
8、为什么要使用struts2?
76
9、openSession和getCurrentSession77
10、拦截器的作用?
拦截器和过滤器的区别?
77
11、struts.xml中result的type有哪些类型?
78
12、一般情况下,关系数据模型与对象模型之间有哪些匹配关系?
78
13、hibernate数据的三个状态78
14、Hibernate中load和get的区别?
79
15、Hibernate的工作原理?
79
16、hibernate优缺点?
79
17、Hibernate是如何延迟加载的?
80
18、如果优化Hibernate?
80
19、什么是ORM?
81
20、Hibernate的主键生成策略?
81
21、Hibernate的级联操作81
22、Hibernate有哪5个核心接口?
82
23、什么是重量级?
什么是轻量级?
82
24、谈谈Spring的IOC和DI82
25、什么是AOP?
84
26、Spring的通知类型有哪些?
84
27、什么是MVC?
84
28、hibernate查询方式有多少种?
85
29、spring中Bean的scope85
30、SSH对应MVC的哪些层86
31、spring注入方式有几种86
八、XML部分86
1、xml有哪些解析技术?
区别是什么?
86
2、你在项目中用到了xml技术的哪些方面?
如何实现的?
87
3、编程用JAVA解析XML的方式.87
4、XML文档定义有几种形式?
它们之间有何本质区别?
90
5、XML和HTML的区别?
90
6、XML文件和普通文件相比有哪些优点?
90
九、设计模式部分91
请写出你所知道的设计模式?
91
十、算法部分93
1、说明生活中遇到的二叉树,用java实现二叉树93
2、第1个人10,第2个比第1个人大2岁,依次递推,请用递归方式计算出第8个人多大?
100
3、排序都有哪几种方法?
请列举。
用JAVA实现一个快速排序。
101
4、金额转换,阿拉伯数字的金额转换成中国传统的形式如:
(¥1011)->(一千零一拾一元整)输出。
103
5、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序:
104
6、写一个Singleton出来。
109
7、古典问题:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
112
8、简单的说个递归113
9、什么是平衡二叉树113
10、怎么判断二叉树是否有环114
一、HTML&CSS部分
1、HTML中定义表格的宽度用80px和80%的区别是什么?
PX标识像素,%标识整个父标签宽度百分比
2、CSS样式定义优先级顺序是?
内联样式最高优先权,然后是内部样式,然后才是外部样式
3、div和span的区别?
DIV和SPAN元素最大的特点是默认都没有对元素内的对象进行任何格式化渲染。
主要用于应用样式表(共同点)。
两者最明显的区别在于DIV是块元素,而SPAN是行内元素(也译作内嵌元素)。
详解:
1.所谓块元素,是以另起一行开始渲染的元素,行内元素则不需另起一行,测试一下下面的代码你会有更形象的理解:
测试紧跟前面的"测试"显示
4、CSS选择器包括?
1)类别选择器用“.”来标识
2)标签选择器用HTML标签来标识
3)ID选择器用“#”号来标识
4)通配符选择器用“*”号来标识
5、用css3语法中,如何实现一个矩形框的圆角效果和50%红色透明效果?
,请写出关键脚本
div{
width:
200px;
height:
200px;
border-radius:
30px;
opacity:
0.5;/*火狐*/
/*filter:
alpha(opacity=50);IE*/
background-color:
red;
}
6、Div与Table的区别
1) div大大缩减页面代码,提高页面浏览速度,table代码量繁多,页面浏览效率慢。
2) div结构清晰,可读性非常强,也容易被搜索引擎搜索到,优化了搜索引擎,Table结构复杂,可读性差。
3)div 缩短改版时间。
只要简单的修改几个CSS文件就可以改变很多页面。
Table要想改变的话,需要一个页面一个页面的去修改。
4)div表现和内容相分离,非常符合w3c标准。
5)table制作效率高于div
6)table浏览器兼容性高于div,我们常用的IE6.0,IE7.0火狐Firefox浏览器对divcss设置上非常挑剔。
7、行级标签转块级标签,块级标签转行级标签
行级转块级:
display:
block
块级转行级:
float:
left
二、Java基础部分
1、java中有哪些基本类型?
byte、short、int、long、float、double、char、boolean
2、java为什么能够跨平台运行?
因为Java程序编译之后的代码不是能被硬件系统直接运行的代码,而是一种“中间码”——字节码。
然后不同的硬件平台上安装有不同的Java虚拟机(JVM),由JVM来把字节码再“翻译”成所对应的硬件平台能够执行的代码。
因此对于Java编程者来说,不需要考虑硬件平台是什么。
所以Java可以跨平台。
3、String是基本数据类型吗?
我可不可以写个类继承于String?
不是,Strng是引用类型;String是final的类,是不可以被继承的。
4、谈谈&和&&的区别?
&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式。
&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作.。
5、Switch语句里面的条件可不可以是byte、long、String?
使用时候还应注意什么?
switch里面的条件必须是能隐式的转化成为Int的故long和String不行,byte可以;使用Switch时候还应注意它的穿透,即每个case后要跟break;
6、shorts1=1;s1=s1+1;有什么错?
shorts1=1;s1+=1有什么错?
对于shorts1=1;s1=s1+1;由于s1+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器将报告需要强制转换类型的错误。
对于shorts1=1;s1+=1;由于+=是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译。
7、char为什么能存贮一个汉字?
char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了全世界所有的字体。
8、用最效率的办法算出2乘以8等于几?
2<<3位移运算是最底层的运算,他直接操作的是二进制,故效率最快。
9、final修饰变量时,该变量是对象时,对象的值可不可以改变?
final修饰的变量指的是引用不可变,对象的值是可以改变的。
10、静态变量和实例变量的区别?
静态变量也称为类变量,归全类共有,它不依赖于某个对象,可通过类名直接访问;而实例变量必须依存于某一实例,只能通过对象才能访问到它。
11、面向对象的基本特征是什么?
1)抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。
抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。
抽象包括两个方面,一是过程抽象,二是数据抽象。
2)继承:
子类拥有父类一切非私有的属性和方法。
3)封装:
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。
面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
4)多态性:
同一种事物的不同种表现形式。
12、作用域public,private,protected,以及不写时的区别?
作用域当前类同包子孙类其他
public√√√√
protected√√√×
default√√××
private√×××
不写时默认为default。
13、Overload和Override的区别。
(Overload)重载:
发生在同一个类之中,方法名相同、参数列表不同,与返回值无关、与final无关、与修饰符无关、与异常无关。
(Override)重写:
发生在子类和父类之间,方法名相同、参数列表相同、返回值相同、不能是final的方法、重写的方法不能有比父类方法更为严格的修饰符权限、重写的方法所抛出的异常不能比父类的更大。
如果父类私有的方法,子类拥有方法签名相同的方法,子类不属于重写父类的方法,该方法属于子类的新方法。
14、构造器可不可以被重载或重写?
构造器不能被继承,故不能被重写、但可以被重载。
15、Java中有没有多继承?
java中没有多继承,但是可以多实现,即一个类实现多个接口。
虽然没有多继承,但是java中接口可以近似的实现多继承,那就是接口;接口和接口之间可以进行多继承。
16、抽象类和接口的区别?
1)抽象类继承与object接口不继承object.
2)抽象类有构造器,接口中没有构造器。
3)抽象类中可以有普通成员变量和常量,接口中只能有常量,而且只能是publicstaticfinal不写默认。
4)抽象类中可以有抽象方法,也可以由普通的方法,接口中只能有抽象的方法而且修饰符只能是publicabstract不写默认。
5)抽象类中可以有final的方法,接口中不能有final的方法。
6)抽象类只能是单继承,多实现,接口是可以多继承其他接口,但是不能实现接口,和不能继承其他类。
7)抽象类中可以有静态的方法,接口中不可以。
17、java中实现多态的机制是什么?
重写、重载、父类的声明指向子类的对象。
18、int和integer的区别?
int是java的基本数据类型,integer是1.4版本后提供的基本类型包装类,当两者作为成员变量时,初始值分别为;int是0;integer是null;其中integer提供了一些对整数操作的方法,还定义了integer型数值的最值,其他基本类型也有对应的包装类,基本类型包装类的出现,使得java完全面向对象.
19、String和StringBuffer的区别?
StringBuffer和StringBuilder区别?
String是不可变的,对String类的任何改变都会返回一个新的String对象。
StringBuffer是可变的,对StringBuffer中的内容修改都是当前这个对象。
String重写了equals方法和hashCode方法,StringBuffer没有重写equals方法。
String是final的类。
StringBuffer不是。
String创建的字符串是在常量池中,创建的变量初始化一次,如果再对该字符串改变会产生新的字符串地址值,StringBuffer是在堆中创建对象,当对字符串改变时不会产生新的字符串地址值,如果对字符串进行频繁修改的话建议使用StringBuffer,以节省内存。
StringBuffer和StringBuilder,StringBuffer是线程安全的,StringBulider是线程不安全的。
当不考虑并发问题时候,请使用StringBulider。
20、Strings=newString(“xyz”);创建了几个StringObject?
两个对象,一个是"xyx",一个是指向"xyx"的引用对象s。
21、数组中有没有length()方法,String中有没有length()方法?
数组中没有length()方法,但是有length属性,String中有length()方法
22、try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?
这道题很有争议,我是通过debug模式分为两种情况进行测试的.
1)finally中没有return时候:
会先执行try里面的,return会执行但是没有真正的return此时去执行了finally里面的,然后再返回来执行return.
2)finally中有return时候(其实这种情况不符合编程规范,会报黄线警告):
会先
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 面试 宝典