• 面试问题整理分类

    JVM 1、JVM监控工具有哪些,区别又是什么(如能追上各个命令的使用监控,显得更好),如何调优的(就那么几个内存参数和GC参数什么时候配置什么样的)?如何定位问题的?(就说各种命令,gc日志,快照,监控工具) 2、JVM的各个带说说(说的越详细越好各个参数都说上什么情况下怎么设置参数更好,和GC结合起来必加分),JVM的GC为什么选择分带收集(最好各个算法说上,为什么这个带使用这个,和G1的各个

    [Read More...]
  • 面试题目

    1、Spring.mvc的优势,原理,流程 2、Mybatis的原理优势 3、集合里面那些对象的原理 4、扩容原理,特别是map的底层 5、Hashmap、Hashtable和cocurrentHashMap的区别,要讲出它们各自的实现原理才行,比如Hashmap的扩容机制、cocurrentHashMap的段锁原理、多线程安全性。 6、几种造线程池的方法,区别 7、线程有哪几种状态,他们是如何转

    [Read More...]
  • JVM命令

    1、jps (Java Virtual Machine Process Status Tool) 显示当前系统的java进程情况,及其id号 -q 只显示pid,不显示class名称 -m 输出传递给main方法的参数,在嵌入式jvm上可能是null -l 输出应用程序main class的完整package名 或者 应用程序的jar文件完整路径名 -v 输出传递给JVM的参数

    [Read More...]
  • ClassLoader 双亲委托机制

    ClassLoader是用来用来加载Class文件到JVM,以供程序使用的。 每一个自定义ClassLoader都必须继承ClassLoader这个抽象类,而每个ClassLoader都会有一个parent ClassLoader,我们可以看一下ClassLoader这个抽象类中有一个getParent()方法,这个方法用来返回当前 ClassLoader的parent,注意,这个parent不是

    [Read More...]
  • JVM之OutOfMemoryError

    1、堆溢出 将堆的最大值和最小值设置成一样的即可避免堆自动扩展,通过参数-XX:+HeapDumpOnOutOfMemoryError可以在异常时Dump出堆转储快照便于以后分析。 2、虚拟机栈和本地栈溢出 -Xoss(设置本地方法栈大小) -Xss(设置虚拟机栈大小) 两种异常 StackOverFlowError and OutOfMemoryError。 如果建立过多线程导致内存溢出,在不能

    [Read More...]
  • JVM之对象

    1、对象的创建 虚拟机遇到一条new指令时,首先将检查这个指令参数在常量池中是否能定位到一个类的符号引用,并检查这个符号代表的类是否已被加载、解析和初始化过。如果没有加载必须先执行相应的类加载过程。类加载完成后,JVM将为新生对象分配内存。为对象分配内存等同于把一块确定大小的内存从Java Heap中划分出来。假设JVM内存是规整的,可用指针碰撞来分配如果是不规整,使用和未使用的交错,使用空闲列表

    [Read More...]