某些应用程序对内存分配有特殊需求,因此不能将标准内存管理机制直接应用在这些程序。因此需要自定义内存分配的细节,比如使用关键字 new 将对象放置在特定的内存空间中。 重载 new 和 delete 当使用 new 表达式: 实际上执行了三步: new 表达式调用 operator new 或者 op ...
分类:
其他好文 时间:
2020-03-12 09:46:00
阅读次数:
46
对常见排序算法进行总结,下图可做参考: 在介绍排序算法之前先明确几个概念: 1、时间复杂度:从序列的初始状态到最终排序好的结果状态所花费的时间度量,主要取决于变换、移位等操作语句的执行次数。 2、空间复杂度:从序列的初始状态到最终状态所花费的空间开销,即排序过程中所需要开辟的新的内存空间。 3、稳定 ...
分类:
编程语言 时间:
2020-03-11 12:40:11
阅读次数:
71
一. 什么是互斥锁 计算机中,当多个进程或者线程共享一个临界区(例如:共享内存空间或者全局变量),如果仅对该临界区读取,不进行内容修改,即使同时多次读取都是没有问题的。 但是,当我们需要修改临界区内的内容时,我们就必须面对一个情况:同时有多个操作对临界区的内容进行修改,在操作完后,保留的是那一次操作 ...
分类:
其他好文 时间:
2020-03-11 01:33:45
阅读次数:
56
Q:现在有一个整数类型的数组,数组中只有一个元素只出现一次,其余元素都出现两次。你需要找出只出现一次的元素 注意:你需要给出一个线性时间复杂度的算法,你能在不使用额外内存空间的情况下解决这个问题么? A: 这个题目可以参考 https://www.cnblogs.com/xym4869/p/1233 ...
分类:
其他好文 时间:
2020-03-10 19:59:12
阅读次数:
60
ClassLoader,类加载器子系统: 负责从文件系统或网络中读取class文件,class文件所在开头有特定的文件标识 ClassLoader只负责class文件的加载,是否能运行,则由Execution Engine决定 加载类的信息存放在一块称为方法区的内存空间。除了类的信息,方法区还可能会 ...
分类:
其他好文 时间:
2020-03-10 14:17:00
阅读次数:
53
不同CPU中,4字节整数1在内存空间的存储方式是不同的。4字节整数1可用2进制表示如下: 00000000 00000000 00000000 00000001 有些CPU以上面的顺序存储到内存,另外一些CPU则以倒序存储,如下所示: 00000001 00000000 00000000 00000 ...
分类:
其他好文 时间:
2020-03-10 11:37:09
阅读次数:
47
垃圾回收机制: 垃圾回收机制全称为Garbage Collection,简称GC,是Android系统中虚拟机提供的一套自动内存管理机制。 传统的C/C++是没有GC的,初始化对象然后分配内存空间需要手动地malloc/new,当需要销毁对象时候需要手动地free/delete。 垃圾回收机制可以根 ...
分类:
其他好文 时间:
2020-03-09 10:25:15
阅读次数:
71
类本身属于引用数据类型,既然是引用数据类型,那么牵扯到内存的引用传递,引用传递的本质:同一块堆内存空间可以 被不同的栈内存所指向,所有的引用传递的本质是一场堆内存的游戏 引用内存的过程中会产生垃圾,对垃圾的产生进行分析:所有没有栈内存指向的堆内存空间,就叫垃圾空间 所有的垃圾将被GC(Garbage ...
分类:
其他好文 时间:
2020-03-09 01:06:41
阅读次数:
53
一、使用场景 Guava Cache是本地缓存,当数据被重复查询多次,愿意耗费一些内存空间来减少查询的操作提高查询的速度,就可以使用Guava Cache。 二、使用方式 1.创建 LoadingCache是附带CacheLoader构建而成的缓存实现。创建自己的CacheLoader通常只需要简单 ...
分类:
其他好文 时间:
2020-03-08 20:22:06
阅读次数:
79
1、什么是进程和线程 1.1 进程是程序运行资源分配的最小单位 进程是操作系统进行资源分配的最小单位,其中资源包括:CPU、内存空间、磁盘IO等,同一进程中的多个线程共享该进程中的全部系统资源,而进程和进程之间是相互独立的。进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行 ...
分类:
编程语言 时间:
2020-03-07 20:53:25
阅读次数:
78