java面试题及答案 .pdfVIP

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

java面试题及答案

java面试题2017及答案

SunJava认证分为两个级别:Sun认证Java程序员和Sun认证

Java开发员。下面是店铺整理的关于java面试题2017及答案,希望

大家喜欢!

1)什么是线程?

线程是操作系统能够进行运算调度的最小单位,它被包含在进程

之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编

程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程

完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。

Java在语言层面对多线程提供了卓越的支持,它也是一个很好的卖点。

欲了解更多详细信息请点击这里。

2)线程和进程有什么区别?

线程是进程的子集,一个进程可以有很多线程,每条线程并行执

行不同的任务。不同的进程使用不同的内存空间,而所有的线程共享

一片相同的内存空间。别把它和栈内存搞混,每个线程都拥有单独的

栈内存用来存储本地数据。更多详细信息请点击这里。

3)如何在Java中实现线程?

在语言层面有两种方式。java。lang。Thread类的实例就是一个

线程但是它需要调用java。lang。Runnable接口来执行,由于线程类

本身就是调用的Runnable接口所以你可以继承java。lang。Thread

类或者直接调用Runnable接口来重写run()方法实现线程。更多详

细信息请点击这里。

4)用Runnable还是Thread?

这个问题是上题的后续,大家都知道我们可以通过继承Thread类

或者调用Runnable接口来实现线程,问题是,那个方法更好呢?什

么情况下使用它?这个问题很容易回答,如果你知道Java不支持类的

多重继承,但允许你调用多个接口。所以如果你要继承其他类,当然

是调用Runnable接口好了。更多详细信息请点击这里。

6)Thread类中的start()和run()方法有什么区别?

这个问题经常被问到,但还是能从此区分出面试者对Java线程模

型的理解程度。start()方法被用来启动新创建的线程,而且start()

内部调用了run()方法,这和直接调用run()方法的效果不一样。

当你调用run()方法的时候,只会是在原来的线程中调用,没有新的

线程启动,start()方法才会启动新线程。更多讨论请点击这里

7)Java中Runnable和Callable有什么不同?

Runnable和Callable都代表那些要在不同的线程中执行的任务。

Runnable从JDK1。0开始就有了,Callable是在JDK1。5增加的。

它们的主要区别是Callable的call()方法可以返回值和抛出异常,

而Runnable的run()方法没有这些功能。Callable可以返回装载有

计算结果的Future对象。我的博客有更详细的说明。

8)Java中CyclicBarrier和CountDownLatch有什么不同?

CyclicBarrier和CountDownLatch都可以用来让一组线程等待

其它线程。与CyclicBarrier不同的是,CountdownLatch不能重新使

用。点此查看更多信息和示例代码。

9)Java内存模型是什么?

Java内存模型规定和指引Java程序在不同的内存架构、CPU和操

作系统间有确定性地行为。它在多线程的情况下尤其重要。Java内存

模型对一个线程所做的变动能被其它线程可见提供了保证,它们之间

是先行发生了关系。这个关系定义了一些规则让程序员在并发编程时

思路更清晰。比如,先行发生了关系确保了:

线程内的代码能够按先后顺序执行,这被称为程序次序规则。

对于同一个锁,一个解锁操作一定要发生在时间上后发生的另一

个锁定操作之前,也叫做管程锁定规则。

前一个对volatile的写操作在后一个volatile的读操作之前,也叫

volatile变量规则。

一个线程内的任何操作必需在这个线程的start()调用之后,也

文档评论(0)

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

有多年的一线教育工作经验 欢迎下载

1亿VIP精品文档

相关文档