Sip电话,PJSip,CSipSimple踩坑记录(二) ja
2018-10-29 本文已影响69人
Mayday_陈胖子
问题:
了解PJSUA2 API 的时候,经常提到析构、析构函数,不懂是什么意思,做个记录。
传送门:
记录过程:
析构函数(destructor) 与 构造函数相反,当对象结束其 生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。
类的析构函数是类的一种特殊的成员函数,它会在每次删除所创建的对象时执行。
析构函数的名称与类的名称是完全相同的,只是在前面加了个波浪号(~)作为前缀,它不会返回任何值,也不能带有任何参数。析构函数有助于在跳出程序(比如关闭文件、释放内存等)前释放资源。
java中有析构函数,但我们一般用不到它,因为java有自动内存回收机制 "GC",无需程序猿/媛来释放,也就不要担心内存泄露,只不过java中析构函数所采用的方式不是C++中的那样前加~号,在java中 对象析构时会调用 void finalize() 方法,因此你如果确实需要析构的话就可以为你写的类添加一个void finalize(){}方法,来完成你所需要的工作。
示例:

当上面的代码被编译和执行时,它会产生下列结果:
