抽象类中的抽象方法的访问类型可以是public,protected,但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。...抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型...HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。 12、HashMap 和 ConcurrentHashMap 的区别?...两个或一个,”xyz”对应一个对象,这个对象放在字符串常量缓冲区,常量”xyz”不管出现多少遍,都是缓冲区中的那一个。...New String每写一遍,就创建一个新的对象,它一句那个常量”xyz”对象的内容来创建出一个新String对象。如果以前就用过’xyz’,这句代表就不会创建”xyz”自己了,直接从缓冲区拿。
Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步的。 13.Collection 和 Collections的区别。...14.String s = new String("xyz");创建了几个String Object? 答:两个对象,一个是"xyz",一个是指向"xyz"的引用对象s。...equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。 20.error和exception有什么区别?...不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。...由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。
6、String s = new String(“xyz”);创建了几个String Object? 7、short s1 = 1; s1 = s1 + 1;有什么错?...Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步的。 4、Collection 和 Collections的区别?...equals()和==方法决定引用值是否指向同一对象 equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。 10、error和exception有什么区别?...然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。...由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。
程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等。 对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象类、或者派生类(子类)中的方法—摘自维基百科。...(3)static以及非虚函数,无法使用现有的框架进行mock 1)为什么无法mock static类型的函数?...在Google Mock的官方“常见问题”的回答中,Google是这样的:You can, but you need to make some changes.即如果你需要mock一个静态函数,那说明你的程序模块过于...该方案的原理是通过模板类的方式来实现,在开发代码中通过传入实际对象来调用真实接口,在测试代码中通过传入mock对象来调用mock出来的接口。...即被测类A和mock类B之间没有任何关系,mock类B中同样实现了被测类A中的大部分接口,在测试代码中,通过声明mock类B的对象,来达到测试目的。
),那么它们的hashCode值一定要相同 两个对象的hashCode相同,它们并不一定相同 3、String 类是final类,不可以被继承 4、String s = new String("xyz"...);创建了几个字符串对象 两个对象 一个是静态区的"xyz",一个是用new创建在堆上的对象 5、重载(Overload)和重写(Override) 重载 编译时的多态性 发生在一个类中,同名的方法如果有不同的参数列表...(参数类型不同、参数个数不同或者二者都不同)则视为重载 重写 运行时的多态性 发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型 6、抽象类(abstract class)和接口...可以有抽象方法和具体方法,而接口中不能定义构造器而且其中的方法全部都是抽象方法 抽象类中的成员可以是private、默认、protected、public的,而接口中的成员全都是public的 抽象类中可以定义成员变量...,而接口中定义的成员变量实际上都是常量 有抽象方法的类必须被声明为抽象类,而抽象类未必要有抽象方法
--- 修改元组 元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例: 实例(Python 3.0+) #!.../usr/bin/python3 tup1 = (12, 34.56) tup2 = ('abc', 'xyz') # 以下修改元组元素操作是非法的。...# tup1[0] = 100 # 创建一个新的元组 tup3 = tup1 + tup2 print (tup3) 以上实例输出结果: (12, 34.56, 'abc', 'xyz') ---- 删除元组...元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组,如下实例: 实例(Python 3.0+) #!...tup,绑定到新的对象了,不是修改了原来的对象。
譬如说,这种测试类内部的方法不会被调用,或者是用来填充某个方法的参数。 Fake 是真正接口或抽象类的实现体,但给对象内部实现很简单。譬如说,它存在内存中而不是真正的数据库中。...譬如说,你可以验证在 Mock 对象的某一个方法是否被调用。这可以确保隔离了外部依赖的干扰只测试测试类。 我们选择 Mock 对象的原因是因为 Mock 对象只需要少量代码的配置。...2.3 mock对象的产生 你可以手动创建一个 Mock 对象或者使用 Mock 框架来模拟这些类,Mock 框架允许你在运行时创建 Mock 对象并且定义它的行为。...Mock 对象可以被提供来进行测试。因此,我们测试的类应该避免任何外部数据的强依赖。 通过 Mock 对象或者 Mock 框架,我们可以测试代码中期望的行为。...4.6 使用@InjectMocks在mockito中进行依赖注入 我们也可以使用@InjectMocks 注解来创建对象,它会根据类型来注入对象里面的成员方法和变量。
构造函数:抽象类中可以有构造函数,接口中不能。 和正常类区别:抽象类不能被实例化,接口则是完全不同的类型。...两个或一个,”xyz”对应一个对象,这个对象放在字符串常量缓冲区,常量”xyz”不管出现多少遍,都是缓冲区中的那一个。...New String每写一遍,就创建一个新的对象,它一句那个常量”xyz”对象的内容来创建出一个新String对象。如果以前就用过’xyz’,这句代表就不会创建”xyz”自己了,直接从缓冲区拿。...集合只能存储引用数据类型; 3)数组存储的元素必须是同一个数据类型,而集合存储的对象可以是不同数据类型; Java集合的层次关系 如图所示,图中实线边框的是实现类,折线边框的是抽象类,点线的是接口。...1)Array可以容纳基本类型和对象,而ArrayList只能容纳引用类型对象; 2)Array是指定大小的,而ArrayList大小是固定的; ArrayList和LinkedList的区别?
在代码运行角度:先有类,后有对象。类是对象的模板,对象是类的实例。...char:u0000 boolean: false 引用类型:null ---- 三大特征:封装,继承,多态 封装 高内聚: 将内部数据操作细节自己完成,不允许外部干涉 低耦合: 减少外部联系...class Application { public static void main(String[] args) { //一个对象的实际类型是确定的...//对象能执行哪些方法,主要看左边的类型 //对象是执行父类的方法还是子类的方法?...) ---- 抽象类的特点 抽象类不能new出来,只能通过一个类去继承它,然后重写它的抽象方法进而由子类对象实现特定功能 抽象类中可以有正常方法 一个类中只要有抽象方法,就一定是抽象类,要用abstract
抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法? 接口可以继承接口。...抽象类可以实现(implements)接口,抽象类是否可继承具体类。抽象类中可以有静态的main方法。...只有记住抽象类与普通类的唯一区别就是不能创建实例对象和允许有abstract方法。 9、写clone()方法时,通常都有一行代码,是什么?...两个或一个,”xyz”对应一个对象,这个对象放在字符串常量缓冲区,常量”xyz”不管出现多少遍,都是缓冲区中的那一个。...New String每写一遍,就创建一个新的对象,它一句那个常量”xyz”对象的内容来创建出一个新String对象。如果以前就用过’xyz’,这句代表就不会创建”xyz”自己了,直接从缓冲区拿。
正文 1、面向对象的三个基本特征? 面向对象的三个基本特征是:封装、继承和多态。 继承:让某个类型的对象获得另一个类型的对象的属性的方法。...两个语句都会先去字符串常量池中检查是否已经存在 “xyz”,如果有则直接使用,如果没有则会在常量池中创建 “xyz” 对象。...另外,String s = new String("xyz") 还会通过 new String() 在堆里创建一个内容与 "xyz" 相同的对象实例。 所以前者其实理解为被后者的所包含。...抽象类中的抽象方法类型可以是任意修饰符,Java 8 之前接口中的方法只能是 public 类型,Java 9 支持 private 类型。...Set(注重独一无二的性质):不允许重复的集合,不会有多个元素引用相同的对象。 Map(用Key来搜索的专业户): 使用键值对存储。Map 会维护与 Key 有关联的值。
我们可以为mock对象设定默认值: ? 把DefaultValue的值设为DefaultValue.Mock....但是DefaultValue这个属性只对引用类型起作用(对值类型不起作用), 像这种递归的mock, 它会递归的创建所需的引用类型, 但是最后的IsAvailable这个值类型是不起作用的....string是引用类型, 但是mock的值依然是null...??!!??...这是因为string是一个sealed class, 而DefaultValue.Mock只对接口, 抽象类和非sealed的class起作用.......然后在审批类里, 我设置了这个属性的值: ? 上面的代码也就是说, 我的mock对象的某个属性在测试的时候它的值会发生变化. 而Moq可以记住这些mock属性的变化的值..... 新写一个测试: ?
2.抽象类中可以有普通成员变量,接口中没有普通成员变量 3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。...抽象类中的抽象方法的访问类型可以是public,protected和默认类型,但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。...5.抽象类和接口中都可以包含静态成员变量, 抽象类中的静态成员变量的访问类型可以任意, 但接口中定义的变量只能是public static final类型,并且默认即为public static final...一个类可以实现多个接口,但只能继承一个抽象类 接口中不能有构造方法 接口中没有普通成员变量 接口中的所有方法必须都是抽象的,不能有非抽象的普通方法 接口中的抽象方法只能是public类型的,并且默认即为...答:创建了两个, “xyz” 是一个, new String 是一个, 存储的位置不一样,前者存储在常量池中,后者在堆中分配存储空间。
(转载请指明出于breaksoftware的csdn博客) Gmock是google开发的一套辅助测试的工具,它往往和GTest结合在一起使用。...目前网络上有一篇写的不错的使用说明《转一篇小亮同学的google mock分享》,如果大家想了解其详细的使用方法,可以参阅这篇文章。...而又两个参数的Login使用的是MOCK_METHOD2。MOCK_METHOD系列宏的第一个参数是函数名,第二个参数是函数指针的类型。 第二步,我们就可以设计测试场景了。...我们可以使用 EXPECT_CALL声明一个调用期待,就是我们期待这个对象的这个方法按什么样的逻辑去执行。 mock_object是我们mock的对象,上例中就是TestUser的一个对象。...Method是mock对象中的mock方法,它的参数可以通过argument-matchers规则去匹配。 With是多个参数的匹配方式指定。 Times表示这个方法可以被执行多少次。
三,gmock简介 gmock的全称是Google Mock,是Google于2008年推出的C++测试工具,gmock是编写和使用C++模拟类的框架。...gmock可以快速轻松地定义模拟对象,模拟对象提供与真实对象相同的接口。gmock允许开发者定义模拟对象的行为,例如调用哪些方法,以什么顺序,调用多少次,传哪些参数,返回什么样的值等等。...四,gmock的主要特性 1.提供了用于定义模拟行为的声明性语法。 2.支持对任意类型的函数或被重载的函数进行模拟。 3.拥有丰富的匹配器,用于验证函数参数。...开发步骤 测试之前: 确定需要模拟的类接口 定义Mock类,并继承需要被模拟的类 利用MOCK_METHOD宏来模拟虚函数 测试期间: 使用testing命名空间 实例化Mock类,创建模拟对象 设置模拟对象的默认行为或期望行为...)); MOCK_METHOD(ReturnType, MethodName, (Args...), (Specs...)); }; 前3个参数包含: 函数返回类型,函数名,函数传参。
抽象类:含有abstract修饰符的class即为抽象类,abstract类不能创建的实例对象。...抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然eclipse下不报错,但应该也不行),==但接口中的抽象方法只能是public类型的,并且默认即为public abstract...抽象类中可以包含静态方法,接口中不能包含静态方法 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为...两个或者一个对象。 ”xyz”对应一个对象,这个对象放在==字符串常量缓冲区==,常量”xyz”不管出现多少遍,都是缓冲区中的那一个。...New String每写一遍,就创建一个新的对象,它依据那个常量”xyz”对象的内容来创建出一个新String对象,如果以前就用过’xyz’,就不会创建”xyz”自己了,直接从缓冲区拿。
08 string s=new string("xyz");创建了几个stringobject?...2个,文字池中1个,堆中1个,先在文字池中创建1个"xyz"对象,再在堆中拷贝一个"xyz"对象,并将其赋给引用s。 09 math.round(11.5)等於多少?...抽象类是否可实现(implements)接口?抽象类是否可继承实体类(concreteclass)? 接口可以继承接口,抽象类可以实现接口,抽象类可以继承实体类。...switch语句中的表达式只能是整数类型,即必须是int,char或者枚举类型数据。不能是boolean或浮点型,甚至其他类型的整数数据(byte,short及long)。...(Java) 上期答案: 不行,你不能在没有强制类型转换的前提下将一个 double 值赋值给 long 类型的变量,因为 double 类型的范围比 long 类型更广,所以必须要进行强制转换。
在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。 4. 一个变量可以通过赋值指向不同类型的对象。...内置的 type() 函数可以用来查询变量所指的对象类型。 3. int(x) 将x转换为一个整数。 4. float(x) 将x转换到一个浮点数。 5....元组中的元素值是不允许修改的,但我们可以对元组进行连接组合。 5. 元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组。...= ('abc', 'xyz') # 以下修改元组元素操作是非法的。...tup1[0] = 100 # 创建一个新的元组 tup3 = tup1 + tup2; print (tup3) # (12, 34.56, 'abc', 'xyz') tup = ('Google'
3 接口不能包含构造器,抽象类可以包含构造器,抽象类里的构造器并不是用于创建对象,而是让其子类调用这些构造器来完成属于抽象类的初始化操作。...String("xyz");创建了几个String Object?...)为了线程安全,Vector方法被同步,通常使用ArrayList 而不用Vector Set接口 重在数据的唯一性,不允许重复,set接口通过equals()方法确定两个对象是否相等,重复时只能有一个放在...JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类? 答:字节流,字符流。...HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
领取专属 10元无门槛券
手把手带您无忧上云