![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
fogmeng2011
这个作者很懒,什么都没留下…
展开
-
sleep()和wait()的区别?
sleep方法是Thread类的静态方法,导致此线程暂停执行指定时间,让出cpu给其他线程,但是监控状态依然保持,当指定的时间到了时,自动恢复,调用sleep()时,对象不会释放锁。wait方法是Object类的方法,对此对象调用wai方法,导致此线程放弃此对象锁,进入等待此对象的等待锁定池,只有对对象发出notify方法或notifyAll后本线程进入对象锁定池准备获取对象锁进入运行状态。转载 2015-03-15 22:07:31 · 326 阅读 · 0 评论 -
java有几种方法可以实现一个线程?用什么关键字修饰同步方法?
java多线程实现方法主要有3种:继承Thread类、实现Runnable接口和使用ExecutorService、callable、future实现有返回结果的多线程。其中前2方式线程执行完后都没有返回值,只有最后一种有返回值。继承Thread类启动线程的唯一方法是通过Thread类的start()实例方法。start()方法是一种native方法,它将启动一个新线程并执行run方法。这种方法通原创 2015-03-12 22:37:13 · 2565 阅读 · 0 评论 -
java二分算法
1、前提:二分查找的前提需要查找的数组必须是有序的,我们这里默认使用升序。 2:、原理:将数组分为3部分,中值前、中值、中值后。首先和数组的中值比较,如果小于中值则在中值前面查找,如果等于中值则直接返回,如果大于中值则向中值后面找,然后 依次是个递归过程,所以此类问题适合用递归,用递归实现的都可以用循环实现。 3、实现代码: public class BinarySearch{ p转载 2015-03-11 22:48:42 · 432 阅读 · 0 评论 -
error和Exception有什么区别
error表示一种严重错误,比如内存溢出,不可能指望程序处理这样的情况。 Exception表示一种设计或时限问题,表示如果程序正常运行,从不会发生的情况。原创 2015-03-11 21:03:16 · 370 阅读 · 0 评论 -
java异常处理机制简单原理和应用
异常指java程序运行时(非编译)所发生的非正常情况或错误。 java对异常进行了分类,不同类型的异常使用了不同的java类,所有异常的根类为java.lang.Throwable.Throwable派生了2个子类:Error和Exception. Error表示程序本身无法克服和恢复的一种严重错误,程序只有死的份,如内存溢出和死锁问题等系统问题。 Exception表示还能克服和恢复,其中原创 2015-03-11 21:08:30 · 3459 阅读 · 0 评论 -
Hadoop1 MRv1中的局限性
·扩展性差。在MRv1中,jobtracker同时兼备了资源管理器和作业控制两个功能。这成为系统的一大瓶颈,严重制约着hadoop集群的发展。可靠性差。在MRv1中,采用master/slave结构,master存在单点问题,一但单点出现故障,整个集群将不可用。资源利用率低。MRv1采用基于槽位的资源分配模型,槽位是一种粗粒度的资源划分单位,通常一个任务不会用完槽位对应的资源,而且其他资源也无法使原创 2015-03-11 23:45:12 · 1933 阅读 · 0 评论 -
面试题:运行时异常与一般异常的区别
运行时异常表示虚拟机的通常操作中可能发生的异常,是一种常见的运行错误。java编译时要求方法必须声明抛出可能的非运行时异常,但并不要求必须声明抛出未捕获的运行时异常。原创 2015-03-11 20:59:21 · 576 阅读 · 0 评论 -
java 1维数组的反转
public class ArrayReverse{ //效率低,需重新建立一个一样大小的数组 private static int[] reverse1(int[] array){ int[] newArray = new int[array.length]; for(int i = 0;i<array.length;i++){ newArray[i] = array[arra原创 2015-03-11 23:38:12 · 666 阅读 · 0 评论 -
多线程有几种实现方法?同步有几种实现方法?
多线程有两种实现方法:继承Thread类和实现runnable接口。同步实现由两种:1)synchronized.2)wait()和notify.wait():使线程处于等待状态,并释放所有对象的锁。sleep():Thread类的静态方法,使一个正在运行的线程处于睡眠状态,调用此方法要捕获interruptedException.notify():唤醒一个处于等待状态的线程,并不能确切的确定唤醒转载 2015-03-16 21:58:54 · 1594 阅读 · 0 评论 -
同步和异步有什么不同?
数据在线程间共享时,必须进行同步存取。例如正在写的数据可能被另外一个线程读到,或者正在读的数据已经被另外的线程写过了,那么这些数据就是共享数据。当程序在一个应用对象上调用了一个花费时间很长时间来执行的方法,并不希望让程序等待方法返回时,就应该用异步编程。异步编程更有效率。转载 2015-03-16 21:53:17 · 334 阅读 · 0 评论 -
当一个线程进入一个对象的一个synchronized方法后,其他线程是否可以进此对象的其他方法?
如果其他方法前加了synchronized关键字,就不能,如果没加synchronized,则能够进去。如果这个方法内部调用了wait(),则可以进入其他加synchronized的方法。如果其他方法加了synchronized关键字,并且没有调用wai方法,则不能。 synchronized关键字有两种用法,一种是只用于方法的定义中,另外一种是synchronized块,我们不仅可以使转载 2015-03-16 22:45:33 · 7090 阅读 · 1 评论 -
什么是java序列化?如何实现java序列化?
java序列化就是处理对象流机制,所谓对象流就是将对象流化,可以对流化的对象进行读写,也可以将流化后的后的对象传输于网络之间。序列化的实现:将需要序列化的对象实现serializable接口,然后使用一个输出流(如FileOutputStream)来构建一个ObjectOutputStream(对象流)对象,然后使用ObjectOutputStream对象的WriteObject(Object o原创 2015-03-13 22:02:11 · 376 阅读 · 0 评论