原因大致有以下几种: 1、所属线程忘了释放锁, 建议使用 autolock (封装类的构造函数中上锁,析构函数中释放锁) 2、线程中使用了嵌套锁(2个或2个以上的锁) 3、owningthread 被动的原因无法释放锁,比如 1)、使用开源库,异常时直接ExitThread。 2)、使用了 __tr ...
分类:
编程语言 时间:
2018-09-12 01:25:36
阅读次数:
195
用户自定义class 在本章中,我们将研究对用户自定义class的剖析,在demo1.py中,我们将研究单个class的实现,所以在这里并没有关于继承及多态的讨论。然而在demo1.py中,我们看到了许多类的内容,其中包括类的定义、类的构造函数、对象的实例化、类成员函数的调用等 demo1.py 我 ...
分类:
编程语言 时间:
2018-09-11 22:03:58
阅读次数:
198
问题1:创建异常对象时的空指针问题 创建一个空指针异常对象,意味着这会调用父类的构造函数 ,然后调用 ,然后调用 , 缺陷:没有处理参数为空指针的情况,默认为参数不能为空。 参数为空指针的情况应该合法,空指针作为字符串的一个特殊值,是有意义的,如果要复制的字符串是一个空指针,只需要返回一个空指针就可 ...
分类:
其他好文 时间:
2018-09-09 11:55:07
阅读次数:
111
众所周知,Java语言是啰嗦的,写久了就会发现很多地方的代码看着就很冗余。 提供了一种简化Java代码的解决方案,通过注解的方式,来生成模板化的代码。最典型的就是生成类的构造函数,getter/setter,toString方法等。 <! more 注解是伴随JDK5发布的一个feature,根据生 ...
分类:
其他好文 时间:
2018-08-29 18:44:07
阅读次数:
157
1、何为静态工厂方法 静态工厂方法就是一个返回类实例的静态方法。比如Boolean的valueof方法: 2、为什么使用静态工厂方法 和公共构造函数相比,静态工厂方法有许多的优点,下面进行一一介绍: (1)静态工厂方法是有名字的 一个类的构造函数的名字都是相同的,为了区分两个不同的构造函数,只能通过 ...
分类:
其他好文 时间:
2018-08-26 18:37:53
阅读次数:
153
当创建类类型的数组时,没有被初始化的成员会调用类的默认构造函数,其他的构造函数不可能、也不可以被调用 故,当一个类要当做数组的元素类型时,类必须有默认构造函数!否则,数组必须每个元素都显式地用指定的构造函数初始化! 如果Base类有默认构造函数: Base array[3]; 合法 //3个成员将调 ...
分类:
编程语言 时间:
2018-08-26 16:37:14
阅读次数:
211
react中这两个API出镜率超级高,但是一直不太懂这到底是干嘛的,有什么用;今天整理一下,方便自己查看同时方便大家。 1.constructor( ) super( )的基本含义 constructor( )——构造方法 这是ES6对类的默认方法,通过 new 命令生成对象实例时自动调用该方法。并 ...
分类:
其他好文 时间:
2018-08-26 13:05:50
阅读次数:
124
面向对象的三大特性 封装继承多态 首先我们来创建一个控制台程序 新建一个父类Person 创建一个子类继承父类Person 子类: main函数: 输出结果: 根据结果显示创建子对象,首先调用父类的构造函数在调用子类的构造函数。 继承的传递性 例如: A:B,B:C,则A:C ⅰ.继承过来之后被隐藏 ...
分类:
其他好文 时间:
2018-08-25 22:58:25
阅读次数:
215
重载new,delete运算符 new,delete在c++中也被归为运算符,所以可以重载它们。 new的行为: 先开辟内存空间 再调用类的构造函数 开辟内存空间的部分,可以被重载。 delete的行为: 先调用类的析构函数 再释放内存空间 释放内存空间的部分,可以被重载。 为什么要要重载它们? 有 ...
分类:
编程语言 时间:
2018-08-22 00:14:53
阅读次数:
135
单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点,首先需要保证一个类只有一个实例,在类中, 要构造一个实例,就必须调用类的构造函数,如此,为了防止在外部调用类的构造函数而构造实例,需要将构造函数的访问标记为protected / private,最后 需要提供全局访问点,就需要在类中定 ...
分类:
其他好文 时间:
2018-08-20 17:19:50
阅读次数:
205