本JVM系列属于本人学习过程当中总结的一些知识点,目的是想让读者更快地掌握JVM相关的知识要点,难免会有所侧重,若想要更加系统更加详细的学习JVM知识,还是需要去阅读专业的书籍和文档。 本文主题内容: JVM 内存区域概览 堆区的空间分配是怎么样?堆溢出的演示 创建一个新对象内存是怎么分配的? 方法 ...
分类:
其他好文 时间:
2020-02-09 11:29:48
阅读次数:
68
生成器 定义: 生成器是在存在内存中的公式(专业点叫算法); 举例: list1=(i for i in range(5)) 和 list2=[ i for i in range(5)] 可以看出list1是generator object对象内存地址(函数或计算公式);而list2在内存中是实实在 ...
分类:
其他好文 时间:
2020-02-07 22:15:21
阅读次数:
90
类与对象的用法 一、类的基本使用 类中包括:静态字段(静态变量)、动态字段(动态变量)和构造方法 静态字段写在__init__方法之前,动态字段需要实例化对象类传递参数值,字段名写在__init__方法中 实例化对象的过程: 创建一个对象空间,实例空间 自动执行__init__方法,并将实例化的对象 ...
分类:
其他好文 时间:
2020-01-26 15:51:31
阅读次数:
69
1、对象头(Header) 对象自身运行时数据(mark word):hash 码、GC 分代年龄、锁状态标识、是否偏向锁、线程持有的锁、偏向线程ID、偏向时间戳; 类型指针:对象指向元数据的指针。 mark word: 对象头信息与对象自身定义的数据无关的额外存储成本,考虑到虚拟机的空间效率,对象 ...
分类:
编程语言 时间:
2020-01-11 13:08:43
阅读次数:
83
编程语言的分层理解 生态层:衍生层(在编程语言基本概念和特征的基础上衍生出的特征:aop)、衍生dsl(由编程语言通用概念经过编程(第三方库)添加出的新概念reactX等) 机器层(或者叫基础层)(cpu 执行流管理:并发、异步、异常等;IO;内存管理)+ 特性层(编程语言的独有特征:java的注解 ...
分类:
编程语言 时间:
2020-01-06 00:14:52
阅读次数:
104
String类的概述 发现String 类代表字符串。 一般的创建对象都需要new方法 但是String不需要 可以直接创建对象 内存图: 字符串的本质是一个字符的数组。 String类构造方法 String类的方法查找 String类中方法查找练习 ...
分类:
其他好文 时间:
2019-12-23 18:47:34
阅读次数:
74
Why Make_shared ? C++11 中引入了智能指针, 同时还有一个模板函数 std::make_shared 可以返回一个指定类型的 std::shared_ptr, 那与 std::shared_ptr 的构造函数相比它能给我们带来什么好处呢 ? 优点 效率更高 shared_ptr ...
分类:
编程语言 时间:
2019-12-15 23:31:27
阅读次数:
168
{ 0. C++ 标准库使用比如vector::push_back 等这类函数时,会对参数的对象进行复制,连数据也会复制.这就会造成对象内存的额外创建, 本来原意 是想把参数push_back进去就行了,通 过std::move,可以避免不必要的拷贝操作。 1. std::move是将对象的状态或者 ...
分类:
编程语言 时间:
2019-12-15 20:21:12
阅读次数:
84
概念:内存泄露:内存泄露就是对象引用消失了,对象内存却没有被回收。 java是自动管理内存的,通常情况下程序运行到稳定状态,内存大小也达到一个基本稳定值,但是内存泄露导致GC不能回收泄露的垃圾,内存不断变大,最终超出了内存界限,进而程序抛内存控制的Exception(说法应该不对,java只有Out ...
分类:
其他好文 时间:
2019-12-11 23:19:21
阅读次数:
94
面向对象内存的分析: 一:内存的分类 1:栈(tack) 2:堆(heop) 3: 静态区 4:代码区 二:引用数据类型内存特点 三:引用数据类型传值的特点 四:引用数据类型在作为参数时的特点 面向对象的基础 一:三大特征 1:封装(抽象)(封装就是定义一个类,然后给该类的属性和方法加上访问控制修饰 ...
分类:
编程语言 时间:
2019-12-02 00:26:16
阅读次数:
95