String是最常操作的引用类型了,但也是我最怕的地方(因为不熟悉),最怕还是String和Array同时出现,所以现在先写下一篇博客熟悉熟悉字符串 1.字符串的不可变性 我们常说String是不可变的,但的对应的变量为什么还是能"改"为不同的字符串呢? 来看一下String的部分源码 在114行可 ...
分类:
其他好文 时间:
2019-12-29 13:01:43
阅读次数:
74
垃圾回收与内存分配策略 "垃圾回收与内存分配策略" "“垃圾”的定义" "对象是否为“垃圾”" "何为“引用” 四种引用类型" "最后的挣扎 finalize()方法" "回收方法区" "垃圾回收算法" "回收的前置 分代理论" "标记 清除算法(Mark Sweep)" "标记 复制算法" "标记 ...
分类:
其他好文 时间:
2019-12-28 23:11:43
阅读次数:
170
介绍 Java堆(Java Heap)是Java虚拟机所管理的内存中最大的一块。Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。Java堆是垃圾收集器管理的主要区域,因此很多时候也被称做“GC堆”。如果从内存回收 ...
分类:
其他好文 时间:
2019-12-28 22:47:48
阅读次数:
78
递归基础 递归的概念 在程序中函数直接或间接调用自己 直接调用自己 简介调用自己 跳出结构,有了跳出才有结果 递归的思想 递归的调用,最终还是要转换为自己这个函数 如果有个函数foo,如果他是递归函数,到最后问题还是转换为函数foo的形式 递归的思想就是将一个未知问题转换为一个已解决的问题来实现 f ...
分类:
其他好文 时间:
2019-12-27 09:35:37
阅读次数:
72
一。zval对比 (上图要右键新标签打开才能看清楚) PHP的变量是由zval来存储的,PHP7之前的zval主要由value和type组成,后面增加了gc用来垃圾回收以及ref_gc来标志引用类型,共占了24字节,而在通过结构映射扩充zval来解决循环引用的问题,此时一个变量占了32字节,在扩充了 ...
分类:
其他好文 时间:
2019-12-27 00:37:48
阅读次数:
115
final修饰一个类:不能有子类成员方法不能覆盖重写 final修饰一个方法:该方法不能被重写与abstract关键字冲突 final修饰一个局部变量变量不能被更改只能赋一次值final int num;num=1; final对于基本类型来说是数据不变 final对于引用类型来说时地址不变 pub ...
分类:
其他好文 时间:
2019-12-27 00:12:26
阅读次数:
91
作者 | Jeskson 来源 | 达达前端小酒馆 1 在JavaScript中的变量分别区分为两种: 一种为基本类型值,一种为引用类型值。 基本类型值指的是简单的数据段 引用类型值为可能由多个值组成的对象 引用类型的值是保存在内存中的对象,JavaScript不允许直接操作对象的内存空间,实际上操 ...
分类:
编程语言 时间:
2019-12-26 09:47:03
阅读次数:
72
委托继承与 System.Delegate 类,是一种特殊的引用类型。委托的实质 实际上是一个指向方法的指针,该方法可以是静态方法。 ...
分类:
其他好文 时间:
2019-12-24 13:26:22
阅读次数:
86
是比强引用弱化的引用,可以让对象豁免一些垃圾回收,软引用通常在对内存比较敏感的程序中,例如高速缓存区,mybatis就是用到了该方式。他的特点就是 存充足的时候不被回收,内存不足时才被回收。 ...
分类:
其他好文 时间:
2019-12-24 09:33:09
阅读次数:
97
1.浅拷贝 只会复制地址值,也就是同一个对象两个引用,只是复制了一个引用而已。 2.深拷贝 重新在堆里创建一个新对象给新引用,连同地址值也不一样。 首先要知道Object的clone()方法, 1 public class Test implements Cloneable{ 2 3 public ...
分类:
编程语言 时间:
2019-12-23 17:09:55
阅读次数:
112