`
文章列表
网络编程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)—>全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的 ...

深复制与浅复制

    博客分类:
  • c++
2者主要区别:是否为成员变量分配新内存空间 复制构造函数有2种:深复制与浅复制 当将一个对象A复制给另一个对象B时,系统会调用复制构造函数 编译器默认的复制构造函数是浅拷贝,它将原对象的每一个成员变量复制到新对象的成员变量中去。因而最后两个对象的变量均指向相同的数据成员的内存地址。 当数据成员中没有指针时,浅拷贝是可行的。 但当数据成员中有指针时,如果采用简单的浅拷贝,则两类中的两个指针将指向同一个地址M,当程序中删除一个对象A时,析构函数会释放掉指针变量所指向的那块内存空间M,而对象B的指针变量仍然指向该空间M,而此时该空间已不存在,因而导致指针悬挂现象。 所以,这时,必须采用深拷贝,创建自己 ...
学c++的时候,这两个概念一直很混淆,决定今天把它按自己的理解记下来。 常量指针:例如 int *const p   因为指针保存的是地址值  所以 将指针声明为常量的话           就不能对指针进行加减了,如p++、p--等都是错误的  但是可以改变指针所指向           的值。 指向常量的指针。例如 const int *p            它表示指针p所指向的那个值是不能变的  而指针p本身是可以修改的           可以对p进行自    加、自减等操作 指向常量的常指针:顾名思义 指针不可变 指针指向的值也不可变
Global site tag (gtag.js) - Google Analytics