it行业的快速发展,使得很多技术都得到了一定的发展,其中Java的发展大让大家格外关注,尤其近些年移动互联网应用快速兴起强势进入人们视野。学习Java的程序员也不断增加,不管是作为本职工作还是辅助拓展,他们对Java都具备着极大的热情。不过同时他们也会遇到一些问题,粤嵌整理了一些,希望对大家有所助益。

5.294.jpg

  1、同步方法和同步代码块的区别是什么?

  同步方法默认用this或者当前类class对象作为锁; 同步代码块可以选择以什么来加锁,比同步方法要更细颗粒度,我们可以选择只同步会发生同步问题的部分代码而不是整个方法;

  2、在监视器(Monitor)内部,是如何做线程同步的?程序应该做哪种级别的同步?

  监视器和锁在Java虚拟机中是一块使用的。监视器监视一块同步代码块,确保一次只有一个线程执行同步代码块。每一个监视器都和一个对象引用相关联。线程在获取锁之前不允许执行同步代码。

  3、什么是死锁(deadlock)?

  两个线程或两个以上线程都在等待对方执行完毕才能继续往下执行的时候就发生了死锁。结果就是这些线程都陷入了无限的等待中。

  4、如何确保N个线程可以访问N个资源同时又不导致死锁?

  粤嵌Java培训教导大家在使用多线程的时候,一种非常简单的避免死锁的方式就是:指定获取锁的顺序,并强制线程按照指定的顺序获取锁。因此,如果所有的线程都是以同样的顺序加锁和释放锁,就不会出现死锁了。

  5、Java集合类框架的基本接口有哪些?

  集合类接口指定了一组叫做元素的对象。集合类接口的每一种具体的实现类都可以选择以它自己的方式对元素进行保存和排序。有的集合类允许重复的键,有些不允许。

  Java集合类提供了一套设计良好的支持对一组对象进行操作的接口和类。Java集合类里面最基本的接口有:

  Collection:代表一组对象,每一个对象都是它的子元素。

  Set:不包含重复元素的Collection。

  List:有顺序的collection,并且可以包含重复元素。

  Map:可以把键(key)映射到值(value)的对象,键不能重复。