new一个对象时jvm的工作步骤: 1:在栈内存定义变量此时为初始值,定义方法。基本数据类型 int 0 。引用数据类型为null; 2: 调用父类构造方法,定义父类的属性和方法(如果子类已经重写父类的方法 这时不会被覆盖,整个过程不会发生任何覆盖的情况)。 父类的private方法是不能被重写的, ...
分类:
其他好文 时间:
2016-06-11 22:45:38
阅读次数:
188
Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。 ...
分类:
编程语言 时间:
2016-06-07 08:53:35
阅读次数:
244
要理解值传递、指针传递和引用传递的区别,主要要理解函数的实参和形参,函数的作用域(自动变量、栈),内存的布局以及指针和引用的特点。这里主要总结三种参数传递方式使用的主要场合。 值传递:只给函数提供输入值,需要复制开销,大对象很少使用值传递。 指针传递:可以改变指针指向内容的值,但是不能改变指针本身, ...
分类:
编程语言 时间:
2016-06-06 23:37:57
阅读次数:
371
Java内存中,栈内存和堆内存占了很大一部分空间:栈内存的存储是顺序结构,堆内存的存储是离散结构。 顺序表 类成员 int maxSize; //最大长度 int size; //当前长度 Object[] listArray; //对象数组 类主要方法 int maxSize; //最大长度 in ...
分类:
其他好文 时间:
2016-05-27 00:39:25
阅读次数:
177
堆和栈的区别 (stack and heap)一般认为在c中分为这几个存储区 1栈 - 有编译器自动分配释放 2堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 3全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和 ...
分类:
其他好文 时间:
2016-05-26 18:30:48
阅读次数:
126
==: == 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。 1、比较的是操作符两端的操作数是否是同一个对象。2、两边的操作数必须是同一类型的(可以是父子类之间)才能编译通过。3、比较的是地址,如果是具体的阿 ...
分类:
其他好文 时间:
2016-05-24 22:16:42
阅读次数:
217
一、概述 Block是C级别的语法和运行时特性。Block比较类似C函数,但是Block比之C函数,其灵活性体现在栈内存、堆内存的引用,我们甚至可以将一个Block作为参数传给其他的函数或者Block。 二、热身 先看一个比较简单的Block例子: 在这个例子中,myBlock是一个Block变量, ...
分类:
移动开发 时间:
2016-05-24 12:11:45
阅读次数:
298
引子 我们都知道,JavaScript数据类型分两大类,基本类型(或者称原始类型)和引用类型。 基本类型的值是保存在栈内存中的简单数据段,它们是按值访问的。JS中有五种基本类型:Undefined、Null、Boolean、Number和String。 引用类型的值是保存在堆内存中的对象,它的值是按 ...
分类:
编程语言 时间:
2016-05-24 09:10:24
阅读次数:
197
1.基本类型值在内存中占据固定大小的空间,因此被保存在栈内存中 例如: var a=1; var b="hello world"; 2.从一个变量向另一个变量赋值基本类型的值,会创建这个值的一个副本 例如: var b="JavaScript"; var c=b; 3.引用类型的值是对象,保存在堆内 ...
分类:
编程语言 时间:
2016-05-21 20:24:49
阅读次数:
145
top看到的内存有resshrvirt几种这几种有不同的意义:res:1.进程当前正在使用的内存,包括比如mallocnew等各种方法分配的堆内存,和程序方法调用的栈内存。但是不包括swapout空间。2.包括其他进程的共享空间。3.如果进程申请了10MB的内存,而实际只使用了1MB,那么res增长1MB。..
分类:
系统相关 时间:
2016-05-19 19:38:46
阅读次数:
182