码迷,mamicode.com
首页 > 编程语言 > 详细

Java面试常见的一些问题

时间:2015-02-10 09:12:40      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

由于最近在准备面试,稀稀散散的整理了一些Java常见的问题,问题的答案都是在网上各网站找的,有什么不对的地方还请各位大神指出。由于是用来学习的,所以如果有朋友发现自己的原创不希望在此公开请M我,我会速速删除。

1.Java 中多线程同步是什么?

在多线程程序下,同步能控制对共享资源的访问。如果没有同步,当一个 Java 线程在修改一个共享变量时,另外一个线程正在使用或者更新同一个变量,这样容易导致程序出现错误的结果。 

2.Sleep ()、suspend ()和 wait ()之间有什么区别? 


Thread.sleep ()使当前线程在指定的时间处于“非运行”(Not Runnable)状态。线程一直持有对象的监视器。比如一个线程当前在一个同步块或同步方法中,其它线程不能进入该块或方法中。如果另一线程调用了 interrupt ()方法,它将唤醒那个“睡眠的”线程。 

注意:sleep ()是一个静态方法。这意味着只对当前线程有效,一个常见的错误是调用t.sleep (),(这里的t是一个不同于当前线程的线程)。即便是执行t.sleep (),也是当前线程进入睡眠,而不是t线程。t.suspend ()是过时的方法,使用 suspend ()导致线程进入停滞状态,该线程会一直持有对象的监视器,suspend ()容易引起死锁问题。 


object.wait ()使当前线程出于“不可运行”状态,和 sleep ()不同的是 wait 是 object 的方法而不是 thread。

Sleep() s调用 object.wait ()时,线程先要获取这个对象的对象锁,当前线程必须在锁对象保持同步,把当前线程添加到等待队列中,随后另一线程可以同步同一个对象锁来调用 object.notify (),这样将唤醒原来等待中的线程,然后释放该锁。基本上 wait ()/notify ()与 sleep ()/interrupt ()类似,只是前者需要获取对象锁。

 

3. Java三大特性:多态继承和封装

4.equals 和 == 的区别?

 

 

接下来会陆陆续续整理上来。。。

Java面试常见的一些问题

标签:

原文地址:http://www.cnblogs.com/raomengyang/p/4282964.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!