一、什么是单例模式 整个过程中只有一个实例,所有生成的实例都指向同一块内存地址空间 二、为什么要用单例模式 当实例化多次得到的对象中存放的属性都一样的情况,应该将多个对象指向同一个内存,即同一个实例 这样可以节省内存空间 二、实现单例模式的四种方式 1.通过类的绑定方法来实现 也就是通过类的静态方法 ...
分类:
其他好文 时间:
2019-09-11 19:55:58
阅读次数:
53
硬件 调用、调用接口、库调用 线性内存地址空间、物理内存地址空间、线性地址、物理地址 交换内存:缺页异常 进程内存结构 常驻内存集、虚拟内存集 进程、进程元数据、结构体、任务结构体、链表 进程类型、状态(read,runing,sleep,stopped,zombie) 可中断睡眠、不可中断睡眠 创 ...
分类:
系统相关 时间:
2019-08-30 11:39:46
阅读次数:
151
char* p = malloc(1024);char* q = realloc(p,2048); 现在的问题是我们应该如何处理指针 p。 刚开始按照我最直观的理解,如果就是直接将 p = NULL;。 到最后只需要释放 q的空间就可以了。 因为最近在做个封装。结果在做单元测试的时候发现。有时候我在 ...
分类:
其他好文 时间:
2019-08-11 15:20:04
阅读次数:
69
值对象 对象要区分值对象还是实体对象(引用对象),值对象的使用一般在每一次出现的地方都是新的实例,可以对比基本类型一样,每一个基本类型,都是在内存中唯一分配;实体对象,基本上多对一的时候都是只存在一个对象实例,这个没有什么异议; 值对象应该有一个非常重要的特性,就是它是不可变的,所以如果值对象可变, ...
分类:
其他好文 时间:
2019-07-27 09:29:52
阅读次数:
92
1.进程 进程(process) 是一个已经开始执行但还没终止的程序实例。 Linux 系统下使用 ps 命令可以查看到当前正在执行的进程。每个进程包含有进程运行环境、内存地址空间、进程ID、和至少一个被称为线程的执行控制流等资源。同一个程序可以实例化为多个进程实体。操作系统中所有进程实体共享着计算 ...
分类:
系统相关 时间:
2019-07-24 10:08:34
阅读次数:
138
每个外设都是通过读写它的寄存器来控制. 大部分时间一个设备有几个寄存器, 并且在连 续地址存取它们, 或者在内存地址空间或者在 I/O 地址空间. 在硬件级别上, 内存区和 I/O 区域没有概念上的区别: 它们都是通过在地址总线和控制 总线上发出电信号来存取(即, 读写信号)[32]32并且读自或者 ...
分类:
其他好文 时间:
2019-07-06 11:49:43
阅读次数:
72
一个CPU的地址线宽度为10(2的10次方),那么可以寻址1024个内存单元,这1024个可寻到的内存单元就构成这个CPU的内存地址空间。主板:主板上有核心器件和一些主要器件,(CPU,内存)接口卡:CPU对外部设备不能直接控制,如显示器、音箱、打印机等。直接控制这些设备进行工作的是插在扩展槽上的接 ...
分类:
其他好文 时间:
2019-05-25 21:38:05
阅读次数:
178
disruptor:https://www.cnblogs.com/sigm/p/6251910.html自旋锁等:http://www.cnblogs.com/lzh-blogs/p/7477157.html 1.竞态条件:多个线程共享相同的内存地址空间,并且并发执行下发生访问或修改其他线程正在使... ...
分类:
编程语言 时间:
2019-05-19 10:11:17
阅读次数:
158
直接在堆外分配一个内存(即,native memory)来存储数据,程序通过JNI直接将数据读/写到堆外内存中。因为数据直接写入到了堆外内存中,所以这种方式就不会再在JVM管控的堆内再分配内存来存储数据了,也就不存在堆内内存和堆外内存数据拷贝的操作了。这样在进行I/O操作时,只需要将这个堆外内存地址... ...
分类:
其他好文 时间:
2019-05-13 09:21:53
阅读次数:
105
一个指针在64位的计算机上,占8个字节;一个指针在32位的计算机上,占4个字节。 原因如下: 我们都知道cpu是无法直接在硬盘上读取数据的,而是通过内存读取。cpu通过地址总线、数据总线、控制总线三条线对内存中的数据进行传输和操作。 具体流程: 1、cpu通过地址总线,找到该条数据; 2、通过控制总 ...
分类:
其他好文 时间:
2019-04-09 16:55:02
阅读次数:
396