文档详情

java面试常见题目及解答.docx

发布:2017-05-21约3.9万字共24页下载文档
文本预览下载声明
1 什么情况下会触发Minor GC? Minor GC 发生在新生代的垃圾收集动作,当Eden区和survivor区内存不够的时候回产生minor gc,当出现Major或者是Full GC的时候往往伴随着Minor GC的产生。 java线程之间的通信 JVM如何加载一个类的过程,双亲委派模型中有哪些方法? 类加载的全过程是 : 加载 加载时类加载中的一个阶段:包含以下三个部分  = 1 \* GB3 ①通过一个类的全限定名来获取定义此类的二进制字节流  = 2 \* GB3 ②强这个字节流所代表的静态存储结构转化为方法区的运行时数据结构  = 3 \* GB3 ③在内存中生成一个代表这个列的java.lang.Class对象,作为方法去这个类的各种数据的访问入口 验证 验证是连接的第一步,这一阶段的目的是为了确保Class文件的字节流总包含的信息符合当前虚拟机的要求,并且不会危害虚拟机自身的安全,这个阶段是否严谨,决定了java虚拟机??否能够承受恶意代码的攻击 准备 准备阶段是正式为类变量分配内存并设置类变量初始值的阶段,这些变量所使用的内存豆浆在方法区中进行分配,不包括实例变量,所有初始化都是0即使是为静态变量指定了值,在这个阶段也是0 解析 解析是虚拟机将常量池内的符号引用替换为直接引用的过程 初始化 初始化时类加载过程的最后一步, (3)HashMap如何实现的?如何实现线程安全的hashmap Map m = Collections.synchronizedMap(new HashMap());可以实现线程安全的hashmap (4)HashMap和Concurrent?HashMap区别,?Concurrent?HashMap?线程安全吗,?Concurrent?HashMap如何保证?线程安全? (5)HashMap和HashTable?区别,HashTable线程安全吗? 第一个不同主要是历史原因。Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现。 也许最重要的不同是Hashtable的方法是同步的,而HashMap的方法不是。这就意味着,虽然你可以不用采取任何特殊的行为就可以在一个多线程的应用程序中用一个Hashtable,但你必须同样地为一个HashMap提供外同步。一个方便的方法就是利用Collections类的静态的synchronizedMap()方法,它创建一个线程安全的Map对象,并把它作为一个封装的对象来返回。这个对象的方法可以让你同步访问潜在的HashMap。这么做的结果就是当你不需要同步时,你不能切断Hashtable中的同步(比如在一个单线程的应用程序中),而且同步增加了很多处理费用。 第三点不同是,只有HashMap可以让你将空值作为一个表的条目的key或value。HashMap中只有一条记录可以是一个空的key,但任意数量的条目可以是空的value。这就是说,如果在表中没有发现搜索键,或者如果发现了搜索键,但它是一个空的值,那么get()将返回null。如果有必要,用containKey()方法来区别这两种情况。 (6)进程间通信有哪几种方式? 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。 命名管道 (named pipe) : 命名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。 消息队列( message queue ) : 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。 信号 ( sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。 共享内存( shared memory ) :共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号量,配合使用,来实现进程间的同步和通信。 套接字( socket ) : 套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其间的进程通信。 (7)JVM分为哪些区,每一个区干吗的? 1、程序计数器(Program Counter
显示全部
相似文档