COREJAVA第二阶段笔试题答案-.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
COREJAVA第二阶段笔试题答案-

COREJAVA第二阶段笔试题 1、说出ArrayList,Vector, LinkedList的存储性能和特性. ArrayList 和 Vector,LinkedList都是List接口的实现类或者说都是存放单值而且有序不唯一的集合类型 他们的区别主要有两点 1.同步特性: ArrayList,LinkedList是线程不安全的,多个线程可以同时对其进行访问的 可能出现并发错误 Collections中有synchronizedList方法能够将线程不安全的List集合转变为线程安全的 Vector是线程安全的 2.扩容机制: ArrayList,Vector底层采用数组结构,查找快,修改慢 ArrayList扩容遵从*3/2+1的机制, Vector扩容遵从*2的机制 如果在构造方法第二个参数中提供了扩容增量 那么每次扩容都增加相同的增量 LinkedList 底层采用双向循环链表,查找慢,修改快 谈谈final, finally, finalize的区别。 final 修饰变量,一旦赋值不能被更改;修饰类,不能被继承;修饰方法,方法不能被子类重写 finally 用于异常处理中,无论发生不发生异常,finally中的方法都会被执行,一般用于对外部资源的释放 finalize 是gc在对对象执行垃圾回收前,执行的对象上的最后一个方法 HashMap和Hashtable的区别。 HashMap是线程安全的;Hashtabel是线程不安全的 HashMap的键和值都可以为null,不过key只能出现一个null值 ,Hashtable键和值都不允许为null HashMap的上层接口是Map; Hashtable的上层类是Dictionary 两者底层采用链表数组,HashMap默认分组为16,而Hashtable默认分组是11 sleep() 和 wait() 有什么区别? 锁资源释放 :sleep使线程阻塞前,不会释放锁资源,wait会释放锁资源 谁的方法: sleep是线程类的方法,wait是临界资源上的方法 唤醒方式:使用sleep受到阻塞的线程,等到休眠时间一到会回到就绪状态,使用wait阻塞的线程除了指定时间到了之后自动脱离阻塞状态之外,还可以通过其它线程调用临界资源的notify或notifyAll()方法方可从临界资源的等待队列中回到对象的锁池状态,获取锁后进入就绪状态 代码书写: wait 只能在synchronized代码块内,而sleep方法的调用 无此约束,可以出现在方法体中的任意位置 5、Overload和Override的区别。Overload的方法是否可以改变返回值的类型? Overload:方法重载 指发生在同一类当中,方法名字相同,参数列表(类型、个数、顺序)不同的两个方法 (体现静态多态) Override:方法覆盖 发生在有继承关系的两个类之间 子类类型当中 访问控制权限修饰符不能更严格 启动一个线程是用run()还是start()?有什么区别? 使用start()方法 start()方法使线程处于就绪状态,由操作系统决定线程何时能够得到CPU时间片段, 一旦线程得到时间片段,run()中的方法便能够到得执行 如果手动调用,只是执行了对象其中的一个方法而已 多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? Extends Thread run Implements Runnable run Implements Callable call 请说出你所知道的线程同步的方法并加以解释。 Synchronized 有两种方式: 对方法进行修饰 对代码块进行修饰 只有拿到锁资源才能进入到synchronized修饰的代码块中 排序都有哪几种方法?请列举。用JAVA实现一个快速排序。 冒泡 插入 希尔 可以手写一个冒泡排序 同步和异步有何异同,在什么情况下分别使用它们?举例说明 ? 如果数据将在线程间共享,一个是负责写的线程, 一个是负责读的线程,”写线程”写到一半的数据不应该被”读线程”读取,因为这种情况下的数据是错误的或无意义的,此时必须保证”写线程”在写的过程中时间片段不能得到切换,即不能被”读线程”拿到;同理”读线程”在读的过程中也不能被”写线程”打断,这种保证每个操作单元不被打断的机制就是”同步”。 当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方 法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率. java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类? 方向上:输入流 输出流 内容上:字符流 字符流 功能上:节点

文档评论(0)

haihang2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档