- 博客(6)
- 收藏
- 关注
原创 设计模式总结-java实现
设计模式总结-java实现在实际开发中,不是解决任何问题都要从头做起,我们更愿意服用以前是用过的解决方案。当找到一个好的解决方案,我们把它总结一下,抽象一下,最后得到的就是一个设计模式。每一个设计模式都是针对某个特定的问题而提出的便于复用的设计。软件设计的核心思想就是:面向接口编程,而不是面向实现编程封装变化点优先使用组合而不是继承设计模式按照目的准则可以分为三类:创建型,结构...
2019-06-01 06:41:04 209
原创 深入理解JVM-读书笔记-垃圾回收&内存分配策略
1 垃圾回收尽管java虚拟机有自动回收垃圾的能力,但这并不意味着java就不存在内存溢出和内存泄漏了。而当你碰到内存溢出或者泄露而不清楚虚拟机的GC和内存分配的话,是很难去排查出问题所在的。GC要完成的三件事情是哪些内存需要回收?在什么时候回收?该如何回收?1.1 哪些内存需要回收?java虚拟机中需要进行垃圾回收的地点主要是堆和方法区。a.堆内存的回收堆中的垃圾回收就...
2019-04-15 09:35:52 162
原创 深入理解JVM-读书笔记-内存溢出异常与常用解决思路
内存溢出异常1.java堆溢出当应用出现异常的时候根据异常堆栈信息“java.lang.OutOfMemoryError" 后 所跟的进一步提示”java heap space“可知道是堆内存发生了内存溢出。要解决堆内存的异常,一般是先通过内存映像分析工具(如eclipse memory analyzer)对Dump出来的堆转储快照进行分析,分析的重点是确定内存中的对象是否是必要的,也就...
2019-04-13 22:12:54 246
原创 深入理解jvm-读书笔记-HotSpot虚拟机对象
SpotHot虚拟机的对象1.对象的创建SpotHot虚拟机对象的创建流程大体上是这样的,虚拟机在碰到一条new语句的时候,先查看指令的参数在常量池是否有对应类的符号引用,如果没有则进行类加载,解析和初始化的过程将类加载入虚拟机。然后在加载检查通过之后,就可以为对象分配内存了。在加载完类之后一个对象的内存空间大小就已经能确定了。分配空间时存在两个需解决的问题:如何确定要分配的内存到底在堆上的...
2019-04-13 10:09:51 145
原创 深入理解jvm-读书笔记-java运行时数据区
java 运行时数据区域java运行时数据区域主要有五部分,堆,java虚拟机栈,本地方法栈,方法区,程序计数器,当然不同jvm有不同的实现方式,但这五部份的所提供的功能一定都会有。1.程序计数器程序计数器只有一小片内存,它可以理解为是当前线程所执行的字节码的行号的指示器,这样虚拟机的字节码解释器工作时虚拟机的其他部件就能通过改变这个计数器的值来选取下一条要执行的字节码指令,像分支,循环,...
2019-04-12 20:57:57 226
原创 try catch finally执行流程原理分析
try catch finally语句执行流程原理分析碰到一道讨人try catch语句的面试题,代码如下:package test;public class test { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(test.tes...
2019-04-11 22:26:31 1645
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人