再看设计模式——单例模式

这个模式其实就是要保证只有一个实例存在。通常的实现思路就是持有一个私有静态实例,保证仅一次初始化,以getInstance方法返回。但是实际实现这个模式要考虑更多细节:  线程安全与DLC 单例对象的析构与销毁 组件中单例对象的管理 单例模式的单元测试 使用C++实现还必须额外注意一些实现细节 静态成员变量初始化顺序不依赖构造函数, 多个单例可能初始化顺序不对 延迟初始化(第一次使用才初始化)需要 …

阅读全文

Java的CAS实现总结

CAS原理 CAS通过调用JNI的代码实现的。JNI:Java Native Interface为JAVA本地调用,允许java调用其他语言。 而compareAndSwapInt就是借助C来调用CPU底层指令实现的。 下面从分析比较常用的CPU(intel x86)来解释CAS的实现原理。 下面是sun.misc.Unsafe类的compareAndSwapInt()方法的源代码: public …

阅读全文

python技巧:逆序循环

Python可以很简单实现C语言中for(i = len; i>=0; –i)的逆序循环,而且有不止一种写法:

第一种,for i in range(len, -1, -1) ,简单易懂

第二种,for i in range(0, len+1)[::-1],利用list的[start:end:step]排序功能,当然在大数组下性能堪忧

C++中的局部类与嵌套类

局部类指在函数内部定义的类,自然局部类不能含有static成员,所有函数定义也必须在定义体内完成。基本不会使用。

嵌套类指在类内部定义类,该类名只能在外围类中使用,嵌套类中的函数成员可以在定义体外定义(但是需要使用限定符以使用类名),嵌套类中申明的成员不是外围类对象的成员,反之亦然。

因此分析访问关系时,完全可以当做非嵌套类处理,即嵌套类无法访问外围类的私有成员,也不能对外围类中定义的私有嵌套类创建对象,嵌套类可以访问static private成员,嵌套类中申明的友元也不能访问外围类中的私有成员。