### JVM * JVM初始分配的堆内存由-Xms指定,默认是物理内存的1/64;JVM的最大分配的堆内存由-Xmx指定,默认是物理内存的1/4.默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx最大限制;空余堆内存大于70%时,JVM就会减少堆直到-Xms的最小限制。因此,服务器端一般设置-Xms、-Xmx相等以避免在每次GC后调整堆的大小。 ### JConsole * Java 5开始引入JConsole ### 深入拆解Java虚拟机 * 可以使用-XX:+HeapDumpOnOutOfMemoryError参数来让虚拟机出现OOM的时候自动生成dump文件 * ClassLoader的具体作用就是将class文件加载到jvm虚拟机中去,程序就可以正确运行了。但是,jvm启动的时候,并不会一次性加载所有的class文件,而是根据需要去动态加载。 * Java 虚拟机是如何判定两个 Java 类是相同的。Java 虚拟机不仅要看类的全名是否相同,还要看加载此类的类加载器是否一样。只有两者都相同的情况,才认为两个类是相同的。即便是同样的字节代码,被不同的类加载器加载之后所得到的类,也是不同的。 * ClassLoader * BootStrap ClassLoader:称为启动类加载器,是Java类加载层次中最顶层的类加载器,负责加载JDK中的核心类库,如:rt.jar、resources.jar、charsets.jar等 * Extension ClassLoader:称为扩展类加载器,负责加载Java的扩展类库,默认加载JAVA_HOME/jre/lib/ext/目下的所有jar。 * App ClassLoader:称为系统类加载器,负责加载应用程序classpath目录下的所有jar和class文件。 * 除了Java默认提供的三个ClassLoader之外,用户还可以根据需要定义自已的ClassLoader,而这些自定义的ClassLoader都必须继承自java.lang.ClassLoader类,也包括Java提供的另外二个ClassLoader(Extension ClassLoader和App ClassLoader)在内,但是Bootstrap ClassLoader不继承自ClassLoader,因为它不是一个普通的Java类,底层由C++编写,已嵌入到了JVM内核当中,当JVM启动后,Bootstrap ClassLoader也随着启动,负责加载完核心类库后,并构造Extension ClassLoader和App ClassLoader类加载器。 # *JDK* ### JDK中自带的工具 #### `version 1.8` #### Create and Build Applications * appletviewer * extcheck * jar * java * javac * javadoc * javah * javap * jdb * jdeps #### Security * keytool * jarsigner * policytool #### Internationalization * native2ascli #### Remote Method Invocation(RMI) * rmic * rmiregistry * rmid * serialver #### Java IDL and RMI-IIOP * tnameserv * idlj * orbd * servertool #### Deploy Applications and Applets * pack200 * unpack200 * javapackager * javafxpackager #### Java Web Start * javaws #### Monitor Java Applications * jconsole * jvisualvm #### Monitor the JVM * jps * jstat * jstatd * jmc #### Web Services * schemagen * wsgen * wsimport * xjc #### Troubleshooting * jcmd * jinfo * jhat * jmap * jsadebugd * jstack #### Scripting * jrunscript * jjs # *JavaEE* ## `基础语法` ### 类 ### 接口 ### 数组 ### 方法重载 ### 方法重写 ### 面向对象 ### 常用包 ### IO https://juejin.im/post/5af79bcc51882542ad771546 https://www.ibm.com/developerworks/cn/java/j-lo-javaio/index.html ### 多线程 ### 反射机制 ### 泛型 ### 集合框架 ### 异常处理 ### JAVA8新特性 ### JAVA8新特性