上下文管理器(context manager)是 Python 编程中的重要概念,用于规定某个对象的使用范围。一旦进入或者离开该使用范围,会有特殊操作被调用 (比如为对象分配或者释放内存)。它的语法形式是with...as... 为了确保一些系统资源得以正确释放,我们经常会用到 try ... ex ...
分类:
编程语言 时间:
2020-03-07 16:06:15
阅读次数:
75
1.什么是垃圾回收 程序运行会产生各种各种的数据,那么这些数据存在于内存当中,这些数据不可能是永久存在的,无效的资源对象需要进行垃圾回收,释放内存 2.不同的编程语言都有GC垃圾回收 java语言自带GC垃圾回收器,并且有JVM自动进行垃圾回收,程序员主要关注代码实现,不关注垃圾回收 System. ...
分类:
其他好文 时间:
2020-03-05 13:18:49
阅读次数:
81
malloc/free 用户须指定创建多大的空间 不会调用相应的构造函数,必须自己进行初始化 申请成功,返回void ,在赋值前必须进行强制类型转换 申请失败时,返回NULL,不会进行安全检查,需用户自己进行判断是否为NULL free不会自动调用对象的析构函数,直接释放内存 new/delete ...
分类:
其他好文 时间:
2020-03-04 20:51:44
阅读次数:
52
"source"和"."的功能是一样的,可以调用脚本,并将脚本里的函数也传递到当前的脚本或者解释器中,即不会开启新的bash而是在当前bash中运行。 "sh"后面跟脚本名称,则不会将该脚本的函数传递进来,即需要开启新的bash,"sh"实际上是执行一个脚本,最后执行完毕会将内存释放掉,不会保存变量 ...
分类:
其他好文 时间:
2020-03-02 20:24:38
阅读次数:
66
7 Python是如何进行内存管理的? http://developer.51cto.com/art/201007/213585.htm Python引用了一个内存池(memory pool)机制,即Pymalloc机制(malloc:n.分配内存),用于管理对小块内存的申请和释放 内存池(memo ...
分类:
编程语言 时间:
2020-03-02 19:09:53
阅读次数:
74
析构函数 析构函数:是一种特殊的成员函数,没有返回值,不需要程序员显式调用,而是在销毁对象是自动执行。 注意:析构函数没有参数,不能被重载,一个类只有一个析构函数,如果没有定义,编译器会自动生成一个默认的析构函数。 注意:用new分配内存时会调用构造函数,用delete释放内存时会调用析构函数。 析 ...
分类:
编程语言 时间:
2020-02-22 22:25:41
阅读次数:
103
其它语言(如C语言)要求程序员显式地分配内存、释放内存。 程序需要内存时分配内存,不需要时释放内存。 但是这种做法常常引起内存泄漏。所谓内存泄漏,就是由于某种原因使分配的内存始终没有得到释放。如果该任务不断地重复,程序最终会耗尽内存并异常终止,至少无法继续运行。 Java在创建对象时会自动分配内存, ...
分类:
编程语言 时间:
2020-02-21 20:03:59
阅读次数:
56
一、什么是GC GC是垃圾回收(Garbage Collector)的缩写。GC可以说是.NET众多机制中最为重要的,对程序员代码书写方式影响最大的机制。在CLR规范制定之初,所有机制都还在斟酌的时候,垃圾回收已经被确定会存在于.NET框架之中。 .NET的程序大部分被称为被托管的代码。托管的意义很 ...
析构方法 在python中存在垃圾回收机制,当程序结时,python自动触发del垃圾回收机制释放内存空间。但是这种 内存机制只能回收python内存级别的垃圾,网络编程和文件的垃圾处理不了 网络编程和文件产生的垃圾需要开发者在类中单独创建__del__(self)来处理,例如:文件垃圾回收,需要在 ...
分类:
其他好文 时间:
2020-02-09 09:36:00
阅读次数:
56
一、JAVA特点:简单易学、安全性高、跨平台、多线程🎀 (一)简单易学: 1. C++/C#/JAVA都是类C语言。JAVA类似于C++ 2. 优化了C/C++的指针、结构、内存管理(用户使用JAVA只需要分配,内存不需要释放内存)的缺点 3. JAVA拥有丰富的类库 4. JAVA是完全面相对象 ...
分类:
编程语言 时间:
2020-02-07 16:29:18
阅读次数:
58