1.malloc的底层实现原理
当开辟的空间<128k时,调用brk()函数;当>128k的时候,调用mmap()函数。malloc采用内存池的的管理方式,以减少内存碎片。先分配一块较大的内存作为堆区,然后将堆区分为多个内存块,当用户申请内存的时候,直接从堆区分配一块合适的空闲块。每个空闲块记录了一个未分配、连续的内存地址。
2.new的底层实现原理
1.创建一个新对象 2.将构造函数的作用域复制给这个新的对象(this指向了这个对象) 3.执行构造函数中的代码。 4.返回这个新对象。
当开辟的空间<128k时,调用brk()函数;当>128k的时候,调用mmap()函数。malloc采用内存池的的管理方式,以减少内存碎片。先分配一块较大的内存作为堆区,然后将堆区分为多个内存块,当用户申请内存的时候,直接从堆区分配一块合适的空闲块。每个空闲块记录了一个未分配、连续的内存地址。
1.创建一个新对象 2.将构造函数的作用域复制给这个新的对象(this指向了这个对象) 3.执行构造函数中的代码。 4.返回这个新对象。