一.对象的整体结构 引用地址 1.对象头 图中可以看出对象头分为MarkWord与Class对象指针,其中MarkWord标识了对象运行时的各种属性与状态值,哈希码(HashCode).GC分代 年状 态标志、线程持有的锁、偏向线程ID、偏向时间戳等. 而Class对象指针则指向一个类在被类加载器读 ...
分类:
其他好文 时间:
2019-04-10 20:24:45
阅读次数:
195
1、面向对象内存分析 栈的特点 栈的特点 (1)JVM为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数、局部变量等) (2)栈属于线程私有,不能实现线程间的共享! (3)栈的存储特性是:先进后出,后进先出。由系统自动分配,速度快!是一个连续的内存空间。 (4)栈描述的是方法执行的内存模型 ...
分类:
编程语言 时间:
2019-04-07 12:53:46
阅读次数:
158
单例设计模式: 让类创建的对象,在系统中只有唯一的实例, 使用python类内置的__new__()方法实现,__new__()方法在创建对象时会被自动调用,通过重写__new__()方法,使得无论用类型创建多少个对象,内存中都只创建一个对象的实例,此时__new__()方法必须返回此内置函数的调用 ...
分类:
编程语言 时间:
2019-04-06 16:46:23
阅读次数:
154
以上为2个Java源文件,否则会编译错误(一个源文件至多有一个public类) 第一次画图,哈哈!!! 栈(先进后出) ...
分类:
其他好文 时间:
2019-03-17 01:23:08
阅读次数:
155
JVM常用的回收算法是: 标记/清除算法 标记/复制算法 标记/整理算法 其中上诉三种算法都先具备,标记阶段,通过标记阶段,得到当前存活的对象,然后再将非标记的对象进行清除,而对象内存中对象的标记过程,则是使用的 “根搜索算法”,通过遍历整个堆中的GC ROOTS,将所有可到达的对象标记为存活的对象 ...
分类:
其他好文 时间:
2019-03-09 10:21:21
阅读次数:
214
在JavaScript中,如果要复制一个变量我们应该怎么做呢?下面这种做法是最简单的一种形式://把a复制给bleta=12;letb=a;这种复制方法只能适用于基本类型,如果a是对象怎么办呢?我们先来看看上面的代码在内存中做了什么事:声明了变量a=12,栈内存会分配一块区域来存储,如上图所示。把a赋给b,会在栈中重新开辟一块区域来存储b,并且b的值就是a的值。假如a是对象,内存做了什么事呢?来看
分类:
编程语言 时间:
2019-03-06 20:41:12
阅读次数:
220
内存管理的两种方式: 1、MRR 手动管理 2.ARC 自动管理 两种内存管理常见的问题: 1、释放了或者重写了正在使用的数据 程序崩溃 2、没有释放不需要的对象 内存泄露 拥有权在实际操作中的体现: MRR环境: 1、在某个代码块中创建的对象 代码块对其拥有权 -(void)test1{ 创建的关 ...
分类:
其他好文 时间:
2019-02-18 14:40:49
阅读次数:
210
杂项以及对象 var regexp = new ReExp();创建正则表达式对象 四舍五入: 从上到下依次为:向上取整,向下取整,四舍五入 Math,pow 乘方 Math,aqrt();开方 在任意设置范围区间内取随机整数: date日期类型: 对象:内存中存储多个数据的存储空间描述现实中一个事 ...
分类:
编程语言 时间:
2019-02-15 20:01:06
阅读次数:
215
一、预备知识 单例对象 方式一:__new__方法 方式二:模块导入,只要在引入的文件中实例了这个对象,不管引道哪里,这个对象都指向同一个内存空间 ...
分类:
其他好文 时间:
2019-02-14 13:44:18
阅读次数:
136
java基础4:深入理解final关键字 final关键字可以修饰类、方法和引用。 修饰类,该类不能被继承。并且这个类的对象在堆中分配内存后地址不可变。 修饰方法,方法不能被子类重写。 修饰引用,引用无法改变,对于基本类型,无法修改值,对于引用,虽然不能修改地址值,但是可以对指向对象的内部进行修改。 ...
分类:
编程语言 时间:
2019-02-08 19:57:56
阅读次数:
208