08经典Java面试题及答案(1~41企业真题).docx

上传人:太** 文档编号:72185315 上传时间:2023-02-09 格式:DOCX 页数:11 大小:168.84KB
返回 下载 相关 举报
08经典Java面试题及答案(1~41企业真题).docx_第1页
第1页 / 共11页
08经典Java面试题及答案(1~41企业真题).docx_第2页
第2页 / 共11页
点击查看更多>>
资源描述

《08经典Java面试题及答案(1~41企业真题).docx》由会员分享,可在线阅读,更多相关《08经典Java面试题及答案(1~41企业真题).docx(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、经典Java面试题及答案(141企业真题)1、下面程序的运行结果是(Sirin1,内):鸳3 二匕r 门 q :;二工一I,;.翳蜀.String str2 = he + new String (“1 lo);Syslem.err .pr i nt_ 】n (sir: =System, en . printin (stzrl = str3)运行结果:falsetrue2、HashSet里的元素是不能重复的,那用什么方法来区分重复与否呢?往集合在添加元素时,调用add(Object)方法的时候,首先会调用Object的hashCode()方法判断hashCode是否已经存在,如不存 在那么直接插

2、入元素;如果已存在那么调用Object对象的equals。方法判断是否返回true ,如果为true那么说明元素已经存在,如为false 那么插入元素。3、List , Set, M叩是否继承来自Collection接口?存取元素时,有何差异? List、Set 是继承 Collection 接口 ; Map 不是。 List :元素有放入顺序,元素可重复,通过下标来存取。 Map :元素按键值对存取,无放入顺序。 Set :元素无存取顺序,元素不可重复(注意:元素虽然无放入W页序,但是元素在set中的位置是有该元素的hashCode决定的, 其位置其实是固定的)。4、简述Java中的值传递和

3、引用传递?按值传递是指的是在方法调用时,传递的参数是按值的拷贝传递。按值传递重要特点:传递的是值的拷贝,也就是说传递后就互不相关 了例如如下:System, out .println (lest 1 方法中的 + a);):( s Li: : i ):, main (String1 args)TempTest t = TempTest();C.阻塞队列里的元素不能为nullD.阻塞队列的实现必须显示地设置容量30、如果现在需要创立一组任务,他们并行的执行工作,然后进行下一个步骤之前等待,直至所有的任务都完成,而去这种控制可以重 用屡次,这种情形使用包中引入哪种同步工具最适合(B )A.Coun

4、tDownLatchB.CyclicBarrierC.SemaphoreD.FutureTaskjava中,为什么基类不能做为HashMap的健值,而只能是引用类型,把引用类型作为HashMap的健值,需要注意哪些地 方?引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度 问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺 省值为null,而原始类型实例变量的缺省值与它们的类型有关。32、编写一介工具类StringUtil ,提供方法int compare(c

5、har口 vl x:har v2)方法比拟字符串vl ,v2如果按照字符顺序vlv2 那么 return 1 , vl=v2 那么 return 0 , vl 0 ? 1 :-33、Java出现OutOfMemoryError(OOM)的原因有那些?出现OOM错误后,怎么解决?触发java.Iang.OutOfMemoryError:最常见的原因就是应用程序需要的堆空间是大的,但是JVM提供的却小。这个的解决方法就是提 供大的堆空间即可。除此之外还有复杂的原因:内存泄露:特定的编程错误会导致你的应用程序不停的消耗更多的内存,每次使用有内存泄漏风险的功能就 会留下一些不能被回收的对象到堆空间中,

6、随着时间的推移,泄漏的对象会消耗所有的堆空间,最终触发java.IangQutOfMemoryError: Java heap space 错误。解决方案:你应该确保有足够的堆空间来正常运行你的应用程序,在JVM的启动配置中增加如下配置:-XmxlO24m ,流量/数据量峰 值:应用程序在设计之初均有用户量和数据量的限制,某一时刻,当用户数量或数据量突然到达一个峰值,并且这个峰值已经 超过了设计之初预期的阈值,那么以前正常的功能将会停止,并触发java.Iang.OutOfMemoryError: Java heap space异常解决方案,如果你的应用程序确实内存缺乏,增加堆内存会解决GC

7、overhead limit问题,就如下面这样,给你 的应用程序 1G 的堆内存:o34、以下关于栈的描述错误的选项是(B )A.栈是先进后出的线性表Bj戋只能顺序存储C.栈具有记忆功能D.对栈的插入和删除操作中,不需要改变栈底指针35、对于长度为n的线性表,在最坏的情况下,以下个排序法所对应的比拟次数中正确的选项是(D )A.冒泡排序为n/2B.冒泡排序为nC.快速排序为nD.快速排序为n(n-l)/236、阅读以下代码后,以下正确的说法是(A );一二 ;pu:) i c steii ic vc ; main (String args ) A.编译时将产生错误B.编译时正确,运行时将产生错

