Java面试基础题.docx
《Java面试基础题.docx》由会员分享,可在线阅读,更多相关《Java面试基础题.docx(21页珍藏版)》请在冰豆网上搜索。
Java面试基础题
JAVA面试题-COREJAVA部分
1.在main(String[]args)方法内是否可以调用一个非静态方法?
否
2.同一个文件里是否可以有两个public类?
否
3.方法名是否可以与构造器的名字相同?
可以
4.局部内部类是否可以访问非final变量?
否
5.初始化了一个没有run()方法的线程类,是否会出错?
不会
6.选择语句case中,允许使用的值有哪些?
Int,short,byte,char
7.Math,String可以继承吗?
否
Instanceof后面跟的是什么。
类名
构造器可以是私有的吗?
不可
8.在try-catch-final块中的退出语句。
publicclassTest
{
publicstaticvoidmain(String[]args)
{
inta=1;
try
{
a=a/0;
}catch(Exceptione)
{
System.out.println("catch");
return;
//System.exit(0);
}
finally
{
System.out.println("finally");
}
}
}
注:
try-catch-finally块的顺序能不能调换
9.下面都是正确的main方法签名吗?
答:
ABC
Apublicstaticvoidmain(String[]args)
Bpublicstaticfinalvoidmain(String[]args)
Cstaticpublicvoidmain(String[]args)
Dstaticpublicabstractvoidmain(String[]args)
10.Collection与Collections的区别?
答:
Collection是接口,存放单值记录的集合结构的父接口。
Collections是类,对集合结构进行操作的工具类。
11.RandomAccessFile类的父类是?
Map接口是不是Collection接口的子接口?
答:
RandamAccessFile类的父类是Object.
Map接口不是Collection接口的子接口。
12. integer和long操作/和%与float和double有什么不同。
答:
int32位范围-231---231-1
Long64位范围-263----263-1
Int----->long(自动转换)long------>int(强制转换)
“/”是用来求商,“%”是用来求模(或求余)
Float32位范围无穷大
Double64位范围无穷大
Float------>double(自动转换)double----->float(强制转换)
13.普通内部类可以拥有静态变量吗?
静态内部类呢?
答:
普通内部类不可以拥有静态变量。
静态内部类可以拥有静态变量。
14.运行时异常与一般异常有何异同?
答:
运行时异常系统不需要我们去处理。
一般异常系统要求我们去处理。
15. File类有没有处理文件内容的方法?
InputStream和OutputStream能不能创建对象?
答:
File类没有处理文件内容的方法。
InputStream和OutputStream不能创建对象。
16. 所有关于NaN(NotaNumber)和non-NaN的比较的值?
17.说出ArrayList,Vector,LinkedList的存储性能和特性.
答:
ArrayList轻量级(耗内存)非同步(并行)扩展一半
Vector重量级(耗内存)同步(串行)扩展一倍
ArrayList和Vector是以数组的形式存取数据的。
LinkedList以链表的形式存取数据的
18.谈谈final,finally,finalize的区别。
答:
Final修饰符(关键字),一个类被声明为final,就不能再派生出新的子类,不能作为父类被继承,被声明的变量必须在声明时给定初值,在以后的引用中只能读取,不可修改,其方法也只能使用,不能重载。
19.AnonymousInnerClass(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
答:
可以,(是隐含地)。
20.StaticInnerClass和MemberInnerClass的不同。
答:
----staticinnerclass:
---定义在类里
---本身定义所有的属性和方法;
---能够直接访问外部类的静态的属性和功能;
---不能用private修饰,用static修饰
---Outer.Innerin=newOuter.Inner();
---不能与外部类同名
----memberinnerclass:
---定义在类里,不用static修饰
---只能定义非静态的属性和功能
---访问外部类的所有属性和功能
---Outer.Innerin=newOuter().newInner();
21.&和&&的区别。
答:
&是位运算符,&&是逻辑运算符。
如果按逻辑运算来说,&是非短路方式,&&是短路方式。
22.HashMap和Hashtable的区别。
答:
HashMap非同步允许有空键和空值。
Hahtable同步不允许有空键和空值。
23.什么时候用assert?
答:
assert:
断言JDK1.4版本以后,调试用的。
24.Strings=newString("xyz");创建了几个StringObject?
答:
创建了两个StringObject.
25.Math.round(11.5)等於多少?
Math.round(-11.5)等於多少?
答:
Math.round(11.5)等於:
12
Math.round(-11.5)等於:
-11
26.shorts1=1;s1=s1+1;有什么错?
shorts1=1;s1+=1;有什么错?
答:
shorts1=1;s1=s1+1;系统会提示损失精度。
shorts1=1;s1+=1;没有错
27.数组有没有length()这个方法?
String有没有length()这个方法?
答:
有。
28.Overload和Override的区别。
Overloaded的方法是否可以改变返回值的类型?
答:
overLoading--->namesame,paramnotsame,returntypemaybesame
--->发生在一个类的内部,也可能是父类和子类之间
--->就近向上扩张-->向封装类过渡
Override
---发生在父类和子类之间
--namesame,paramsame,returntypesame
---访问控制权限不能更窄
--不能抛出更多的异常
---private,finalcan'toverride
---staticmethod只能被静态方法覆盖,不体现多态
---synchronized特性不能遗传
29.”==”与equals有何区别?
当两边类型不匹配时,有何不同?
答:
”==”判断引用的值是否相等。
当两边类型不匹配时,编译报错
equals判断对象的内容是否相等。
当两边类型不匹配时,返回fales.
30.给我三个你最常见到的runtimeexception。
答:
1.ArithmeticException
2.nullponterException
3.地址越界异常
31.error和exception有什么区别?
答:
error和exception的总的父类是Throwable
---Error:
是非常严重的错误,系统不要求我们处理。
---Exception:
UncheckedException(RuntimeException)
CheckedException(必须处理)
32.List,Set,Map是否继承自Collection接口?
答:
List和Set是继承自Collection接口的。
Map不是继承自Collection接口的。
33.sleep()和wait()有什么区别?
答:
sleep()是暂停执行,处于阻塞状态中,会自动醒来。
Wait()是处于等待队列中,必须有notify(),notifyAll()或interrup()调用时,才会出来。
34.abstract的method是否可同时是static,synchronized,native?
答:
不可以。
因为static,synchronized,native,它们的方法都不能被覆盖,然而abstract的method是只有名的定义,没有具体的实现,其存在的意义就是被覆盖。
35.接口是否可继承接口?
抽象类是否可实现(implements)接口?
抽象类是否可继承实体类答(concreteclass)?
答:
接口可以继承接口,抽象类可以实现(implements)接口,抽象类可以继承实体类(concreteclass),(要求其他类最好有无参的构造方法)。
36.Constructor是否可被override?
答:
Constructor不可以被override?
37.启动一个线程是用run()还是start()?
有什么区别?
答:
启动一个线程是用start()。
Run()是运行一个线程。
38.Class.forName的作用?
答:
Class.forName的作用是用来获得元对象。
39.写一个冒泡排序的程序。
40.几种常用的数据结构及内部实现原理。
41.作用域public,private,protected,以及不写时的区别。
答:
public作用在本类,本包,子类,以及其它的地方。
Private作用在本类。
Protected作用在本类,本包,子类。
Default作用在本类,本包。
42.ArrayList和Vector的区别?
答:
ArrayList轻量级(耗内存)非同步(并行)扩展一半
Vector重量级(耗内存)同步(串行)扩展一倍
ArrayList和Vector是以数组的形式存取数据的。
43.char型变量中能不能存贮一个中文汉字?
为什么?
答:
char型变量中能,且只能存贮一个中文汉字。
因为受char类型的编码方式所限。
44.现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;
45.编程题:
用最有效率的方法算出2乘以8等於几?
46.两个对象值相同(x.equals(y)==true),但却可有不同的hashcode,这句话对不对?
47.当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
答:
是引用传递。
48。
编程题:
写一个Singleton出来。
方式一:
醉汉式
publicclassSingleton
{
privatestaticSingletontest=newSingleton();//静态的。
保留自身的引用。
//必须是私有的构造函数
privateSingleton(){}
publicstaticSingletongetInstance()//公共的静态的方法。
{
returntest;
}
}
方式二:
懒汉式
publicclassSingleton
{
privatestaticSingletontest=null;//静态的。
保留自身的引用。
//必须是私有的构造函数
privateSingleton(){}
publicstaticSingletongetInstance()//公共的静态的方法。
{
if(test==null)
{
test=newSingleton();
}
returntest;
}
}
49.描述一下JVM加载class文件的原理机制?
50.列出一些控制流程的方法;
答:
1.if-----else
2.switch------case(break)
3.do------while
4.while-------do
5.for
51.Java中的异常处理机制的简单原理和应用。
答:
1Throwable
---Error
---Exception:
UncheckedException(RuntimeException)
CheckedException(必须处理)
2throws:
atmethodname
---Throwable:
class
---throws:
声明抛弃异常,定义方法名上,后面跟类名
---throw:
抛出异常对象,定义在方法里,后面跟异常对象
3try{}catch(Exceptione){}finally{}
System.exit(0)不执行finally
CheckedException:
try,catch但是finally可以省
RuntimeException:
try后面跟catchorfianlly
4finalfinalize()finally
5classMyExceptionextendsException
classMyExceptionextendsRuntimeException
52.为什么有Java的接口。
53.垃圾回收的优点和原理。
答:
垃圾回收:
首先一块内存在没有任何引用指向它时,它就是垃圾,虚拟机会启动系统线程,后台实时监测,当虚拟机空闲时,会自动回收这些垃圾。
54.在collection中,实现比较要实现什么样的接口?
55.串行化的注意事项以及如何实现串行化?
56.线程的基本概念、线程的基本状态以及状态之间的关系
答:
线程是进程里顺序的流程。
不能独立存在,线程共享数据。
57.线程的同步、如何实现线程的同步?
答:
线程的同步synchronized
58.Socket通信(TCP、UDP区别及Java实现方式)
答:
TCP是传输控制协议,可靠的,面向连接的,安全性高,实时传输慢。
UDP是用户数据包协议,不可靠的,面向无连接的,错序,丢包,实时传输快。
最近一个月在深圳找工作,收集了一些笔试题目,贴上来大家一起研究研究。
笔试试题摘录
1、SQLStatementAPI共有多少种,分别描述一下。
2、WAR、EAR分别代表什么,请简单描述。
EAR的部署文件是ear-jar.xml吗?
3、给出一个JUnit的文件,请问运行该文件的输出结果是什么?
4、UML的框图有多少种,请分别描述一下。
5、EJB的事务如何处理?
6、给出ANT的build.xml,请指出不带参数执行该文件时Target的执行顺序
7、CVS的创建、编译、删除的command分别是什么?
8、=与equal()的区别在哪?
intshortlong的区别是什么?
short("5")==short(5)?
int("5)==int(5)?
long("5)==long(5)?
int(5)==short(5)?
依此类推,具体题目不太记得了。
9、内聚与藕合的概念
10、给三个表结构,表内容、查询结果,要求根据结果写SQL语句
3表关系类似:
员工表,项目表,员工所负责项目表
查询结果:
所有项目资料,并在项目资料后显示负责人的详细资料
11、EJB,给三个SB,三个EB,要求写出包含回滚事务的代码
12、设计模式的概念,用一个你熟悉的设计模式举例说明设计模式带来的好处
13、JSP内置对象的生命周期及范围
14、写代码实现JAVA的“栈堆”
15、线程之间如何通讯
16、JSP1->Servlet->JSP2,JSP1中有一个FORM值,到了JSP2后,值变成了什么?
17、说一下你理解的重构,什么情况下你会考虑重构?
18、说一下你对“树”、“工作流”的理解
19、编写ANTbuild.xml生成WAR文件
20、编写JSPTaglib,包括TAB处理的JAVA文件,.tlb文件,JSP调用代码等。
21、写出客户端调用EJB的代码
题目仅凭回忆而写,不保证题目描述的准确,不对任何人学习的后果负责。
如你将其用于项目或考试,本人亦不负任何责任。
看了都知道,也马马虎虎全用过,但好像真很难回答
1至少2种
2不好回答
3true/false
4特难,就算我经常在用rose也回答不了
5事务处理,隔离,会滚?
6太低层次,只用工具
7图形cvs,不用命令
8=和equal大概是值相等和引用同一个,asc"5"!
=5,全部补相等,考asc码表?
9?
10selecta.name,b.name,c.nameformaaasa,bbasb,ccascwherea.id=c.idandb.id=c.id
11ejb正在研究
12不好一句话回答,工程,桥梁,代理,mvc,修饰随便几个吓唬吓唬他
13部指导
14先进后出
15县城不知道
16nnd,谁知道你servlet作了什么动作,再说,你拿到值不在jsp2显示/使用,狗屁问题
17代码的正规化,在代码重/又长又乱/的情况下使用
18树,放信息的咚咚,工作流=同事说是工作流程?
?
19编写ant那么重要?
?
配个笔记本,现场deplay
20jsptaglib/strutstablib,会使用,自己编taglib不会
21privatecom.MySessionHomegetHome()throwsNamingException{
return(com.MySessionHome)getContext().lookup(
com.MySessionHome.JNDI_NAME);
}
privateInitialContextgetContext()throwsNamingException{
Hashtableprops=newHashtable();
props.put(InitialContext.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
props.put(InitialContext.PROVIDER_URL,"jnp:
//127.0.0.1:
1099");
//Thisestablishesthesecurityforauthorization/authentication
//props.put(InitialContext.SECURITY_PRINCIPAL,"username");
//props.put(InitialContext.SECURITY_CREDENTIALS,"password");
InitialContextinitialContext=newInitialContext(props);
returninitialContext;
}
publicvoidtestBean()throwsSQLException{
try{
com.MySessionmyBean=getHome().create();
System.out.println(myBean.mySession("client"));
for(inti=0;i<10;i++){
System.out.println(myBean.mySession("client#"));
//myBean.count();
}
myBean=null;
for(inti=0;i<10;i++){
com.MySessionmyBean2=getHome().create();
System.out.println(myBean2.mySession("client *"));
//myBean.count();
}
//--------------------------------------
//Thisistheplaceyoumakeyourcalls.
//System.out.println(myBean.callYourMethod());
}catch(RemoteExceptione){
e.printStackTrace();
}catch(CreateExceptione){
e.printStackTrace();
}catch(NamingExceptione){
e.printStackTrace();
}
}
publicstaticvoidmain(String[]args)throwsSQLException{
Clienttest=newClient();
test.testBean();
}
}
笔试试题摘录
1、SQLStatementAPI共有多少种,分别描述一下。
//Driver,Connection,PreparedStatement,Statement,ResultSet,分别是数据库驱动,连接,事前声明,声明,结果集
2、WAR、EAR分别代表什么,请简单描述。
EAR的部署文件是ear-jar.xml吗?
//WAR是webapp打包文件,EAR是ejb打包文件,我觉得ear-jar.xml是描述文件,部署文件还是build.xml
3、给出一个JUnit的文件,请问运行该文件的输出结果是什么?
//
4、UML的框图有多少种,请分别描述一下。
//UML框图:
BusinessUseCase;UseCase;Activity;Sequence;Collaboration;Class;Statechart;Component;Deployment
5、EJB的事务如何处理?
//没接触
6、给出ANT的build.xml,请指出不带参数执行该文件时Target的执行顺序