摘要:本文用于记录Java堆中对象的分配、访问和布局的知识。 对象的创建 创建一个普通的对象的过程总结如下 检查类是否已经加载,未加载先执行类加载过程 为对象分配内存,如果内存规整,采用指针碰撞来分配,不规整则使用空闲列表找到符合大小要求的内存 内存分配的并发问题:对内存分配的动作进行同步处理,优化后,虚 阅读全文
posted @ 2019-09-18 16:02 NotNil 阅读 (17) 评论 (0) 编辑
摘要:Java程序在虚拟机自动内存管理的机制的帮助下,不容易出现内存泄露和内存溢出问题,这也就要求程序员需要了解虚拟机处理内存的机制,以解决OOM问题。 运行时数据区域 程序计数器 一块较小的内存空间,可以看做是当前线程所执行的字节码的行号指示器。 每个线程都需要一个独立的程序计数器,各线程间互不干扰,独 阅读全文
posted @ 2019-09-18 15:21 NotNil 阅读 (10) 评论 (0) 编辑
摘要:反转链表(简单) 问题链接: "reverse linked list" + 非递归方式 + 递归方式 两两交换链表中的节点(中等) 问题链接: "swap nodes in pairs" + 非递归方式 + 递归方式 环形链表(简单) 问题链接: "linked list cycle" 环形链表i 阅读全文
posted @ 2019-08-22 17:28 NotNil 阅读 (16) 评论 (0) 编辑
摘要:什么是索引? 索引其实是一种数据结构,能够帮助我们快速的检索数据库中的数据。 Mysql中有哪几种索引? 有Hash索引和B+ Tree索引,InnoDB引擎默认的是B+树。 Hash索引和B+ Tree索引有什么优缺点? Hash索引底层是哈希表,哈希表是一种以key value存储数据的结构,适 阅读全文
posted @ 2019-08-12 21:44 NotNil 阅读 (14) 评论 (0) 编辑
摘要:/** * 把原始字符串分割成指定长度的字符串列表 * * @param inputString * 原始字符串 * @param length * 指定长度 * @return */ public static List getStrList(Stri... 阅读全文
posted @ 2017-07-03 10:29 NotNil 阅读 (11181) 评论 (1) 编辑