使用del语句删除一些对象引用。 注意不是把内存地址删了,你只是删除了引用,它就变为了一个可回收的对象,内存会不定期回收。 del语句的语法是: del var1[,var2[,var3[....,varN]]] 您可以通过使用del语句删除单个或多个对象。例如: del var del var_a ...
分类:
编程语言 时间:
2018-10-10 14:40:22
阅读次数:
764
Java虚拟机内存区域 Java虚拟机所管理的内存由以下五个运行时数据区域组成。 1.程序计数器 可以把程序计数器看作当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选择下一条需要执行的字节码指令。 由于JVM的多线程是通过线程轮流切换并分配处 ...
分类:
编程语言 时间:
2018-09-29 21:30:06
阅读次数:
136
对象的创建 java中对象遇到new命令会在堆上分配内存,有2种方式分配内存,如果gc回收具有压缩选项,那么就采用指针碰撞。 指针碰撞,如果内存是规整的,已经被使用的在一边,未使用的在一边,中间用指针分割,如果需要创建对象,就移动指针,移动的大小和创建的对象大小一致。 另一种是采用"空闲列表",gc ...
分类:
编程语言 时间:
2018-09-21 13:27:49
阅读次数:
163
任何语言在运行过程中都会创建对象,也就意味着需要在内存中为这些对象在内存中分配空间,在这些对象失去使用的意义的时候,需要释放掉这些内容,保证内存能够提供给新的对象使用。对于对象内存的释放就是垃圾回收机制,也叫做gc,对于java开发者来说gc是一个双刃剑 我们这里找了两张搞笑图片分别来表示c语言的垃 ...
分类:
编程语言 时间:
2018-09-05 21:50:05
阅读次数:
155
C++的对象模型就是C++的对象在内存中是如何排布的。 C++的对象就包含了成员变量和成员函数。 回归本质: class和struct遵循相同的内存对齐规则,因此计算class占用的内存大小和struct一样。 值得思考的问题: 对象内存布局初探: 可以看出打印的都是20。 增加成员函数: 第40行 ...
分类:
编程语言 时间:
2018-09-03 02:42:23
阅读次数:
198
一 Object 中equals: 格式: public boolean equals(Object obj) equals 是比较两个对象是否相等,实际是比较两个对象的内存地址值是否相等,如果相等方法true,否则false 二 String 中equals: 重写了Object中equals 是 ...
分类:
其他好文 时间:
2018-08-23 02:17:29
阅读次数:
178
无参数的构造函数适合没初始化值的初始化对象,而引用拷贝适合创建对象时用另一个对象对其初始化,如果此时用的是浅拷贝则释放一个对象内存时系统会释放2次从而出错(因为它指向同一个内存),深拷贝就不存在这个问题,各自都有自己的数据。class Array 2 { 3 public: 4 Array(){m_ ...
分类:
编程语言 时间:
2018-08-16 15:41:02
阅读次数:
138
简述java垃圾回收机制 在java中我们不需要去释放一个对象的内存,这个由jvm去做。jvm中有个垃圾回收线程,它是低优先级的,当虚拟机空闲时或者堆内存不足时,它才会执行回收没用的对象。 内存区域中的程序计数器,虚拟机栈,本地栈是随线程而生随线程而死,每个栈帧的大小在类被加载时就已经确定下来了,无 ...
分类:
其他好文 时间:
2018-08-12 20:10:12
阅读次数:
161
JVM 内存划分 栈 虚拟机栈 本地方法栈 堆 方法计数器 方法区 对象的分配 指针碰撞 空闲列表 (√) 分配内存 线程安全问题: 分配动作处同步 实际上采用CAS保证分配的原子性 TLAB 本地线程分配缓存 对象内存中的信息布局 对象头 Mark word (根据对象状态复用此部分空间) has ...
分类:
其他好文 时间:
2018-08-06 00:38:25
阅读次数:
211
设计模式 设计模式是前人工作的总结和提炼,通常,被人们广泛流传的设计模式都是针对某一特定问题的成熟解决方案 使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性 单例设计模式 目的 -- 让类创建对象,在系统中只有唯一的一个实例 每一次执行 类名() 返回的对象,内存地址是相同的 单 ...
分类:
编程语言 时间:
2018-07-31 11:07:37
阅读次数:
119