昆明java培训
达内昆明广州春城路

18487146383

热门课程

10道JAVA的面试题

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

昆明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的简单示例

dubbo服务的线程模型

dubbo服务的负载均衡

dubbo服务的集群容错

dubbo服务的启动检查

选择城市和中心
贵州省

广西省

海南省

台湾