笔筒虫
笔筒虫
全部文章
分类
Java多线程&并发(13)
Java常用类库(5)
Java常识(6)
Java虚拟机(6)
MySQL数据库(7)
《深入理解Java虚拟机》读书小册(8)
《深入理解Java虚拟机》读书笔记(7)
剑指offer题解(13)
未归档(65)
算法基础(5)
计算机操作系统(3)
计算机网络(6)
通过UML和小DEMO学习设计模式(10)
归档
标签
去牛客网
登录
/
注册
笔筒虫的博客
全部文章
(共154篇)
十五:运行时栈帧结构
栈帧( Stack frame) 用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈(Virtual Machine Stack)s的栈元素。栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。每一个方法从调用开始至执行完成的过程,都对应着一个栈帧在...
2019-06-08
0
838
十四:类加载的过程
加载->验证->准备->解析->初始化 1.加载 比如运行时计算生成,这种场景使用得最多的就是动态代理技术,在java.lang.reflect.Proxy中,就是用了ProxyGenerator.generateProxyClass来为特定接口生成形式为“*$...
2019-06-07
0
0
十三:类加载的时机
类的生命周期: 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括: 加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7...
2019-06-07
0
664
十二:Class文件常量池
Java代码在进行Javac编译的时候,并不像C和C++那样有“连接”这一步骤,而是在虚拟机加载 Class文件的时候进行动态连接 也就是说,在 Class文件中不会保存各个方法、字段的最终内存布局信息,因此这些字段、方法的符号引用不经过运行期转换的话无法得到真正的内存入口地址,也就无法直接被虚拟...
2019-06-07
0
589
十一:堆外内存导致的溢出错误
问题导入: 某项目运行在内存4GB的32位Windows机器上,运行Jetty服务器,划分了1.6GBA给堆内存,但是依旧不时会抛出内存溢出异常 原因: 操作系统对每个进程能管理的内存是有限制的,这台服务器使用的32 位 Windows平台的限制是2GB,其中划了16GB给Java堆...
2019-06-07
0
510
九:内存分配与回收策略
1.对象优先在新生代的Eden区进行分配 大多数情况下,对象在新生代Eden区中分配。当Eden区没有足够空间进行分配时,虚拟机将发起一次 Minor GC。 2.大对象直接进入老年代 3.长期存活的对象将进入到老年代(虚拟机设置值,默认阈值为15) 为了能够识别哪些对象存在新生代,哪些老年...
2019-06-07
0
644
八:垃圾回收相关参数
-verbose:gc 显示gc详细信息
2019-06-07
0
542
八:理解GC日志
默认垃圾收集器-XX:+UseParallelGC【-XX:+PrintCommandLineFlags -version查看】 G1垃圾收集器 GC日志开头的“[GC”和“[Full GC”说明了这次垃圾收集的停顿类型,而不是用来区分新生代GC还是老年代GC的。如果有“Fu...
2019-06-07
0
543
附:问而知
结合JDK谈谈了解的设计模式 单例模式:JDK的lang包中Runtime类的getRuntime()对Runtime实例的获取就是饿汉式单例的体现 抽象工厂:JDK的sql包中的Connection接口就将一个产品族的构建方法进行了统一定义 工厂方法:JDK的util包中的Collectio...
2019-06-07
0
485
附-七大软件设计原则
该文章部分图片来自:慕课网《java设计模式精讲 Debug 方式+内存分析》 七大原则: 开闭原则、依赖倒置原则、单一职责原则 接口隔离原则、迪米特法则、里式替换原则、组合复用原则 注: 1.高层底层不是UML图中类的高低,而是指在类似于MV...
2019-06-07
1
632
首页
上一页
1
2
3
4
5
6
7
8
9
10
下一页
末页