`
hesihua
  • 浏览: 228814 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

java实习面试

 
阅读更多

在去实习的时候面试考试的几道java题总结:

1、j=j++;//在这个过程中j的值是不会发生变化的

    j+=1;//在这个过程中j的值会发生变化,会增一。

2、Math中除了有sin cos等方法外,还有一个static 常量,PI。

3、java中byte类型

      int占4个字节,byte是1个字节,每个字节8位。
     所以2进制的话,int最多可以表示正负一共2的32次方个数,byte则是2的8次方。
4、用最简单的方法实现2乘以16

     2<<4

5、抽象类和接口

  区别一、

     接口是一种和类相似的结构,只包含常量和抽象方法,而且抽象方法只能是public的。

     抽象类和常规类很像,但是不能用new操作符创建它的实例。抽象类中可以有普通成员方法和普通成员变量。

区别二、

   接口需要实现,要用implements;抽象类需要继承,要用extends。

   一个类可以实现多个接口,而一个类只能继承一个抽象类

  接口着重强调特定功能的实现,抽象类强调所属关系

 

 

    接口在许多方面与抽象类相似,但是它的目的是指明多个对象的共同行为    

 

6、wait和sleep的区别

     虽然wait 和sleep都是用来进行线程控制,但是它们还是有很大的区别

  (1)、sleep()不释放同步锁,wait()释放同步锁

  (2)、sleep()和wait()的唤醒方法:

          sleep()可以用时间指定来自动唤醒,如果时间不到可以用interrupt()强行打断来唤醒;

          wait()可以用notify()方法来直接唤醒。

 

上面是我的总结,下面是在别人的文章中摘抄的一些:

sleep()、suspend()、resume()方法不推荐使用,推荐使用wait()、notify()、notifyAll()。

1.sleep()方法介绍

  sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非

(a)醒来的线程具有更高的优先级。  
(b)正在运行的线程因为其它原因而阻塞。
  
2.wait()方法介绍

   wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。 当调用wait()后,线程会释放掉它所占有的锁标志,从而使线程所在对象中的其它synchronized数据可被别的线程使用。

3.waite()和notify()的区别

   waite()和notify()因为会对对象的&ldquo;锁标志&rdquo;进行操作,所以它们必须在synchronized函数或synchronized block中进行调用。如果在non-synchronized函数或non-synchronized block中进行调用,虽然能编译通过,但在运行时会发生IllegalMonitorStateException的异常。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics