- 博客(16)
- 资源 (2)
- 收藏
- 关注
转载 Collection接口和Map接口的主要实现类
Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的“子接口”如List和Set。
2012-04-12 16:14:03 1306
转载 通过 HashMap、HashSet 的源代码分析其 Hash 存储机制
实际上,HashSet 和 HashMap 之间有很多相似之处,对于 HashSet 而言,系统采用 Hash 算法决定集合元素的存储位置,这样可以保证能快速存、取集合元素;对于 HashMap 而言,系统 key-value 当成一个整体进行处理,系统总是根据 Hash 算法来计算 key-value 的存储位置,这样可以保证能快速存、取 Map 的 key-value 对。在介绍集合存储之
2012-04-12 16:10:35 990
转载 LinkedHashMap特性 按插入和访问顺序排序
LinkedHashMap的特性:Linked内部含有一个private transient Entry header;来记录元素插入的顺序或者是元素被访问的顺序。利用这个线性结构的对象,可以帮助记录entry加入的前后顺序或者记录entry被访问的频率(最少被访问的entry靠前,最近访问的entry靠后)。大致的过程如下:new LinkedHashMap(10, 0.75, tr
2012-04-12 15:55:48 6094
转载 Map接口及其重要实现类的用法
Map接口 Ø Map中的每个成员方法由一个关键字(key)和一个值(value)构成。Map接口不直接继承于Collection接口,因为它包装的是一组成对的“键-值”对象的集合,而且在Map接口的集合中也不能有重复的key出现,因为每个键只能与一个成员元素相对应。Ø Map接口的子接口以及主要实现类有:子接口:Bindings、ConcurrentMap、ConcurrentN
2012-04-12 15:51:04 22417 1
转载 虚析构函数、纯虚析构函数、虚构造函数
一. 虚析构函数我们知道,为了能够正确的调用对象的析构函数,一般要求具有层次结构的顶级类定义其析构函数为虚函数。因为在delete一个抽象类指针时候,必须要通过虚函数找到真正的析构函数。如:class Base{public: Base(){} virtual ~Base(){}};class Derived: public Base
2012-04-10 15:51:56 1064
转载 C++中的RTTI介绍
作用 通过运行时类型识别(RTTI)(Run-Time Type Information),程序能够使用基类的指针或引用来检查这些指针或引用所指的对象的实际派生类型。RTTI介绍 RTTI提供了以下两个非常有用的操作符: (1)typeid操作符,返回指针和引用所指的实际类型; (2)dynamic_cast操作符,将基类类型的指针或引用安全地转换为派生类型的指
2012-04-10 14:30:10 757
转载 C++类继承关系问题
在C++中继承主要有三种关系:public、protected和private。这三种继承关系中public继承是最为常用的一种继承关系,代表了接口继承含义,而他们分别具体代表了什么含义呢?1. public 从语义角度上来说,public继承是一种接口继承,根据面向对象中的关系而言就是,子类 可以代替父类完成父类接口所声明的行为,也就是必须符合“Liskov替换原则(LS
2012-04-10 10:48:31 684
转载 C++虚基类的实现机制
在《深度探索C++对象模型》里,有一个问题,也是去公司面试的时候那些技术人员常问的问题:在C++中,obj是一个类的对象,p是指向obj的指针,该类里面有个数据成员mem,请问obj.mem和p->mem在实现和效率上有什么不同。答案是:只有一种情况下才有重大差异,该情况必须满足以下3个条件:(1)、obj 是一个虚拟继承的派生类的对象(2)、mem是从虚拟基类派生下来的成
2012-04-10 10:31:55 932
转载 c++ 虚函数的实现机制
1、c++实现多态的方法其实很多人都知道,虚函数在c++中的实现机制就是用虚表和虚指针,但是具体是怎样的呢?从more effecive c++其中一篇文章里面可以知道:是每个类用了一个虚表,每个类的对象用了一个虚指针。具体的用法如下:class A{public: virtual void f(); virtual void g();private
2012-04-10 10:28:39 606
转载 RAII惯用法:C++资源管理的利器
RAII是指C++语言中的一个惯用法(idiom),它是“ResourceAcquisitionIsInitialization”的首字母缩写。中文可将其翻译为“资源获取就是初始化”。虽然从某种程度上说这个名称并没有体现出该惯性法的本质精神,但是作为标准C++资源管理的关键技术,RAII早已在C++社群中深入人心。我记得第一次学到RAII惯用法是在Bjarne Stroustrup的《C++程
2012-04-09 16:37:07 482
转载 关于C++的构造函数, 复制构造函数 和 operator =
1.构造函数 构造函数的定义我就不说了,我想说的只有一点,看下面的例子: class C1 { public: //数据成员 int m_n; //构造函数 C1(int n = 0) { cout m_n = n; } }; int _tmain(int argc, _TCHAR* argv[])
2012-04-09 13:38:49 1003
转载 友元函数
类的重要特性是使数据封装与隐藏,但同时也给外部函数访问类中的私有和保护类型数据成员带来了不便。为此,C++使用了"友元函数"。一、友元函数友元函数必须在类中进行声明而在类外定义,声明须在函数类型的前面加上friend关键字,友元函数虽不是类的成员函数,但它可以访问类中的私有和保护类型数据成员。友元函数的使用:[cpp] view plaincopy
2012-04-06 09:43:15 940
转载 运算符重载
C++中预定义的运算符的操作对象只能是基本数据类型。但实际上,对于许多用户自定义类型(例如类),也需要类似的运算操作。这时就必须在C++中重新定义这些运算符,赋予已有运算符新的功能,使它能够用于特定类型执行特定的操作。运算符重载的实质是函数重载,它提供了C++的可扩展性,也是C++最吸引人的特性之一。 运算符重载是通过创建运算符函数实现的,运算符函数定义了重载的运算符将要进行的操作。运算符
2012-04-06 09:34:52 810
转载 C++类构造函数初始化列表
构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。例如:class CExample {public: int a; float b; //构造函数初始化列表 CExample(): a(0),b(8.8) {} //构造函数内部赋值 CExampl
2012-04-05 14:29:35 1000
原创 内联函数
内联函数的优点是提高运行时间效率,缺点是增加了空间开销 对于普通函数,函数调用需要时间和空间开销,调用函数实际上将程序执行流程转移到被调函数中,被调函数的代码执行完后,再返回到调用的地方。这种调用操作要求调用前保护好现场并记忆执行的地址,返回后恢复现场,并按原来保存的地址继续执行。对于较长的函数这种开销可以忽略不计,但对于一些函数体代码很短,又被频繁调用的函数,就不能忽视这种开销。引入
2012-04-05 10:48:23 859
转载 Node.js 究竟是什么?
http://www.ibm.com/developerworks/cn/opensource/os-nodejs/
2012-04-05 09:49:43 578
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人