继承有两缺点:(1)当层级越来越多时,假如每一个层级都有实例变量,那么最下层的子类继承的实例变量会超级多,沉重。(2)当消息传递自子类往上时。层级越多,效率越低下。 所以就有了组合。说实话区分继承和组合真不是那么easy。所谓两者是“is a"关系则是继承,两者是"has a"则是组合,还是模糊。事 ...
分类:
其他好文 时间:
2017-05-02 23:35:46
阅读次数:
188
static 修饰符能够与变量、方法一起使用,表示是“静态”的。静态变量和静态方法能够通过类名来访问,不需要创建一个类的对象来访问该类的静态成员,所以static修饰的成员又称作类变量和类方法。静态变量与实例变量不同,实例变量总是通过对象来访问,因为它们的值在对象和对象之间有所不同。请看下面的例子: ...
分类:
编程语言 时间:
2017-04-26 15:40:58
阅读次数:
281
*我真的不会 ruby 呀* #encoding:utf-8 # # ■ Suffix_Automaton # # 后缀自己主动机。 # class Suffix_Automaton # # ● 定义实例变量 # attr_reader :total # 当前 SAM 中不同的子串个数 attr_r ...
分类:
其他好文 时间:
2017-04-26 10:08:30
阅读次数:
108
Java 基础语法 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 类:类是一个模板,它描述一 ...
分类:
编程语言 时间:
2017-04-23 21:34:48
阅读次数:
202
java中的构造方法是用来初始化一个对象的,并为为实例变量赋予合适的初始值。因此构造方法不需要返回类型。 构造方法必须满足以下语法规则: (1)方法名必须与类名相同; (2)不要声明返回类型; (3)不能被static、final、synchronized、abstract和native修饰; (4 ...
分类:
编程语言 时间:
2017-04-18 12:37:18
阅读次数:
254
非线程安全其实是在多个线程对同一个对象实例的变量进行并发访问的时候发生,产生的后果就是脏读,也就是取到的数据是修改过的。而线程安全就是获得的实例变量的值是经过同步处理的,从而不会出现脏读现象。 1.1.1、实例变量非线程安全 如果我们把多个线程并发访问的实例变量转化成方法里面的局部变量,那么就不会产 ...
分类:
编程语言 时间:
2017-04-17 15:53:25
阅读次数:
231
线程本地存储(TLS)是一种机制,通过这样的机制进行变量分配。在每一个现存线程都有一个实例变量。这样的执行模型GCC用来实现这个,起源于IA-64处理器,可是已经被迁移到其它的处理器。它须要大量的支持连接器(ld)、动态连接器(ld.so)和系统库(libc.so和libpthread.so),所以 ...
分类:
其他好文 时间:
2017-04-16 14:24:00
阅读次数:
188
作用域 当前类 同package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly(default) √ √ × × private √ × × × protected 同package下任何类都能访问。 不同package下: --类变 ...
分类:
编程语言 时间:
2017-04-13 15:15:56
阅读次数:
165
1.GC什么?为什么有GC? GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的 ...
分类:
编程语言 时间:
2017-04-10 09:26:45
阅读次数:
300
假设我们有这样一个py文件: (3)再讲解类变量,实例变量如何调用 ...
分类:
编程语言 时间:
2017-04-08 12:36:13
阅读次数:
193