【面试题解析】-- 20200219Java软件开发工程师面试题解析

1. 谈谈你所理解的多线程是什么?

多线程是为了让程序能够在同一时间做多个任务而实现的,它是以提高资源的使用率,进而来提高程序效率的一种方式。

2. Java中如何实现多线程?

在Java中实现多线程的方式有两种:一个是继承Thread类,一种是实现Runnable接口。
因为Java语言是一门单继承的语言所以我们一般会选中实现Runnable接口的方式来实现多线程。

//继承thread类实现多线程
public class Demo extends Thread{
   @Override
   public void run(){

   }
}

//实现runnable接口
public class Demo implements Runnable{
   @Override
   public void run(){

   }
}

3. 多个线程产生死锁该如何解决?

  1. 对竞争资源引入序号,程序必须先获的序号较小的资源,才能够获的需要较大的资源。
  2. 在Java代码中增加同步关键字的使用。
  3. 当程序进行嵌套调用时,了解哪些调用使用了其他调用同样的资源连接,让它们的资源连接不一致。
  4. 避免在执行数据库调用或者是占有Java虚拟机的时候,执行其他与Java虚拟机无关的操作。

4. 什么是线程池?

线程池就像数据库连接池一样是一个对象池。所有的对象池都有一个共同的目的那就是提高资源的使用率从而达到提高程序效率的目的。使用线程池的话,线程池能够在初始化初期就创建一定数据的线程对象,通过提高对这些资源的使用率,避免高频率地创建和销毁对象,从而达到提高程序效率的目的。

5. 谈谈Java垃圾回收机制的原理

Java的垃圾回收机制是Java虚拟机提供的一种能力,用于不定时地对无任何引用的对象进行垃圾回收,这里需要注意的是Java虚拟机的垃圾回收机制回收的是无任何引用的对象占据的内存空间而非对象本身,垃圾回收器在回收对象之前会调用该对象的finalize()方法。

发布了132 篇原创文章 · 获赞 55 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_43199016/article/details/104403491