Java面试宝典版Word文档下载推荐.docx
- 文档编号:19187402
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:86
- 大小:110.63KB
Java面试宝典版Word文档下载推荐.docx
《Java面试宝典版Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Java面试宝典版Word文档下载推荐.docx(86页珍藏版)》请在冰豆网上搜索。
30px;
opacity:
0.5;
/*火狐*/
/*filter:
alpha(opacity=50);
IE*/
background-color:
red;
}
<
/style>
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时,编译器将报告需要强制转换类型的错误。
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"
一个是指向"
的引用对象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时候(其实这种情况不符合编程规范,会报黄线警告):
会先执行try里面的,return会执行但是没有真正的return此时去执行了finally里面的,然后执行finally里面的return,直接返回。
23、final,finally,finalize的区别。
final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
内部类要访问局部变量,局部变量必须定义成final类型。
finally是异常处理语句结构的一部分,表示总是执行。
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。
JVM不保证此方法总被调用
24、‘==’和equals的区别?
‘==’比较的是两个变量的内容和在内存中的地址值是否全部相等,如果要比较两个基本数据类型那必须用’==’
equals如果没有重写,则和’==’的意义一样,如果重写了,则会会按照重写的内容进行比较,javaBean规定当重写equals时候必须重写hashCode,如果不重写会出现对象相同但是hashCode不同,这样会出现问题,eg:
HashSet存储元素时候是按照hashCode,如果重写equals不重写hashCode会导致同一个对象,存储了两次。
25、error和exception有什么区别?
error表示恢复不是不可能但是很困难的情况下的一种严重问题,例如程序书写错误,虚拟机错误等,exception是一种设计和实现问题,如果程序运行正常,从不会发生的情况。
error是可以避免的,exception是不可避免的。
26、heap和stack有什么区别。
java的内存分为两类,一类是栈内存,一类是堆内存。
栈内存是指程序进入一个方法时,会为这个方法单独分配一块私属存储空间,用于存储这个方法内部的局部变量,当这个方法结束时,分配给这个方法的栈会释放,这个栈中的变量也将随之释放。
堆是与栈作用不同的内存,一般用于存放不放在当前方法栈中的那些数据,例如,使用new创建的对象都放在堆里,所以,它不会随方法的结束而消失。
方法中的局部变量使用final修饰后,放在堆中,而不是栈中。
27、GC是什么?
为什么要有GC?
GC是垃圾收集的意思(GabageCollection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。
28、什么是内部类?
分为哪几种?
内部类是指在一个外部类的内部再定义一个类。
内部类作为外部类的一个成员,并且依附于外部类而存在的。
内部类可为静态,可用protected和private修饰(而外部类只能使用public和缺省的包访问权限)。
内部类主要有以下几类:
成员内部类、局部内部类、静态内部类、匿名内部类。
29、为什么需要内部类?
典型的情况是,内部类继承自某个类或实现某个接口,内部类的代码操作创建其的外围类的对象。
所以你可以认为内部类提供了某种进入其外围类的窗口。
使用内部类最吸引人的原因是:
每个内部类都能独立地继承自一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。
如果没有内部类提供的可以继承多个具体的或抽象的类的能力,一些设计与编程问题就很难解决。
从这个角度看,内部类使得多重继承的解决方案变得完整。
接口解决了部分问题,而内部类有效地实现了“多重继承”。
30、内部类可以引用它的包含类的成员吗?
有没有什么限制?
完全可以。
如果不是静态内部类,那没有什么限制!
如果你把静态嵌套类当作内部类的一种特例,那在这种情况下不可以访问外部类的普通成员变量,而只能访问外部类中的静态成员,例如,下面的代码:
classOuter
{
staticintx;
staticclassInner
{
voidtest()
{
syso(x);
}
}
答题时,也要能察言观色,揣摩提问者的心思,显然人家希望你说的是静态内部类不能访问外部类的成员,但你一上来就顶牛,这不好,要先顺着人家,让人家满意,然后再说特殊情况,让人家吃惊。
31、AnonymousInnerClass(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
可以继承其他类或实现其他接口。
不仅是可以,而是必须!
32、使用java命令查看java虚拟机版本
java–version
33、数字转字符有多少种方式,分别是什么
1)String.valueOf()
2)"
"
+数字
3)Integer.toString()
34、Java创建对象有几种方式
1)new关键字
2)反射
3)克隆
4)反序列化
35、写一个反序列化实例
testObject.java
publicclasstestObjectimplementsSerializable{}
userTest.java
importjava.io.File;
importjava.io.FileOutputStream;
importjava.io.ObjectOutputStream;
publicclassuseTest{
publicstaticvoidmain(String[]args){
FileOutputStreamfileOut=null;
ObjectOutputStreamout=null;
Try{
fileOut=newFileOutputStream(newFile(“c:
\\test.dat”));
out=newObjectOutputStream(fileOut);
out.writeObject(newtestObject());
}catch(Exceptione){
e.printStackTrace();
}finally{
try{
fileOut.close();
fileOut=null;
out.close();
out=null;
三、JavaScript/JQuery/Ajax部分
1、请写一段Javascript程序,对以下程序的用户输入日期的有效性进行判断,如果格式错误就提示用户。
在程序的恰当位置注明怎样调用你写的程序。
日期格式为:
年年年年月月日日小时,例如2003010812。
html>
head>
title>
NewPage1<
/title>
/head>
body>
formmethod="
POST"
action="
test.php"
>
<
p>
查询日期(yyyymmddhh):
br>
从<
inputtype="
text"
name="
DateFrom"
size="
20"
到<
DateTo"
/p>
submit"
value="
提交"
submit1"
reset"
重写"
reset1"
/form>
/body>
/html>
答:
scripttype="
text/javascript"
functionfun(obj){
if(!
isDate(obj.value)){
alert("
日期格式错误!
);
obj.value="
;
functionisDate(str){
varreg=/^(\d{4})(\d{2})(\d{2})(\d{2})$/;
varresult=str.match(reg);
if(result==null||parseFloat(result[4])>
23)returnfalse;
vart=result[1]+"
"
+parseFloat(result[2])+"
+parseFloat(result[3]);
vard=newDate(result[1],result[2]-1,result[3]);
varnewStr=d.getFullYear()+"
+parseFloat(d.getMonth
()+1)+"
+parseFloat(d.getDate());
returnt==newStr;
/script>
查询日期(2003010812):
从<
onblur="
fun(this)"
到<
2、Java和Javascript区别在哪?
Java与JavaScript是目前比较流行的两种语言,单从表面上看,两者名称很相似,于是许多初学者容易将二者混淆,或者直接归为一类,其实不然,虽然两者有着紧密的联系,但确是两个完全不同的语言。
接下来,笔者仅就她们的几个主要差别归纳起来。
一.开发厂商
众所周知,Java是SUN公司推出的程序设计语言,特别适合于Internet应用程序开发,其前身是Oak语言,而JavaScript则是NetScape公司的产品,是为了扩展NetScapeNavigator功能而开发的一种可嵌入Web页面中的解释性语言,其前身是LiveScript。
由于Java的普及,NetScape和SUN两家公司签订合同后才将其命名为JavaScript。
二.面向对象与基于对象
Java是一种真正的纯面向对象编程语言,在Java中,一切都是对象;
JavaScript是一种脚本语言,由于她本身提供了非常丰富的内部对象供程序员使用,因而它是基于对象的语言。
三.开发和运行环境的不同
若希望利用Java编写程序并使之运行,必须事先在系统内安装相应版本的JDK和JVM,保证代码能够得到编译和运行的环境;
而编写JavaScript则相对简单,只需使用某种HTML文档编辑器甚至某种字符编辑器(如Notepad)即可,然后打开浏览器即可运行。
四.变量的区别
Java中使用变量在编译之前必须声明其数据类型,因而她采用的是强类型变量;
JavaScript则不用在变量前声明类型,而是由解释器在运行时自动检查,所以她是弱类型变量。
五.标签的不同
利用Java写出的Applet小程序,在HTML中用<
applet>
……<
/applet>
来标识;
JavaScript程序在HTML中运行,其代码在<
Script>
/Script>
标签内。
六.解释与编译
Java源代码在执行前被编译,因而在网络应用中,必须要求客户端安装有解释平台,也就意味着Java应用不与HTML文档集成(Applet小程序例外);
JavaScript是一种解释性语言,其代码在发往客户端之前不需编译,而是将其嵌入到HTML文档中,一起发送给客户端,由浏览器解释执行。
另外,JavaScript仅是一种解释性语言,并没有复杂的语法和规则,更不支持如Java里的继承这样的性质,因此也比Java更加容易学习。
3、列举javaScript的3种主要数据类型,2种复合数据类型和2种特殊数据类型。
主要数据类型:
string,boolean,number
复合数据类型:
function,object
4、谈谈你的JS的理解?
JavaScript是一种脚本语言,它采用小程序段的方式实现编程。
像其它脚本语言一样,JavaScript同样已是一种解释性语言,它提供了一个易的开发过程。
它的基本结构形式与C、C++、VB、Delphi十分类似。
但它不像这些语言一样,需要先编译,而是在程序运行过程中被逐行地解释。
它与HTML标识结合在一起,从而方便用户的使用操作。
2)基于对象的语言。
JavaScript是一种基于对象的语言,同时以可以看作一种面向对象的。
这意味着它能运用自己已经创建的对象。
因此,许多功能可以来自于脚本环境中对象的方法与脚本的相互作用。
3)简单性
JavaScript的简单性主要体现在:
首先它是一种基于Java基本语句和控制流之上的简单而紧凑的设计,从而对于学习Java是一种非常好的过渡。
其次它的变量类型是采用弱类型,并未使用严格的数据类型。
4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 面试 宝典
![提示](https://static.bdocx.com/images/bang_tan.gif)