1. String的两个构造函数 2. new String中创建几个String对象? 1)创建两个String对象 内存模型如下: 2)创建一个String对象 内存模型如下: 3. String的intern方法 String类私有地维护着一个初始为空的字符串池,当调用intern方法时: 1 ...
分类:
编程语言 时间:
2018-01-16 13:53:45
阅读次数:
175
有时,我们需要知道Java对象到底占用多少内存,有人通过连续调用两次System.gc()比较两次gc前后内存的使用量在计算java对象的大小,也有人根据Java虚拟机规范中的Java对象内存排列估算对象的大小,这两种方法或多或少都有问题,因为System.gc()并不一定促发GC,同一个类型的对象 ...
分类:
编程语言 时间:
2018-01-12 11:29:10
阅读次数:
184
我们说的实例和类通常是语法层面上的,那么JVM在内存中还是需要一种存在形式:OOP-Klass模型。 简单来说,对象占据了内存,类也占据了内存,他们都需要一种在内存空间的表现形式: 1、对象 -> JVM中的对象实例; 2、类 -> JVM中的类实例; OOP:对象内存布局如下: Mark Word ...
分类:
其他好文 时间:
2017-12-31 16:43:07
阅读次数:
169
1.第三方框架使用不当 比如AFNetworking的内存泄漏,使用单例模式解决 2.block的循环引用 weakself和strongself配合使用 3.delegate循环引用问题 使用weak修饰即可 4.NSTimer循环引用 注意NSTimer的销毁时机 5.非OC对象内存处理 使用完 ...
分类:
移动开发 时间:
2017-12-27 14:20:51
阅读次数:
256
When 什么时候需要知道对象的内存大小 在内存足够用的情况下我们是不需要考虑java中一个对象所占内存大小的。但当一个系统的内存有限,或者某块程序代码允许使用的内存大小有限制,又或者设计一个缓存机制,当存储对象内存超过固定值之后写入磁盘做持久化等等,总之我们希望像写C一样,java也能有方法实现获 ...
分类:
编程语言 时间:
2017-12-12 23:49:31
阅读次数:
241
首先,js中给原型对象添加属性和方法。 方式一:对象的动态特效 给原型对象添加成员 语法:构造函数.prototype.方法名=function (){ } 方式二:替换原型对象(不是覆盖,而是替换,把原先的同名的直接替换成现在的) 语法:构造函数.prototype.方法名={ } tips:方式 ...
分类:
Web程序 时间:
2017-11-24 18:03:35
阅读次数:
210
Python所表示的整数大小只受限于机器内存,使用的是Unicode编码str类型与基本的数值类型设定之后就不能改变对象引用 创建对象 内存中的对象 对字母的大小写敏感Python使用的是动态链接机制垃圾收集流程列表与元组 不是真正存储数据项,而是存放对象引用组合数据类型存储的是对象引用,而不是对象 ...
分类:
其他好文 时间:
2017-11-20 23:11:37
阅读次数:
180
对象创建方法: JVM遇到一条new指令时,首先检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、连接和初始化过。 如果没有,那必须先执行相应的类的加载过程。 对象的内存分配: 对象所需内存的大小在类加载完成后便完全确定(对象内存布局),为对象分配空 ...
分类:
其他好文 时间:
2017-11-19 14:53:19
阅读次数:
112
Java中内存分析: 栈(Stack) :存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中)。 堆(heap):存放所有new出来的对象。 常量池(constant pool):在堆中分配出来的一块存储区域,存放 ...
分类:
其他好文 时间:
2017-10-17 00:19:44
阅读次数:
185
类是对某一类事物的描述,是抽象的、概念上的意义。对象是实际存在的该类事物的每一个个体,也被称为实例。 创建对象:包括声明对象和实例化对象 Person person;//声明 person = new Person();//实例化 创建对象内存划分 1、声明开辟一个栈空间 2、实例化开辟一个堆内存空 ...
分类:
编程语言 时间:
2017-09-29 23:13:09
阅读次数:
462