随笔分类 -  阅读笔记

摘要:一、hashcode() 1、hashCode方法返回值是int类型的散列码,对象的散列码是为了更好的支持基于哈希机制的java集合类,例如Hashtable,HashMap,HashSet。如果重写equals方法,也要重写hashCode方法。 2、hashCode方法的一致约定要求 (1)在j 阅读全文
posted @ 2020-11-27 17:31 夕阳醉了 阅读(215) 评论(0) 推荐(0) 编辑
摘要:1、访问地址:https://visualvm.github.io/pluginscenters.html,找到自己JDK版本对应的插件下载地址(我的JDK版本为1.7.0_67): 2、点击该链接进入如图界面,找到Visual GC插件,点击下载 3、打开Java VisualVM,工具——>插件 阅读全文
posted @ 2018-04-08 15:24 夕阳醉了 阅读(8174) 评论(1) 推荐(2) 编辑
摘要:一、工厂模式 只支持横向扩展,如增加新的产品。若需纵向扩展就会修改已有的产品代码。我们接口中心适配器就用的此模式,增加新xizang的车站client不会影响其他client,但是如果要增加接口,就会影响其他client。 二、抽象工厂模式 只支持纵向扩展,增加产品族容易,但是增加产品就会修改原有结 阅读全文
posted @ 2018-04-04 09:15 夕阳醉了 阅读(179) 评论(0) 推荐(0) 编辑
摘要:一、类加载机制 类加载器将类的.class文件中的二进制数据读入到内存中,将其放在方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问 阅读全文
posted @ 2018-03-29 17:22 夕阳醉了 阅读(231) 评论(0) 推荐(0) 编辑
摘要:以下配置主要针对分代垃圾回收算法而言。 一、堆大小设置 年轻代的设置很关键 JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。在Windows 阅读全文
posted @ 2018-02-28 14:47 夕阳醉了 编辑
摘要:一、垃圾回收日志说明 [GC[DefNew: 7307K->494K(9216K), 0.0043710 secs] 7307K->6638K(19456K), 0.0044894 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] 1、日志开发的“[ 阅读全文
posted @ 2018-02-24 11:03 夕阳醉了 阅读(266) 评论(0) 推荐(0) 编辑
摘要:一、标记-清除算法 算法:分为标记和清除两个阶段,首先标记出所有需要回收的对象,再对标记对象进行回收。 不足之处:效率不高,会产生大量不连续内存碎片,导致下次分配较大内存时,若内存不足不得不触发垃圾回收操作。 此算法为最基础算法,其他算法都是在此算法基础上改进而得到的。 二、复制算法 算法:将可用内 阅读全文
posted @ 2018-02-23 10:58 夕阳醉了 阅读(178) 评论(0) 推荐(0) 编辑
摘要:一、垃圾回收器回收的对象 虚拟机内存区域中程序计数器、虚拟机栈、本地方法栈随线程而生,随线程而灭。这3个区域内存分配和回收都具备确定性。因此不需要过多考虑回收问题。 而Java堆和方法区不一样,这部分内存的分配和回收都是动态的,垃圾回收器所关注的就是这两部分区域。 二、如何判断对象需要回收 1、引用 阅读全文
posted @ 2018-02-14 14:30 夕阳醉了 阅读(140) 评论(0) 推荐(0) 编辑
摘要:一、Java堆溢出 测试代码: 执行结果: 针对这类异常,可通过分析工具(如Eclipse Memory Analyzer)对异常快照进行分析,找到具体发生异常代码。 二、虚拟机栈和本地方法栈的溢出 由于HotSpot虚拟机不区分虚拟机栈和本地方法栈,因此不需要设置-Xoss参数,栈容量只由-Xss 阅读全文
posted @ 2018-02-13 16:58 夕阳醉了 阅读(338) 评论(0) 推荐(0) 编辑
摘要:一、对象的创建 1、类加载: 虚拟机在遇到一条new指令时候,检查类是否已被加载、解析、初始化过,如果没有,则执行类加载过程。 2、分配内存:类加载完成后,则为新对象从java堆上分配内存,分配内存有两种方式:指针碰撞和空闲列表 指针碰撞 Java堆中内存是绝对完整的,用过和空闲的内存分别放在一边, 阅读全文
posted @ 2018-02-13 11:21 夕阳醉了 阅读(223) 评论(0) 推荐(0) 编辑
摘要:1、Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。 2、运行时数据区域划分 java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个区域,这些区域都有各自的用途,创建和销毁时间,有的区域随着虚拟机进程的启动而存在,有的区域 阅读全文
posted @ 2016-02-15 15:57 夕阳醉了 阅读(647) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示