摘要:
热部署 对于Java应用程序来说,热部署就是在运行时更新Java类文件。 热部署的原理是什么 想要知道热部署的原理,必须要了解java类的加载过程。一个java类文件到虚拟机里的对象,要经过如下过程。 首先通过java编译器,将java文件编译成class字节码,类加载器读取class字节码,再将类 阅读全文
摘要:
类加载器 类加载的机制的层次结构 每个编写的”.java”拓展名类文件都存储着需要执行的程序逻辑,这些”.java”文件经过Java编译器编译成拓展名为”.class”的文件,”.class”文件中保存着Java代码经转换后的虚拟机指令,当需要使用某个类时,虚拟机将会加载它的”.class”文件,并 阅读全文
摘要:
AOP技术 Lombok去除重复代码插件 动态修改class文件等 Java字节码增强指的是在Java字节码生成之后,对其进行修改,增强其功能,这种方式相当于对应用程序的二进制文件进行修改。Java字节码增强主要是为了减少冗余代码,提高性能等。 方法一: 自定义ClassLoader来加载修改后的字 阅读全文
摘要:
Jconsole,Java写的程序检测。 GUI,直接点击 MAC: /Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home/bin/jconsole 当分析工具弹出时(取决于正在运行的 Java 版本以及正在运行的 Java 阅读全文
摘要:
什么是观察者模式 观察者模式(Observer),是一种行为性模型,行为型模式关注的是系统中对象之间的相互交互,解决系统在运行时对象之间的相互通信和协作,进一步明确对象的职责。相比来说,创建型模式关注对象的创建过程,结构型模式关注对象和类的组合关系。 模式的职责 观察者模式主要用于1对N的通知。当一 阅读全文
摘要:
装饰器模式,也成为包装模式,顾名思义,就是对已经存在的某些类进行装饰,以此来扩展一些功能。其结构图如下: Component为统一接口,也是装饰类和被装饰类的基本类型。 ConcreteComponent为具体实现类,也是被装饰类,他本身是个具有一些功能的完整的类。 Decorator是装饰类,实现 阅读全文
摘要:
前言: 串行回收,Serial回收器,单线程回收,全程stw; 缺点是只有一个线程,执行垃圾回收时程序停止的时间比较长 并行回收,名称以Parallel开头的回收器,多线程回收,全程stw; 指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。 多个线程执行垃圾回收适合于吞吐量的系统,回收时 阅读全文
摘要:
Java内存泄漏就是没有及时清理内存垃圾,导致系统无法再给你提供内存资源(内存资源耗尽); 而Java内存溢出就是你要求分配的内存超出了系统能给你的,系统不能满足需求,于是产生溢出。 内存溢出,这个好理解,说明存储空间不够大。就像倒水倒多了,从杯子上面溢出了来了一样。 内存泄漏,原理是,使用过的内存 阅读全文
摘要:
递归调用,栈深度。 错误原因: java.lang.StackOverflowError 栈内存溢出 栈溢出 产生于递归调用,循环遍历是不会的,但是循环方法里面产生递归调用, 也会发生栈溢出。 解决办法:设置线程最大调用深度 -Xss5m 设置最大调用深度 小伙伴,玩个好玩的,最大默认深度: 结果: 阅读全文
摘要:
Java堆溢出 错误原因: java.lang.OutOfMemoryError: Java heap space 堆内存溢出 解决办法:设置堆内存大小 // -Xms1m -Xmx10m -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError 下面这 阅读全文