课程咨询 :186 8716 1620      qq:2066486918

昆明Java培训 > java教程 > 10道JAVA的面试题
  • 10道JAVA的面试题

    发布:昆明Java培训      来源:java教程      时间:2016-11-04

  • 昆明Java培训机构的老师今天给大家分享10道JAVA的面试题。

    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) Java中的volatile变量是什么?

    volatile是一个特殊的修饰符,只有成员变量才能使用它。在Java并发程序缺少同步类的情况下,多线程对成员变量的操作对其它线程是透明的。volatile变量可以保证下一个读取操作会在前一个写操作之后发生,就是上一题的volatile 量规则。

    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中什么是竞态条件?举个例子说明。

    竞态条件会导致程序在并发情况下出现一些bugs。多线程对一些资源的竞争的时候就会产生竞态条件,如果首先要执行的程序竞争失败排到后面执行了,那么整个程序就会出现一些不确定的bugs。这种bugs很难发现而且会重复出现 因为线程间的随机竞争。一个例子就是无序处理。

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

    这个问题经常被问到,但还是能从此区分出面试者对Java线程模型的理解程度。start ()方法被用来启动新创建的线程,而且start ()内部调用了run ()方法,这和直接调用run ()方法的效果不一样。当你调用run ()方法的时候,只会是在原 来的线程中调用,没有新的线程启动,start ()方法才会启动新线程。

    后期昆明Java培训机构的老师今天还会不定期的给大家分享JAVA的面试题目。

    推荐文章

上一篇:java课程之接口以及打包

下一篇:Hibernate的简单示例

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:11/30

Java--零基础业余班

Java--零基础业余班

开班日期:11/30

Java--周末提升班

Java--周末提升班

开班日期:11/30

Java--零基础周末班

Java--零基础周末班

开班日期:11/30

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:186 8716 1620      qq:2066486918    全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56