JAVA面试题目整理.docx
- 文档编号:30037181
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:53
- 大小:41.91KB
JAVA面试题目整理.docx
《JAVA面试题目整理.docx》由会员分享,可在线阅读,更多相关《JAVA面试题目整理.docx(53页珍藏版)》请在冰豆网上搜索。
JAVA面试题目整理
一、Java基础
第01题:
作用域public,private,protected,以及不写时的区别
在说明这四个关键字之前,我想就class之间的关系做一个简单的定义,对于继承自己的class,baseclass可以认为他们都是自己的子女,而对于和自己一个目录下的classes,认为都是自己的朋友。
1、public:
public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用
2、private:
private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。
3、protected:
protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。
作用域当前类同一package子孙类其他package
第02题:
AnonymousInnerClass(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)
第03题:
StaticNestedClass和InnerClass的不同
第04题:
&和&&的区别
一个是一位运算的符号,一个是逻辑运算符的
第05题:
Collection和Collections的区别
Collection是集合类的上级接口,继承与他的接口主要有Set和List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
第06题:
什么时候用assert
第07题:
Strings=newString("xyz");创建了几个StringObject
是两个String Object 先声明一下s不是对象只不过是一个引用
在“xyz”的时候创建了一个String Object
在new String(“xyz”)的时候又创建了一个String Object
想一想我们经常这样写 String str=“xyz”;str是一个引用,而“xyz”这样的语法就能创建一个String对象,会在内存中开辟一块空间来存放“xyz”
String str1=new String(“xyz”)是根据“xyz”创建一个String对象(注意是从新开辟一块内存,内存中存放的同样是“xyz”)并且让引用str1指向这新的内存
综上所述在你的程序中创建了两个String Object 和一个引用
第08题:
Math.round(11.5)等於多少?
Math.round(-11.5)等於多少
第09题:
shorts1=1;s1=s1+1;有什么错?
shorts1=1;s1+=1;有什么错
当然有错误,short占2个字节,int占4个字节,short型变量+上int型值计算结果是int型,占4个字节,然后付给一个short型变量s1,就要丢失2个字节的精度,这是不容许的。
shorts1=1;s1=s1+1;有错,s1是short型,s1+1是int型,不能显式转化为short型。
可修改为s1=(short)(s1+1)。
shorts1=1;s1+=1正确
1例使用简单赋值运算,2例使用复合赋值运算,而简单赋值运算和复合赋值运算的最大差别就在于:
复合赋值运算符会自动地将运算结果转型为其左操作数的类型!
第10题:
Java有没有goto
第11题:
数组有没有length()这个方法?
String有没有length()这个方法
数组没有length()这个方法,有length的属性。
String有有length()这个方法。
第12题:
Overload和Override的区别。
Overloaded的方法是否可以改变返回值的类型
Overload为重载,重载父类的方法,方法名相同,但数据类型和参数不同,而override则为覆盖,覆盖是完全重写父类的方法,且数据类型,参数都要相同啊!
overloaded的方法可以改变返回值的数据类型
第13题:
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
是用==还是equals()?
它们有何区别
第14题:
给我一个你最常见到的runtimeexception
第15题:
error和exception有什么区别
Error(错误)表示系统级的错误和程序不必处理的异常,是java运行环境中的内部错误或者硬件问题,比如,内存资源不足等,对于这种错误,程序基本无能为力,除了退出运行外别无选择。
Exception(违例)表示需要捕捉或者需要程序进行处理的异常,它处理的是因为程序设计的瑕疵而引起的问题或者在外的输入等引起的一般性问题,是程序必须处理的。
第16题:
List,Set,Map是否继承自Collection接口
第17题:
abstractclass和interface有什么区别
抽象类里面可以定义方法,也可以实现方法,interface只能定义;
抽象类的的方法在子类中可以不实现,也可以重写父类的方法。
而接口中的所有方法一定要实现,不可遗漏
第18题:
abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized
第19题:
接口是否可继承接口?
抽象类是否可实现(implements)接口?
抽象类是否可继承实体类(concreteclass)
1.接口可以继承接口..但是要使用extends~而不是用implements
如:
interfacea{}
interfacebextendsa{}
2.抽象类可以实现接口..
比如java.util中的AbstractCollection类就是实现的Collection接口
3.抽象类可以继承实体类但前提是要有构造方法
第20题:
构造器Constructor是否可被override
第21题:
是否可以继承String类
String类是final类故不可以继承。
第22题:
try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后
第23题:
用最有效率的方法算出2乘以8等於几
第24题:
两个对象值相同(x.equals(y)==true),但却可有不同的hashcode,这句话对不对
第25题:
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递
Java中有人分为值传递和址传递。
引用传递也就是址传递。
是值传递。
Java编程语言只有值传递参数。
当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。
对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。
第26题:
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上
第27题:
ArrayList和Vector的区别,HashMap和Hashtable的区别
就ArrayList与Vector主要从二方面来说.
一.同步性:
Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是
同步的
二.数据增长:
当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半
就HashMap与HashTable主要从三方面来说。
一.历史原因:
Hashtable是基于陈旧的Dictionary类的,HashMap是Java1.2引进的Map接口
的一个实现
二.同步性:
Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,
不是同步的
三.值:
只有HashMap可以让你将空值作为一个表的条目的key或value
第28题:
char型变量中能不能存贮一个中文汉字?
为什么?
不能
char只占一个字节。
汉字通常是两个字节来表示,可以使用char数组来表示汉字。
例如
chara[5]="你";
第29题:
GC是什么?
为什么要有GC
GC是垃圾收集器。
程序员不用担心内存管理,因为垃圾收集器会自动进行管理。
要请求垃圾收集,可以调用下面的方法之一:
System.gc()
Runtime.getRuntime().gc()
第30题:
float型floatf=3.4是否正确?
不正确。
精度不准确,应该用强制类型转换,如下所示:
floatf=(float)3.4或floatf=3.4f
第31题:
介绍JAVA中的CollectionFrameWork(包括如何写自己的数据结构)?
第32题:
抽象类与接口?
第33题:
STRING与STRINGBUFFER的区别。
JAVA平台提供了两个类:
String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。
这个String类提供了数值不可改变的字符串。
而这个StringBuffer类提供的字符串进行修改。
当你知道字符数据要改变的时候你就可以使用StringBuffer。
典型地,你可以使用StringBuffers来动态构造字符数据。
第34题:
谈谈final,finally,finalize的区别
final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。
因此一个类不能既被声明为abstract的,又被声明为final的。
将变量或方法声明为final,可以保证它们在使用中不被改变。
被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。
被声明为final的方法也同样只能使用,不能重载。
finally—再异常处理时提供finally块来执行任何清除操作。
如果抛出一个异常,那么相匹配的catch子句就会执行,然后控制就会进入finally块(如果有的话)。
finalize—方法名。
Java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。
这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。
它是在Object类中定义的,因此所有的类都继承了它。
子类覆盖finalize()方法以整理系统资源或者执行其他清理工作。
finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。
第35题:
面向对象的特征有哪些方面
封装继承多态
第36题:
String是最基本的数据类型吗
第37题:
int 和 Integer 有什么区别
第38题:
运行时异常与一般异常有何异同
Java提供了两类主要的异常:
runtimeexception和checkedexception。
checked异常也就是我们经常遇到的IO异常,以及SQL异常都是这种异常。
对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch。
所以,面对这种异常不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常。
但是另外一种异常:
runtimeexception,也称运行时异常,我们可以不处理。
当出现这样的异常时,总是由虚拟机接管。
比如:
我们从来没有人去处理过NullPointerException异常,它就是运行时异常,并且这种异常还是最常见的异常之一。
第39题:
说出ArrayList,Vector, LinkedList的存储性能和特性
第40题:
HashMap和Hashtable的区别
第41题:
heap和stack有什么区别
第42题:
Java的接口和C++的虚类的相同和不同处
第43题:
Java中的异常处理机制的简单原理和应用
第44题:
垃圾回收的优点和原理。
并考虑2种回收机制
第45题:
你所知道的集合类都有哪些?
主要方法?
第46题:
描述一下JVM加载class文件的原理机制?
第47题:
排序都有哪几种方法?
请列举
第48题:
JAVA语言如何进行异常处理,关键字:
throws,throw,try,catch,finally分别代表什么意义?
在try块中可以抛出异常吗?
throws是用来声明一个方法可能抛出的所有异常信息
throw则是指抛出的一个具体的异常类型。
通常在一个方法(类)的声明处通过throws声明方法(类)可能抛出的异常信息,而在方法(类)内部通过throw声明一个具体的异常信息。
throws通常不用显示的捕获异常,可由系统自动将所有捕获的异常信息抛给上级方法;
throw则需要用户自己捕获相关的异常,而后在对其进行相关包装,最后在将包装后的异常信息抛出。
第49题:
一个".java"源文件中是否可以包括多个类(不是内部类)?
有什么限制?
第50题:
java中有几种类型的流?
JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
字节流,字符流。
字节流继承于InputStreamOutputStream,字符流继承于InputStreamReaderOutputStreamWriter。
在java.io包中还有许多其他的流,主要是为了提高性能和使用方便。
第51题:
java中会存在内存泄漏吗,请简单描述。
第52题:
java中实现多态的机制是什么?
第53题:
垃圾回收器的基本原理是什么?
垃圾回收器可以马上回收内存吗?
有什么办法主动通知虚拟机进行垃圾回收
第54题:
静态变量和实例变量的区别?
第55题:
什么是java序列化,如何实现java序列化?
第56题:
是否可以从一个static方法内部发出对非static方法的调用?
第57题:
写clone()方法时,通常都有一行代码,是什么?
第58题:
在JAVA中,如何跳出当前的多重嵌套循环?
第59题:
List、Map、Set三个接口,存取元素时,各有什么特点?
第60题:
说出一些常用的类,包,接口,请各举5个
第61题:
写一个Singleton出来。
第62题:
启动一个线程是用run()还是start()?
第63题:
java中有几种方法可以实现一个线程?
用什么关键字修饰同步方法?
stop()和suspend()方法为何不推荐使用?
第64题:
sleep() 和 wait() 有什么区别?
第65题:
同步和异步有何异同,在什么情况下分别使用他们?
举例说明。
第66题:
当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
第67题:
请说出你所知道的线程同步的方法。
第68题:
多线程有几种实现方法,都是什么?
同步有几种实现方法,都是什么?
第69题:
线程的基本概念、线程的基本状态以及状态之间的关系
第70题:
简述synchronized和java.util.concurrent.locks.Lock的异同 ?
第71题:
java中会存在内存泄漏吗,请简单描述
第72题:
Object的方法
第73题:
文件系统的几个类:
FileInputStream、FileOutputStream、FileReader、FileWriter的区别
第74题:
什么是进程和线程?
两者的区别是什么?
第75题:
CORBA是什么?
用途是什么?
第76题:
描述一下JVM加载class文件的原理机制?
第77题:
try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后
第78题:
写一个方法,将Date类型转为String类型/将String类型转为Date类型
第79题:
写一个排序方法,任意/快速查找
第80题:
写一个方法将excel中的数据导入到程序中
第81题:
Strings=newString("xyz");创建了几个StringObject?
第82题:
用最有效率的方法算出2乘以8等于几?
第83题:
有a,b两个变量,不用第三个变量,交换a,b的值
第84题:
描述一下JVM加载class文件的原理机制?
第85题:
char型变量中能不能存贮一个中文汉字?
为什么?
二、JavaWeb
第01题:
forward 和redirect的区别
第02题:
jsp有哪些内置对象?
作用分别是什么?
第03题:
jsp有哪些动作?
作用分别是什么?
第04题:
JSP中动态INCLUDE与静态INCLUDE的区别?
第05题:
两种跳转方式分别是什么?
有什么区别?
第06题:
说一说Servlet的生命周期?
第07题:
Servlet的基本架构
第08题:
什么情况下调用doGet()和doPost()?
第09题:
页面间对象传递的方法
第10题:
JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
第11题:
Request对象的主要方法
第12题:
我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?
第13题:
Servlet执行时一般实现哪几个方法?
第14题:
Struts1.x中DispatchAction怎么用?
有Action有哪些区别?
第15题:
MVC的各个部分都有那些技术来实现?
如何实现
第16题:
开发中都用到了那些设计模式?
用在什么场合
第17题
请你谈谈SSH整合
第18题:
Hibernate外键关联,做多表链接查询出的字段如果没有实体bean与之相对应,该如何解决?
第19题:
Hibernate的sessionfactory和session的区别是什么?
如何处理session线程不安全问题?
第20题:
Hibernate如何实现动态查询?
DetachedCriteria与Criteria的区别是什么?
第21题:
写一段Jdbc连Oracle的程序,并实现数据查询.
第22题:
Struts优点与缺点
第23题:
Struts提供了几个标签库?
都是什么标签库?
第24题:
Tiles框架是什么?
第25题:
Hibernate中的Session.load()和Session.get()的区别
第26题:
Spring和Struts的区别?
第27题:
什么是aop,aop的作用是什么?
第28题:
aop中的关键名词有些那些,相互关系是什么?
第29题:
依赖注入的方式有几种,各是什么?
第30题:
Hibernate中的update()和saveOrUpdate()的区别
第31题:
Spring对多种ORM框架提供了很好的支持,简单描述在Spring中使用Hibernate的方法,并结合事务管理
第32题:
使用Spring的好处是什么
第33题:
Hibernate是如何延迟加载?
第34题:
说下Hibernate的缓存机制
第35题:
Hibernate的查询方式
第36题:
如何优化Hibernate?
第37题:
HttpSessionsession=request.getSession()
与HttpSessionsession=request.getSession(true)的区别?
第38题:
Class.forName的作用?
为什么要用?
第39题:
Jdo是什么?
第40题:
说出数据连接池的工作机制是什么?
列举几个常用的数据连接池。
第41题:
JDBC如何调用数据连接池
第42题:
xml有哪些解析技术?
区别是什么?
第43题:
你在项目中用到了xml技术的哪些方面?
如何实现的?
第44题:
XML文档定义有几种形式?
它们之间有何本质区别?
解析XML文档有哪几种方式?
第45题:
请用编程语言写一个排列组合的算法。
可以实现一个简单的算法:
存在N个数组,输出在每个数组取一个元素的排列组合结果。
假设:
数组A=[X,Y,Z],数组B=[1,2]
组合的结果:
X1,X2,Y1,Y2,Z1,Z2
排列组合的结果:
X1,X2,Y1,Y2,Z1,Z2,1X,1Y,1Z,2X,2Y,2Z
要求程序可以适应N为任意数和每个数组长度不同的情况(假设内存足够大,程序可以不考虑效率)。
第46题:
请描述HTTP交互中Session和Cookies的关系以及二者的区别
第47题:
请用流程图或文字描述Servlet的开发和部署过程,包括从java类的编码到可以通过IE访问
第48题:
多人访问网站,如何减轻服务器压力(程序实现,考虑Hibernet中的方法)
第49题:
多个人访问数据序,一个对数据序进行了修改,而另一个人已在修改前查询到页面,当点击打印时,该怎样做,才能能到修改后的最新数据。
第50题:
MVC是什么?
第51题:
CVS是什么?
第52题:
Struts2和Spring集成的时候,是否可以把Action设置成singleton模式,请简述理由
第53题:
简要叙述Hibernate一级缓存和二级缓存的作用
第54题:
什么是singleton模式和DAO模式?
第55题:
简述Spring中DI、IoC和AOP的含义。
第56题:
请比较Struts1.x和Struts2在多模块开发方面的差异
三、JavaScrpt和Css
第01题:
编写函数,用于过滤一个数组内重复的元素,并用这些元素重构一个新数组,新数组内也不能有重复元素。
第02题:
javascript是不是面向对象的语言?
如果是,怎么实现继承?
第03题:
如何获取表单
第04题:
在JavaScript中定时调用函数foo()如何写?
第05题:
vara=”10”;varb=”20”;varc=”10”;vard=10;alert(a=b);alert(a==b);alert(c==d);alert(a===b);结果是?
第06题:
Varobj=newObject();obj.a=”001”;obj.b=”002”;obj.c=”003”;obj.d=”004”;...................
写一个function遍历obj对象中的所有的属性对应的值
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 面试 题目 整理