- 浏览: 8992 次
- 性别:
- 来自: 广州
最新评论
文章列表
网络编程HttpClient 要一个包commons-codec-1.x.jar
HttpClient 用到了 Apache Jakarta common 下的子项目 codec,你可以从这个地址http://commons.apache.org/downloads/download_codec.cgi 下载到最新的 common codec,从下载后的压缩包中取出 commons-codec-1.x.jar 加到 CLASSPATH 中
网上找的 觉得总结的很好
Commons-logging + Log4j入门指南
一 :为什么同时使用commons-logging和Log4j?为什么不仅使用其中之一?
Commons-loggin的目的 是为“所有的Java日志实现”提供一个统一的接口,它自身的日志功能平常弱(只有一个简单的SimpleLog?),所以一般不会单独使用它。 Log4j的功能非常全面强大,是目前的首选。我发现几乎所有的Java开源项 ...
我觉得这篇文章总结的比较好。其实真正理解了java内存分配方式的话就很好理解这个了。
对于c/c++程序中的内存分配方式,这篇文章讲的比较清楚,便copy过来了。
一、预备知识—程序的内存分配
一个由c/C++编译的程序占用的内存分为以下几个部分
1、栈区(stack)—> 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
2、堆区(heap)—> 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。
3、全局区(静态区)(static)—>全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的 ...
2者主要区别:是否为成员变量分配新内存空间
复制构造函数有2种:深复制与浅复制
当将一个对象A复制给另一个对象B时,系统会调用复制构造函数
编译器默认的复制构造函数是浅拷贝,它将原对象的每一个成员变量复制到新对象的成员变量中去。因而最后两个对象的变量均指向相同的数据成员的内存地址。
当数据成员中没有指针时,浅拷贝是可行的。
但当数据成员中有指针时,如果采用简单的浅拷贝,则两类中的两个指针将指向同一个地址M,当程序中删除一个对象A时,析构函数会释放掉指针变量所指向的那块内存空间M,而对象B的指针变量仍然指向该空间M,而此时该空间已不存在,因而导致指针悬挂现象。
所以,这时,必须采用深拷贝,创建自己 ...