Item 1. 考虑用静态工厂方法替代构造器 获得一个类的实例时我们都会采取一个公有的构造器。Foo x = new Foo(); 同时我们应该掌握另一种方法就是静态工厂方法(static factory method)。 一句话总结,静态工厂方法其实就是一个返回类的实例的静态方法。 书中给出的例子 ...
分类:
编程语言 时间:
2017-12-07 00:31:01
阅读次数:
239
一、关键 每个shared_ptr所指向的对象都有一个引用计数,它记录了有多少个shared_ptr指向自己 shared_ptr的析构函数:递减它所指向的对象的引用计数,如果引用计数变为0,就会销毁对象并释放相应的内存 引用计数的变化:决定权在shared_ptr,而与对象本身无关 二、引用计数初 ...
分类:
其他好文 时间:
2017-11-17 18:35:23
阅读次数:
204
C++拷贝构造函数 在定义任何C++类时,拷贝空置操作都是必要部分,类需要控制拷贝、赋值和销毁对象时发生的行为。拷贝构造函数的用途:当创建了一个新对象时,可以用另一个对象的数据初始化这个新建的对象。 1、默认拷贝构造函数 如果在程序中我们没有显示定义拷贝构造函数,则C++会为每个类隐式地提供一个缺省 ...
分类:
编程语言 时间:
2017-10-01 23:06:30
阅读次数:
323
单例设计模式 单例模式在日常开发中用的也比较多,顾名思义就是一个类的对象在整个系统中只能有一个 优点: 1、单例模式会阻止其他对象实例化其自己的单例对象副本,从而确保所有对象都访问唯一实例 2、由于在整个系统中指存在一个实例对象,避免了频繁的创建和销毁对象,因此可以节约系统资源 3、避免了对共享资源 ...
分类:
编程语言 时间:
2017-09-07 00:50:01
阅读次数:
192
垃圾回收机制引用计数回收器(Reference Counting Collector) 原理是在每个对象内部维护一个整数值,叫做这个对象的引用计数,当对象被引用时引用计数加一,当对象不被引用时引用计数减一。当引用计数为 0 时,自动销毁对象。目前引用计数法主要用在 c++ 标准库的 std::sha... ...
分类:
其他好文 时间:
2017-09-04 11:02:02
阅读次数:
400
练习13.9 析构函数执行与构造函数相反的操作,构造函数初始化对象的非static数据成员,析构函数释放对象使用的资源,并销毁对象的非static数据成员.当一个类没有定义自己的析构函数的时候,编译器会为它定义一个合成析构函数。 练习13.10 在一个构造函数中,成员的初始化是在函数体执行之前完成的 ...
分类:
编程语言 时间:
2017-08-31 22:17:24
阅读次数:
179
建议1:考虑用静态工厂方法代替构造器 理由:1)静态方法有名字啊,更容易懂和理解。构造方法重载容易让人混淆,并不是好主意 2)静态工厂方法可以不必每次调用时都创建一个新对象,而公共构造函数每次调用都会创建一个对象实例。就可以预先创建好对象嘛,从而能避免创建不可重复的对象。 静态工厂方法能为重复的调用 ...
分类:
编程语言 时间:
2017-08-04 15:13:30
阅读次数:
167
建和销毁对象 一般有两种方式,一种是获得本身的实例,最常用的方法就是提供一个共有的构造器。第二个方法是,类可以提供一个共有的静态工厂方法。 静态工厂方法与构造器不同的三大优势: 有名字; 调用时不用创建新的对象; 返回原来类型的任何子类型对象。 第四大优势: 在创建参数化类型实例的时候,它们使代码变 ...
分类:
编程语言 时间:
2017-07-30 21:14:12
阅读次数:
218
单例模式: 配置扫描包,spring会扫描包下的类,把它定义成一个bean出来,spring的bean默认就是单例的。 单例比多例要少一个创建对象和销毁对象的过程,springmvc所有请求过来只创建一个对象,struts2每一个请求都创建一个对象 ...
分类:
编程语言 时间:
2017-07-29 15:13:58
阅读次数:
133
本章介绍Java程序的基本组成部分,体会到Java中几乎一切都是对象。 第二章 一切都是对象 目录: 2.1 用引用操纵对象 2.2 必须由你创建所有对象 2.3 永远不需要销毁对象 2.4 创建新的数据类型:类 2.5 方法、参数和返回值 2.6 构建一个Java程序 2.7 你的第一个Java程 ...
分类:
编程语言 时间:
2017-07-16 00:03:23
阅读次数:
232