ImageVerifierCode 换一换
格式:DOCX , 页数:114 ,大小:95.08KB ,
资源ID:6488234      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6488234.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Java经典面试题大全.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Java经典面试题大全.docx

1、Java经典面试题大全Java面试题整理 Java面向对象1. super()与this()的区别?This():当前类的对象,super父类对象。Super():在子类访问父类的成员和行为,必须受类继承规则的约束而this他代表当前对象,当然所有的资源都可以访问.在构造函数中,如果第一行没有写super(),编译器会自动插入.但是如果父类没有不带参数的构造函数,或这个函数被私有化了(用private修饰).此时你必须加入对父类的实例化构造.而this就没有这个要求,因为它本身就进行实例化的构造.而在方法中super和this使用的方法就差不多了.只不过super 要考虑是否能访问其父类的资源

2、.2. 作用域public,protected,private,以及不写时的区别?修饰符相同类相同包子类整体PrivateYesDefaultYesYesProtectedYesYesYesPublicYesYesYesyes Public:不同包、同一包、类内都可用 Private:类内 Protected: 不同包的子类、同一包、类内都可用 不写时:同一包内、类内3. 编程输出如下图形。* * * * * * * * * * *代码如下:public class Print public static void main(String args) for (int i = 0; i i;

3、j-) System.out.print(*); System.out.println(); 4. JAVA的事件委托机制和垃圾回收机制java 事件委托机制的概念,一个源产生一个事件并将它送到一个或多个监听器那里。在这种方案中,监听器简单的等待,直到它收到一个事件。一旦事件被接受,监听器将处理这个事件,然后返回。垃圾回收机制 垃圾收集是将分配给对象但不再使用的内存回收或释放的过程。如果一个对象没有指向它的引用或者其赋值为null,则次对象适合进行垃圾回收5. 在JAVA中,如何跳出当前的多重嵌套循环?用break; return 方法。6. 什么是java序列化,如何实现java序列化?(写

4、一个实例)序列化: 可以将一个对象保存到一个文件,所以可以通过流的方式在网络上传输,可以将文件的内容读取,转化为一个对象。处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用

5、ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。7. 一个.java源文件中是否可以包括多个类(不是内部类)?有什么限制?可以。如果这个类的修饰符是public,其类名与文件名必须相同。8. 排序都有哪几种方法?请列举。用JAVA实现一个快速排序?排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)快速排序的伪代码。9. Overload和Override的区别。Overloade

6、d的方法是否可以改变返回值的类型?方法的重写Override,子类覆盖父类的方法,将子类传与父类的引用调用的还是子类的方法。重载Overloading 一个类多个方法,名称相同,参数个数类型不同。两者都是Java多态性的不同表现。Overloaded的方法是可以改变返回值的类型。1, public class Ctest() Public static void main()System.out.prinln(8+8+”88”+8+8);16888810. Final类有什么特点? 属性常量 方法不可以overridding 类不可以继承11. 继承时候类的执行顺序问题,一般都是选择题,问你将

7、会打印出什么? 答:父类: package test; public class FatherClass public FatherClass() System.out.println(FatherClass Create); 子类: package test; import test.FatherClass; public class ChildClass extends FatherClass public ChildClass() System.out.println(ChildClass Create); public static void main(String args) Fat

8、herClass fc = new FatherClass(); ChildClass cc = new ChildClass(); 输出结果: C:java test.ChildClass FatherClass Create FatherClass Create ChildClass Create12. 内部类的实现方式? 答:示例代码如下: package test; public class OuterClass private class InterClass Public Interlass() System.out.println(InterClass Create); publ

9、ic OuterClass() InterClass ic = new InterClass(); System.out.println(OuterClass Create); public static void main(String args) OuterClass oc = new OuterClass(); 输出结果: C:java test/OuterClass InterClass Create OuterClass Create 13. 用JAVA实现一种排序,JAVA类实现序列化的方法(二种)?14. 如在COLLECTION框架中,实现比较要实现什么样的接口? Compar

