前言 在前面的文章中,提到过Java之间如果发生了对象赋值,那么其意义是赋值的两个对象都指向同一片内存区域。 那么,如果我希望得到的是一份新的副本 - 即可以随意更改而不影响原始对象呢? 那就涉及到本文要探讨的话题 - 对象的浅拷贝与深拷贝。浅拷贝 若对象之间发生浅拷贝,那么首先肯定的是会创...
分类:
其他好文 时间:
2014-12-08 12:00:59
阅读次数:
243
Java虚拟机在执行Java程序过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有自各的用途,以及创建及销毁时间,有的区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范(第2版)》规定,Java虚拟机管理的内存区域包括以下几个运行时数据区域,下如图
1.程序计数器(Program Counter Register)
...
分类:
编程语言 时间:
2014-12-05 17:26:15
阅读次数:
246
原型:extern void *memset(void *buffer, int c, int count);功能:把buffer所指内存区域的前count个字节设置成字符c。包含头文件:注意这个函数是字符串函数,所以一定要包含字符串头文件。使用方法:int a[50];memset(a,0,siz...
分类:
编程语言 时间:
2014-12-03 19:02:38
阅读次数:
171
JVM区域总体分两类,heap区和非heap区。heap区又分:Eden Space(伊甸园)、Survivor Space(幸存者区)、Tenured Gen(老年代-养老区)。 非heap区又分:Code Cache(代码缓存区)、Perm Gen(永久代)、Jvm Stack(j...
分类:
其他好文 时间:
2014-12-03 12:40:30
阅读次数:
302
堆栈
本篇文章也是拾遗,丫的,叫你大学不好好听课啊,现在还不是乖乖看起了.
目标程序运行时的存储组织
从逻辑上看,在代码生成前,编译程序必须进行目标程序运行环境的设计和数据空间的分配.程序在运行的时候需要得到一块内存空间让自己在上面运行,此空间需要包含目标代码和目标代码运行时的数据空间.通常,此内存区域划分为:目标区, 静态数据区, 栈区, 堆区....
分类:
其他好文 时间:
2014-12-03 00:29:41
阅读次数:
188
Ashmem匿名共享内存 Android的匿名共享内存(Ashmem)机制基于Linux内核的共享内存,但是Ashmem与cache shrinker关联起来,增加了内存回收算法的注册接口,因此Linux内存管理系统将不再使用内存区域加以回收。Ash...
分类:
移动开发 时间:
2014-12-02 16:44:12
阅读次数:
205
第2章 Java内存区域与内存溢出异常运行数据区域 1、程序计数器(Program Counter Register) 是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。 2、Java虚拟机栈(Stack)线程私有,每一个方法调用时都会创建一个栈帧(Stack Frame)用.....
分类:
编程语言 时间:
2014-12-02 14:58:41
阅读次数:
177
Java的运行数据区域分为:程序计数器、方法区、本地方法栈、虚拟机栈、堆、运行时常量池。 程序计数器:从字面意思上很容易理解错误(第一眼看见我还以为仅仅是Count计数器),其实它的作用是保存字节码指令,即CPU需要哪种操作,便改变这个程序计数器的值来选取下一条字节码指令,分支、循环、跳转、异...
分类:
编程语言 时间:
2014-12-01 22:06:57
阅读次数:
160
const与指针结合使用时,容易让人迷惑的是: 1. const到底是限定该指针不可再指向其它内存呢? 2.还是修饰指针指向内容的内存区域不可变?下面来探究一下,先上基础代码。// Box.h
#ifndef _BOX_H
#define _BOX_H
class Box {
public :
Box();
int volume();
void print() const ;
void...
分类:
编程语言 时间:
2014-11-30 23:20:36
阅读次数:
295
1、memcpy 函数用于 把资源内存(src所指向的内存区域) 拷贝到目标内存(dest所指向的内存区域);拷贝多少个?有一个size变量控制拷贝的字节数;函数原型:void *memcpy(void *dest, void *src, unsigned int count);用法:(1)可以拷贝...
分类:
其他好文 时间:
2014-11-26 13:48:08
阅读次数:
209