8、误C.输出空D输出0AAAB.A;BC.B,BD.AB,B38、以下不属于持久化的是(A )A.把对象转换成为字符串的形式通过网络传输,在另一端接收到字符串把对象还原出来B.把程序数据从数据库中读出来C.从XML配置文件中读取程序的配置信息D.把程序数据保存为文件39、以下代码输出的结果是(C)System, out .printin (x + , + y);A. 5,65,5B. 6,46,640、以下程序段输出的结果是(B ))ub i c s t a i c void comp Iicatedexpression f() x - 20, y = 30;j=x50&y60 | x50&y

9、-60 | | x 60 | | x -50 & y -60;System.out.printIn(j);A.trueB.falseC.lD.00141、一个栈的输入序列为123 ,那么以下序列中不可能是栈输出的序列的是(C)A. 2 3 132 1B. 3 1212 3ini a = 3;传递后,testl方法对变量值的改变不影响这里的System, out .printin (main 方法中的 a = + a);运行结果是:testl方法中的a=5main方法中的a =3按引用传递是指的是在方法调用时,传递的参数是按引用进行传递,其实传递的是引用的地址,也就是变量所对应的内存空间的地址。

10、传递的是值的引用,也就是说传递前和传递后都指向同一个引用(也就是同一个内存空间)。例如如下:)i(1 testl (A a) a.age = 20;System.out.println (testl 方法中的 age=+ a. age);I1 一System, out .printin (main 方法中的 age = + a.age);运行结果:testl方法中的age=20main方法中的age =205、请写出几个常见的运行时异常?NullPointerException -空指针引用异常 ClassCastException -类型强制转换异常。 IndexOutOfBoundsExc

11、eption -下标越界异常 NumberFormatException -数字格式异常 6、简述数据库事务和实际工作中的作用? 所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。例如在关系数据库中,一个事务可以是一条SQL语句、一组SQL语句或整个程序。简单举个例子就是你要同时修改数据库中两个不同 表的时候,如果它们不是一个事务的话,当第一个表修改完,可是第二表改修出现了异常而没能修改的情况下,就只有第二个表回到未 修改之前的状态,而第一个表已经被修改完毕。而当你把它们设定为一个事务的时候,当第一个表修改完,可是第二表改修出现了异常 而没能修改的情

12、况下,第一个表和第二个表都要回到未修改的状态!这就是所谓的事务回滚。例如,在将资金从一个帐户转移到另一个帐户的银行应用中,一个帐户将一定的金额贷记到一个数据库表中,同时另一个帐户将相同的 金额借记到另一个数据库表中。由于计算机可能会因停电、网络中断等而出现故障,因此有可能更新了一个表中的行,但没有更新另一 个表中的行。如果数据库支持事务,那么可以将数据库操作组成一个事务,以防止因这些事件而使数据库出现不一致。如果事务中的某个 点发生故障,那么所有更新都可以回滚到事务开始之前的状态。如果没有发生故障,那么通过以完成状态提交事务来完成更新。7、一棵二叉树,如果先序遍历的节点顺序是:ADCEFGHB

13、,中序遍历是:CDFEGHAB,那么后序遍历结果为:(D )A.CFHGEBDAB.CDFEGHBAC.FGHCDEBAD. CFHGEDBA原因:对于二叉树的遍历方式一般分为三种先序、中序、后序三种方式:先序遍历(根左右)假设二叉树为空,那么不进行任何操作,否那么访问根结点。 先序方式遍历左子树。 先序遍历右子树。中序遍历(左根右)假设二叉树为空,那么不进行任何操作,否那么中序遍历左子树。 访问根结点。 中序遍历右子树。后序遍历(左右根)假设二叉树为空,那么不进行任何操作,否那么后序遍历左子树。 后序遍历右子树。 访问根结点。因此,根据题目给出的先序遍历和中序遍历,可以画出二叉树:先序遍用的

14、节点顺序是:ADCEFGHB中序遍历是:CDFEGHAB中序遍历是:CDFEGHAB后序遍历结果为:CFHGEDBA8、以下哪两个数据结构,同时具有较高的查找和删除性能?A.有序数组B.有序链表C.AVL 树D.Hash 表 看以下图:数据结构查找插入删除数组有序数组链表有序链表二叉树(一般情况)二叉树(最坏情况)0(N) O(logN) 0(N) 0(N)O(logN) 0(N)平衡树(一般情况和最坏情况)O(logN)哈希表0(1)0(1)O(N) 0(1) 0(N)O(logN)O(N) O(logN) on a) a = 汴,ArrayList ()A . 0B . 1D.以上都不正确27、Linux下查看进程占用的CPU的百分比,使用工具(A )A.psB.catC.moreD.sep28、JVM内存里哪个区域不可能发生OutOfMerncyError( A)A.程序计数器B.堆C.方法区D.本地方法栈29、下面关于阻塞队列(java.util.concurrent.BlockingQueue )的说法不正确的选项是(C)A.阻塞队列是线程安全的B.阻塞队列的主要应用场景是生产者-消费者”模型

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

当前位置:首页 > 应用文书 > 解决方案

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

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