10、able接口15. 用插入法进行排序代码如下 package test; import java.util.*; class InsertSort ArrayList al; public InsertSort(int num,int mod) al = new ArrayList(num); Random rand = new Random(); System.out.println(The ArrayList Sort Before:); for (int i=0;inum ;i+ ) al.add(new Integer(Math.abs(rand.nextInt() % mod + 1

11、); System.out.println(al+i+=+al.get(i); public void SortIt() Integer tempInt; int MaxSize=1; for(int i=1;i=(Integer)al.get(MaxSize-1).intValue() al.add(MaxSize,tempInt); MaxSize+; System.out.println(al.toString(); else for (int j=0;j=tempInt.intValue() al.add(j,tempInt); MaxSize+; System.out.println

12、(al.toString(); break; System.out.println(The ArrayList Sort After:); for(int i=0;ial.size();i+) System.out.println(al+i+=+al.get(i); public static void main(String args) InsertSort is = new InsertSort(10,100); is.SortIt(); JAVA类实现序例化的方法是实现java.io.Serializable接口 Collection框架中实现比较要实现Comparable 接口和 Co

13、mparator 接口16. 编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如我ABC4,应该截为我AB,输入我ABC汉DEF,6,应该输出为我ABC而不是我ABC+汉的半个。 答:代码如下: public static void split(String source,int num) throws Exception int k=0; String temp=; for (int i = 0; i num) break; temp=temp+source.charAt(i); System.out.println(temp)

14、; 15、Java编程,打印昨天的当前时刻public class YesterdayCurrentpublic void main(String args)Calendar cal = Calendar.getInstance();cal.add(Calendar.DATE, -1);System.out.println(cal.getTime(); 16、文件读写,实现一个计数器public int getNum()int i = -1;tryString stri=;BufferedReader in = new BufferedReader(new FileReader(f);whil

15、e(stri=in.readLine()!=null)i = Integer.parseInt(stri.trim();in.close();catch(Exception e)e.printStackTrace();return i;public void setNum()int i = getNum();i+; tryPrintWriter out=new PrintWriter(new BufferedWriter(new FileWriter(f,false); out.write(String.valueOf(i); /可能是编码的原因,如果直接写入int的话,将出现java编码和w

16、indows编码的混乱,因此此处写入的是Stringout.close() ;catch(Exception e)e.printStackTrace(); 17、指出下面程序的运行结果。class AstaticSystem.out.print(1);public A()System.out.print(2);class B extends AstaticSystem.out.print(a);public B()System.out.print(b); public class Hellopublic static void main(String ars)A ab = new B(); /

17、执行到此处,结果: 1a2bab = new B(); /执行到此处,结果: 1a2b2b注:类的static 代码段,可以看作是类首次加载(被虚拟机加载)执行的代码,而对于类的加载,首先要执行其基类的构造,再执行其本身的构造18、抽象类和接口的区别?(1)接口可以被多重implements,抽象类只能被单一extends(2)接口只有定义,抽象类可以有定义和实现(3)接口的字段定义默认为:public static final, 抽象类字段默认是friendly(本包可见)当功能需要累积时用抽象类,不需要累积时用接口。19、什么是类的返射机制?通过类(Class对象),可以得出当前类的fie

18、lds、method、construtor、interface、superClass、modified等,同是可以通过类实例化一个实例、设置属性、唤醒方法。Spring中一切都是返射、struts、hibernate都是通过类的返射进行开发的。20、类的返射机制中的包及核心类? java.lang.Class java.lang.refrection.Method java.lang.refrection.Field java.lang.refrection.Constructor java.lang.refrection.Modifier java.lang.refrection.Inter

19、face21、得到Class的三个过程是什么?对象.getClass() 类.class或Integer.type(int) Integer.class(java.lang.Integer) Class.forName();22、如何唤起类中的一个方法?产生一个Class数组,说明方法的参数通过Class对象及方法参数得到Method通过method.invoke(实例,参数值数组)唤醒方法23、如何将数值型字符转换为数字(Integer,Double)?Integer.parseInt(“1234”)Double.parseDouble(“123.2”)24、如何将数字转换为字符?1+”1.

20、0+”25、如何去小数点前两位,并四舍五入。double d=1256.22d;d=d/100;System.out.println(Math.round(d)*100);26、如何取得年月日,小时分秒?Calendar c=Calendar.getInstance(); c.set(Calendar.YEAR,2004); c.set(Calendar.MONTH,0); c.set(Calendar.DAY_OF_MONTH,31); System.out.println(c.get(Calendar.YEAR)+ +(c.get(Calendar.MONTH)+1)+ +c.get(Ca

21、lendar.DAY_OF_MONTH);27、如何取得从1970年到现在的毫秒数Java.util.Date dat=new Date();long now=dat.getTime();28、如何获取某个日期是当月的最后一天?当前日期加一天,若当前日期与结果的月份不相同,就是最后一天。取下一个月的第一天,下一个月的第一天-1public static void main(String args) Calendar c=Calendar.getInstance(); c.set(Calendar.YEAR,2004); c.set(Calendar.MONTH,0); c.set(Calend

22、ar.DAY_OF_MONTH,30); Calendar c1=(Calendar)c.clone(); System.out.println(c.get(Calendar.YEAR)+ +(c.get(Calendar.MONTH)+1)+ +c.get(Calendar.DAY_OF_MONTH); c.add(Calendar.DAY_OF_MONTH,1); if(c.get(Calendar.MONTH)!=c1.get(Calendar.MONTH) System.out.println(是最后一天); else System.out.println(不是取后一天); 29、如何

23、格式化日期?Import java.text. SimpleDateFormat;SimpleDateFormat sdf=new SimpleDateFormat(yyyy-MM-dd hh:mm:ss);Date dat=new Date();/把日期转化为字符串String str=sdf.format(dat);System.out.println(str);/将字符串转化为日期Java.util.Date d1=sdf.parse(“yyyy-mm-dd”);30、编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串。String a=new Strin

24、g(中.getBytes(gb2312),iso-8859-1);String a=new String(中.getBytes(iso-8859-1);32、String s = new String(xyz);创建了几个String Object?New了一个,”XYZ”本来又是一个两个33、float型float f=3.4是否正确? 报错,应当是float f=3.4f 如果是float f=3(整数)正确35、说出一些常用的类,包,接口,请各举5个常用的类:BufferedReader BufferedWriter FileReader FileWirter String Intege

25、r常用的包:java.lang java.awt java.io java.util java.sql javax.xml javax.sevlet javax.ejb. javax.faces 常用的接口: List Map Document NodeList EjbObject EjbHome SessionBean EntityBean36、java中会存在内存泄漏吗,请简单描述。会。如:int i,i2; return (i-i2); /when i为足够大的正数,i2为足够大的负数。结果会造成溢位,导致错误。37、java中实现多态的机制是什么? 静态的多态:方法名相同,参数个数或类

26、型不相同。(overloading) 动态的多态: 子类覆盖父类的方法,将子类的实例传与父类的引用调用的是子类的方法 实现接口的实例传与接口的引用调用的实现类的方法。 38、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?动态内存 存放类实例静态内存类本身垃圾收集主要针对的是动态内存,一般当内存不够用时会进行垃圾收集。或通过System.gc()手动收集,但不保证一定执行。 39、静态变量和实例变量的区别?static i = 10; /常量 class A a; a.i =10;/可变静态方法可以调用静态变量。实现方法可以调用静态变量、实例变量

27、41、是否可以从一个static方法内部发出对非static方法的调用?不可以,如果其中包含对象的method();不能保证对象初始化.42、写clone()方法时,通常都有一行代码,是什么?Clone 有缺省行为,super.clone();他负责产生正确大小的空间,并逐位复制。43、JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?Try:执行部分,产生异常Catch:捕捉异常Finally:不管有没有异常都执行Throws:在方法声明处声明要抛出的异常,调用者必须对其进行处理。Throw:抛出一

28、个异常在try中可以抛出异常,一般与声明的异常相同。自定义异常要继承于Exception或Exception的子类45、冒泡排序法/相邻两个数比较,将最小或最大的放到后面,最后面数的不参与比较public class BubbleSort private static int al = new int10; public BubbleSort() al0=2; al1=3; al2=23; al3=45; al4=1; al5=67; al6=23; al7=80; al8=35; al9=72; public static void main(String args) BubbleSort bs = new BubbleSort(); System.out.println(排序前:); display(al);

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

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