java基础面试题

上传人:阳*** 文档编号:46009668 上传时间:2021-12-10 格式:DOCX 页数:6 大小:20.30KB
收藏 版权申诉 举报 下载
java基础面试题_第1页
第1页 / 共6页
java基础面试题_第2页
第2页 / 共6页
java基础面试题_第3页
第3页 / 共6页
资源描述:

《java基础面试题》由会员分享,可在线阅读,更多相关《java基础面试题(6页珍藏版)》请在装配图网上搜索。

1、基础知识:1. Java中的异常处理机制的简单原理和应用。2. Java的接口和C+的虚类的相同和不同处。3. 垃圾回收的优点和原理。并考虑2种回收机制。4. 你所知道的线程同步的方法。5. 讲一讲析构函数和虚函数的用法和作用。6. Error与Exception有什么区别?7. 在Java种一个类被声明为final类型,表示了什么意思?8. 描述下最常用的编程风格。9. Heap和stack有什么区别。10. 如果系统要使用超大整数(超过long长度范围),请你设计一个数据结构来存储这种超大型数字以及设计一种算法来实现超大整数加法运算。11. 如果要设计一个图形系统,请你设计基本的图形元件(

2、Point,Line,Rectangle,Triangle)的简单实现。12. 谈谈final,finally,finalize的区别。13. Anonymous Inner Class(匿名内部类)是否可以extends(继承)其他类,是否可以implement(实现)interface(接口)?14. Static Nested Class和Inner Class的不同。15. HashMap和Hashtable的区别。1) 历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java1.2引进的Map接口的一个实现。2) 同步性:Hashtable是线程安全

3、的,是同步的,而HashMap是线程不安全的,不是同步的3) 值:只有HashMap可以设置一个null键(Key)和多个null值(value)。16. Collection和Collections的区别。17. 什么时候用assert。18. GC是什么?为什么要有GC?19. String s=new String(“xyz”); 创建了几个String Object?20. Math.round(11.5)等于多少?Math.round(-11.5)等于多少?21. short s1 = 1; s1 = s1+1; 有什么错? short s1 = 1; s1 += 1; 有什么错?2

4、2. sleep() 和 wait() 有什么区别?23. Java有没有goto?24. 数组有没有length()这个方法?String有没有length()这个方法?25. Overload和Override区别。Overloaded的方法是否可以改变返回值的类型?26. Set里德元素是不能重复的,那么用什么方法来区分重复与否?是用=还是equals()?它们有何区别?27. 给出最常见到的runtiem exception。28. List,Set,Map是否继承自Collection接口?29. abstract class和interface有什么区别?30. abstract的

5、method是否可同时是static,是否可同时是native,是否可同时是synchronized?31. 接口是否可继承接口?抽象类是否可实现接口?抽象类是否可继承实体类?32. 启动一个线程是用run()还是start()?33. 构造器Constructor是否可被override?34. 是否可以继承String类?35. 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?36. try里有一个return语句,那么紧跟在这个try后的finally里德code会不会被执行,什么时候被执行,在return前还是后?37. 用最有效率的方法

6、算出2乘以8等于几?38. 两个对象值相同(x.equals(y)=true),但却可有不同的hashcode,对么?39. 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?40. switch是否能作用在byte上,long和String上?41. 写一个Singleton。42. 描述一下JVM加载class文件的原理机制?1) java中的所有类,必须被加载到JVM中才能运行,这个装载工作是由JVM中的类装载器完成的。类装载器嗦做的工作实质是把类文件从硬盘读取到内存中。2) java中的类大致分为三种:a) 系统类

7、b) 扩展类c) 由程序员自定义的类3) 装载类的方法有两种:a) 隐式装载:程序运行中当通过new等方式生成对象时,隐式调用类装载器加载对应的类到jvm中。b) 显式装载:通过class.forname()等方法,显式加载需要的类。4) 类加载的动态性体现一个应用程序总是由n多个类组成,Java程序启动时,并不是一次性把所有的类全部加载后再运行。它总是先保证程序运行的基础类一次性加载到jvm中,其它类等到jvm用到的时候再加载,这样的好处是节省了内存的开销。5) java类装载器Java中的类装载器实质上也是类,功能是把类载入jvm中,值得注意的是jvm的类装载器并不是一个,而是三个,层次结

8、构如下:BootstrapLoader 负责加载系统类|- ExtClassLoader 负责加载扩展类|-AppClassLoader 负责加载应用类一方面是分工,各自负责各自的区块,另一方面为了实现委托模型。6) 类加载器之间是如何协调工作的7) 预先加载与依需求加载Java 运行环境为了优化系统,提高程序的执行速度,在 JRE 运行的开始会将 Java 运行所需要的基本类采用预先加载( pre-loading )的方法全部加载要内存当中,因为这些单元在 Java 程序运行的过程当中经常要使用的,主要包括 JRE 的 rt.jar 文件里面所有的 .class 文件。当 java.exe

