2022年JAVA面试题综合 .pdf

上传人:C****o 文档编号:32105943 上传时间:2022-08-08 格式:PDF 页数:17 大小:141.39KB
返回 下载 相关 举报
2022年JAVA面试题综合 .pdf_第1页
第1页 / 共17页
2022年JAVA面试题综合 .pdf_第2页
第2页 / 共17页
点击查看更多>>
资源描述

《2022年JAVA面试题综合 .pdf》由会员分享,可在线阅读,更多相关《2022年JAVA面试题综合 .pdf(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、JAVA 面试题综合 1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 17 页 - - - - - - - - - 目录Java 面试题整理 . 错误!未定义书签。Java 面向对象 . 41. super()与 this()的区别? . 42. 作用域 public,protected,private, 以及不写时的区别? . 43. 编程输出如下图形。. 44. JAVA 的事件委托机制和垃圾回收机制. 55. 在 JAVA 中,如何跳出当前的多重嵌套循环?. 5

2、6. 什么是 java 序列化,如何实现java 序列化? (写一个实例 ) . 57. 一个 .java 源文件中是否可以包括多个类(不是内部类)?有什么限制? . 58. 排序都有哪几种方法?请列举。用JAVA 实现一个快速排序?. 59. Overload 和 Override 的区别。 Overloaded 的方法是否可以改变返回值的类型? . 610. Final 类有什么特点?. 611. 继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么? . 612. 内部类的实现方式? . 713. 用 JAVA 实现一种排序,JAVA 类实现序列化的方法(二种 )?错 误 ! 未

3、 定 义 书签。14. 如在 COLLECTION框架中,实现比较要实现什么样的接口?. 715.用插入法进行排序代码如下. 错误!未定义书签。16. 编程: 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如我 ABC4 ,应该截为 我 AB ,输入我 ABC 汉 DEF,6,应该输出为我 ABC 而不是 我 ABC+ 汉的半个 。 . 815、Java编程 ,打印昨天的当前时刻. 916、文件读写 ,实现一个计数器. 917、指出下面程序的运行结果。. 10 18、抽象类和接口的区别?. 10 19、什么是类的返射机制? . 11 2

4、0、类的返射机制中的包及核心类? . 11 21、得到 Class 的三个过程是什么? . 11 22、如何唤起类中的一个方法?. 11 23、如何将数值型字符转换为数字(Integer,Double)? . 11 24、如何将数字转换为字符?. 11 25、如何去小数点前两位,并四舍五入。. 12 26、如何取得年月日,小时分秒?. 12 27、如何取得从1970 年到现在的毫秒数. 12 28、如何获取某个日期是当月的最后一天?. 12 29、如何格式化日期?. 13 30、编码转换,怎样实现将GB2312 编码的字符串转换为ISO-8859-1 编码的字符串。 . 13 32、Strin

5、g s = new String(xyz); 创建了几个String Object? . 13 33、float 型 float f=3.4 是否正确 ? . 13 35、说出一些常用的类,包,接口,请各举5 个 . 13 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 17 页 - - - - - - - - - 36、java 中会存在内存泄漏吗,请简单描述。 . 14 37、java 中实现多态的机制是什么? . 14 38、 垃圾回收器的基本原理是什么?垃圾回收器

6、可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?. 14 39、静态变量和实例变量的区别?. 14 41、是否可以从一个static 方法内部发出对非static 方法的调用? . 14 42、写 clone() 方法时,通常都有一行代码,是什么?. 14 43、JAVA 语言如何进行异常处理,关键字: throws,throw,try,catch,finally分别代表什么意义?在 try 块中可以抛出异常吗? . 15 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3

7、 页,共 17 页 - - - - - - - - - Java面向对象1. super() 与 this() 的区别?this()当前类的对象, super()父类对象。super() :在子类访问父类的成员和行为,必须受类继承规则的约束而 this 代表当前对象 ,当然所有的资源都可以访问. 在构造函数中 ,如果第一行没有写super(),编译器会自动插入 .但是如果父类没有不带参数的构造函数 ,或这个函数被私有化了 (用 private 修饰).此时你必须加入对父类的实例化构造 .2. 作用域 public,protected,private,以及不写时的区别?public: 不同包、同

8、一包、类内都可用private:类内protected: 不同包的子类、同一包内、类内都可用不写时 :同一包内、类内3. 编程输出如下图形。* * * * * * * * * * * * * * * 代码如下:publicclass Print publicstaticvoid main(String args) for ( int i = 0; i i; j-) System.out .print(*); System.out .println(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - -

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

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

11、数为 obj 的对象写出 (即保存其状态 ) ,要恢复的话则用输入流。7. 一个.java 源文件中是否可以包括多个类(不是内部类)?有什么限制?可以。如果这个类的修饰符是public ,其类名与文件名必须相同。8. 排序都有哪几种方法?请列举。用JAVA 实现一个快速排序?排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共

12、 17 页 - - - - - - - - - 代码见文件9. Overload和 Override的区别。 Overload的方法是否可以改变返回值的类型? 方法的重写Override :子类覆盖父类的方法,将子类传与父类的引用调用的还是子类的方法。重载 Overloading :一个类多个方法,名称相同,参数个数类型不同。两者都是 Java 多态性的不同表现。Overloaded 的方法是可以改变返回值的类型。10. final类有什么特点?类不可以继承属性常量方法不可以overridding 11. 继承时候类的执行顺序问题,一般都是选择题 ,问你将会打印出什么 ? 答: 父类:pack

13、age 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) FatherClass fc = new

14、FatherClass(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 17 页 - - - - - - - - - ChildClass cc = new ChildClass(); 输出结果:C:java test.ChildClass FatherClass Create FatherClass Create ChildClass Create 12. 内部类的实现方式 ? 答:示例代码如下:package test; public class OuterCl

15、ass private class InterClass public Interlass() System.out.println(InterClass Create); public 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 O

16、uterClass Create 13. 如在 COLLECTION 框架中,实现比较要实现什么样的接口?Collection框架中实现比较要实现Comparable 接口和 Comparator 接口名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 17 页 - - - - - - - - - 14. 编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如我 ABC4 ,应该截为 我 AB ,输入 我 ABC 汉

17、DEF ,6,应该输出为 我 ABC 而不是 我ABC+ 汉的半个 。答:代码如下:publicclass Test staticvoid split(String str, int length) throws Exception byte bt = str.getBytes(gbk); / for (int i = 0; i bt.length; i+) / / 打印出字节数组中的值,可以看出只要是汉字 采用 GBK编码时占两个字节/UTF-8占3个字节 ,并且为两个负整数/ / 由于字节的第一位都是1, 所以它就是由负数来表示的/ System.out.println(bti); / /

18、 判断最后一个是否为负,如果是负的则加上后面一个字节int i=0; int num=0; for(;ibt.length;i+) if(bti 0) i+; num+; if(num=length) break; System.out.println(i); System.out.println(new String(bt, 0, +i, gbk); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 17 页 - - - - - - - - - publicstaticv

19、oid main(String args) try Test.split( 我 ABC 汉 DEF , 4); catch (Exception e) / TODO Auto-generated catch block e.printStackTrace(); 15、Java 编程 ,打印昨天的当前时刻import java.util.Calendar; publicclass Test publicstaticvoid main(String args) Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, -1); Sy

20、stem.out.println(cal.getTime(); 16、文件读写 ,实现一个计数器public int getNum() int i = -1; try String stri=; BufferedReader in = new BufferedReader(new FileReader(f); while(stri=in.readLine()!=null) i = Integer.parseInt(stri.trim(); in.close(); catch(Exception e) e.printStackTrace(); return i; public void setN

21、um() int i = getNum(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 17 页 - - - - - - - - - i+; try PrintWriter out=new PrintWriter(new BufferedWriter(new FileWriter(f,false); out.write(String.valueOf(i); out.close() ; catch(Exception e) e.printStackTrace(); 1

22、7、指出下面程序的运行结果。class A static System.out.print(1); public A() System.out.print(2); class B extends A static System.out.print(a); public B() System.out.print(b); public class Hello public static void main(String ars) A ab = new B(); / 执行到此处 , 结果: 1a2b ab = new B(); / 执行到此处 , 结果: 1a2b2b 注: 类的 static 代码

23、段 , 可以看作是类首次加载( 被虚拟机加载 ) 执行的代码, 而对于类的加载 , 首先要执行其基类的构造, 再执行其本身的构造18、抽象类和接口的区别?(1) 接口可以被多重 implements, 抽象类只能被单一extends (2) 接口只有定义 , 抽象类可以有定义和实现名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 17 页 - - - - - - - - - (3) 接 口 的 字 段 定 义 默 认 为 :public static final, 抽 象

24、 类 字 段 默 认 是default(本包可见 ) 19、什么是类的返射机制 ? 【反射示例】通过类 (Class对象 ) ,可以得出当前类的fields、method、 construtor、interface、superClass 、modified等,同时可以通过类实例化一个实例、设置属性、唤醒方法。 Spring 中一切都是返射、 struts 、hibernate都是通过类的返射进行开发的。20、类的返射机制中的包及核心类? java.lang.Class java.lang.refrection.Method java.lang.refrection.Field java.lan

25、g.refrection.Constructor java.lang.refrection.Modifier java.lang.refrection.Interface 21、得到 Class 的三个过程是什么 ? 对象.getClass() 类.class或 Integer.type(int) Integer.class(java.lang.Integer) Class.forName(); 22、如何通过发射调用类中的一个方法?产生一个 Class 数组,说明方法的参数通过 Class 对象及方法参数得到Method 通过 method.invoke( 实例, 参数值数组 ) 唤醒方法2

26、3、如何将数值型字符转换为数字(Integer ,Double )?Integer.parseInt(“ 1234” ) Double.parseDouble( “ 123.2 ” ) 24、如何将数字转换为字符串?1+”1.0+”String.valueOf(1); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 17 页 - - - - - - - - - Integer.toString(1); 25、如何去小数点前两位,并四舍五入。double d=1256.2

27、2d; 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(Calendar.DAY_OF_MONTH); 27、如何取得从 197

28、0 年到现在的毫秒数java.util.Date dat=new Date(); long now=dat.getTime(); 28、如何获取某个日期是当月的最后一天?当前日期加一天,若当前日期与结果的月份不相同,就是最后一天。取下一个月的第一天,下一个月的第一天-1 Calendar c=Calendar.getInstance(); / 假设设定为 2004 ,1,30c.set(Calendar.YEAR,2004); c.set(Calendar.MONTH,0); int maxDayOfMonth=c.getActualMaximum(Calendar.DAY_OF_MONTH)

29、; if(maxDayOfMonth=30) System.out.println( 是最后一天 ); else System.out.println( 不是最后一天 ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 17 页 - - - - - - - - - 29、如何格式化日期?Import java.text. SimpleDateFormat; SimpleDateFormat sdf=new SimpleDateFormat(yyyy-MM-dd hh:

30、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 String(中.getBytes(gb2312),iso-8859-1); String a=new String(中.getBytes(iso-8859-1); 32、Str

31、ing 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 Integer 常 用 的 包 : java.lang java.awt java.io java.util java.sql javax

32、.sevlet 常用的接口:ResultSet , java.sql. Statement , Connection , Collection List Map Document 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 17 页 - - - - - - - - - 36、java 中会存在内存泄漏吗,请简单描述。会。一般我们常说的内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的大小任意的(内存块的大小可以在程序运行期决定), 使用完后必须显示释放的内存。应用

33、程序一般使用malloc ,realloc,new等函数从堆中分配到一块内存,使用完后,程序必须负责相应的调用free 或 delete 或设定为 null释放该内存块,否则,这块内存就不能被再次使用,我们就说这块内存泄漏了。37、java 中实现多态的机制是什么?静态的多态 :方法名相同,参数个数或类型不相同。(overloading) 动态的多态 : 子类覆盖父类的方法,将子类的实例传与父类的引用调用的是子类的方法实现接口的实例传与接口的引用调用的实现类的方法。38、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?动态内存存放类实例静态内存类

34、本身垃圾收集主要针对的是动态内存,一般当内存不够用时会进行垃圾收集。或通过 System.gc() 手动收集,但不保证一定执行。39、静态变量和实例变量的区别?静态变量是当前类的所有实例共享的。静态方法可以调用静态变量。实例方法可以调用静态变量、实例变量41、是否可以从一个static 方法内部发出对非static 方法的调用?不可以 , 如果其中包含对象的method() ;不能保证对象初始化 . 42、写 clone() 方法时,通常都有一行代码,是什么?clone 有缺省行为, super.clone();他负责产生正确大小的空间,并逐位复制。名师资料总结 - - -精品资料欢迎下载 -

35、 - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 17 页 - - - - - - - - - 43、JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try 块中可以抛出异常吗?try: 执行部分,产生异常catch: 捕捉异常finally:不管有没有异常都执行throws: 在方法声明处声明要抛出的异常,调用者必须对其进行处理。throw: 抛出一个异常在 try 中可以抛出异常,一般与声明的异常相同。自定义异常要继承于Exception 或

36、 Exception 的子类44、JAVA 类实现序列化的方法 (二种) JAVA类实现序例化的方法是实现java.io.Serializable接口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(Strin

37、g args) BubbleSort bs = new BubbleSort(); System.out.println(排序前: ); display(al); for(int i=0;ial.length;i+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 17 页 - - - - - - - - - for (int j = 0; j alj+1) swap(j,j+1); System.out.println(); System.out.println(排序

38、后: ); display(al); private static void display(int al2) for (int i = 0; i al2.length; i+) System.out.print(al2i+ ); private static void swap(int i, int j) int temp = ali; ali= alj; alj = temp; - 1. 用 JAVA实现一种排序?用插入法进行排序代码如下package test; import java.util.*; class InsertSort ArrayList al; public Inser

39、tSort(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); System.out.println(al+i+=+al.get(i); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精

40、心整理 - - - - - - - 第 16 页,共 17 页 - - - - - - - - - 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.o

41、ut.println(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(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 17 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