9、虚拟机开始运行以后,它会找到安装在机器上的 JRE 环境,然后把控制权交给 JRE , JRE 的类加载器会将 lib 目录下的 rt.jar 基础类别文件库加载进内存,这些文件是 Java 程序执行所必须的,所以系统在开始就将这些文件加载,避免以后的多次 IO 操作,从而提高程序执行效率。8) 自定义类加载机制利用java提供的.URLClassLoader类就可以实现。try URL url = new URL(); URLClassLoader urlCL = new URLClassLoader(new URLurl); Class c = urlCL.loadClass(TestCl

10、assA); TestClassA object = (TestClassA)c.newInstance(); object.method(); catch(Exception e) e.printStackTrace(); 9) 类加载器的阶层体系Java的类加载器的工作原理:当执行 java *.class 的时候, java.exe 会帮助我们找到 JRE ,接着找到位于 JRE 内部的 jvm.dll ,这才是真正的 Java 虚拟机器 , 最后加载动态库,激活 Java 虚拟机器。虚拟机器激活以后,会先做一些初始化的动作,比如说读取系统参数等。一旦初始化动作完成之后,就会产生第一个类

11、加载器 Bootstrap Loader , Bootstrap Loader 是由 C+ 所撰写而成,这个 Bootstrap Loader 所做的初始工作中,除了一些基本的初始化动作之外,最重要的就是加载 Launcher.java 之中的 ExtClassLoader ,并设定其 Parent 为 null ,代表其父加载器为 BootstrapLoader 。然后 Bootstrap Loader 再要求加载 Launcher.java 之中的 AppClassLoader ,并设定其 Parent 为之前产生的 ExtClassLoader 实体。这两个加载器都是以静态类的形式存在的

12、。这里要请大家注意的是, Launcher$ExtClassLoader.class 与 Launcher$AppClassLoader.class 都是由 Bootstrap Loader 所加载,所以 Parent 和由哪个类加载器加载没有关系。43. 试举例说明一个典型的垃圾回收算法。44. 请用java写二叉树算法,实现添加数据形成二叉树功能,并以先序的方式打印出来。45. 请写一个java程序实现线程连接池功能。46. 给定一个C语言函数,要求实现在java类中进行调用。47. 在控制台输入一组数字后,排序后在控制台输出。48. 列出某文件夹下的所有文件。49. 调用系统命令实现删除

13、文件的操作。50. 实现从文件中一次读出一个字符的操作。51. 列出一些控制流程的方法。顺序结构、选择结构(if语句,switch语句)、循环结构(for语句,while语句,do-while)52. 多线程有哪些状态?1) 新状态:线程已被创建但未执行(start()未被调用)2) 可执行状态:线程可以执行,虽然不一定正在执行。CPU时间随时可能被分配给该线程,从而使得它执行。3) 死亡状态:正常情况下run() 返回使得线程死亡。调用stop() 或 destroy() 亦有同样效果,但是不被推荐,前者会产生异常,后者是强制终止,不会释放锁。4) 阻塞状态:线程不会被分配CPU时间,无法执

14、行。53. 编写了一个服务器端的程序实现客户端输入字符然后再控制台上显示,直到输入“END”为止,让你写出客户端的程序。54. 作用域public,private,protected,以及不写时的区别。public是对所有用户开发,所有用户都可以直接进行调用。private是私有的,除了class自己之外任何用户都不可以直接调用。protected是受保护的,子孙和同一个package能调用。不写时默认为 friendly 只有同一个package能调用。55. ArrayList和Vector的区别。1) 同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程不安全的

15、,不是同步的。2) 数据增长:Vector默认增长为原来一倍,而ArrayList却是原来的一半。56. char型变量中能不能存贮一个中文汉字?为什么?能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字节,所以能放中文。57. 多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?多线程有2种实现方法:继承Thread类与实现Runnable接口。同步的实现方法有两种:分别是synchronized,wait与notify。58. float f=3.4是否正确?不正确,应该强制类型转换,如:float f = (float)3.459. 介绍java

16、种的Collection FrameWork。60. String与StringBuffer的区别。String长度不可变,StringBuffer的长度可变。如果对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法。编程题:1. 现在输入n个数字,以逗号分开;然后可选择升或者降序排列;按提交键就在另一页面显示。按什么排序结果就为什么。提供reset。2. 金额转换,阿拉伯数字的金额转换成中国传统的形式如(¥1011)(一千零一拾一元整)输出3. 会打印出什么?package t

17、est;public class FatherClasspublic FatherClass()System.out.println(FatherClass Create);package test;import test.FatherClass;public class ChildClass extends FatherClasspublic ChildClass()System.out.println(ChildClass Create);public static void main(String args)FatherClass fc = new FatherClass();Child

18、Class cc = new ChildClass();答案:FatherClass Create FatherClass Create ChildClass Create4. 内部类的实现方式?5. 用JAVA SOCKET编程,读服务器几个字符,再写入本地显示?6. 用Java实现一种排序,JAVA类实现序列化的方法(两种)?如在Collection框架中,实现比较要实现什么样的接口?7. 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。8. JAVA多线程编程。 用JAVA写一个多线程程序,如写四个线程,二个加1,二个对一个变量减一,输出。6 / 6文档可自由编辑打印

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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