当你创建一个新的实例对象时,它会得到一块新的内存空间。但是类中的静态成员变量是所有对象共有的,也就是在一片属于类的存储空间中,被所有对象共有。 



2.D 

1、抽象类和方法都不能被实例化 

2、抽象类可以实现接口 

3、抽象类方法默认访问权限都是default 

4、接口就是访问的,默认访问权限都是public 



3.A 

String s1=new String( ” xyz ” );            //创建了String类型的内容为xyz的s1对象 

String s2=new String( ” xyz ” );            //创建了String类型的内容为xyz的s2对象 

Boolean b1=s1.equals(s2);                    //比较s1对象和s2对象的内容相等,返回true。 

Boolean b2=(s1==s2);                        //比较s1和s2两个对象的存储地址是否相等,明显两者分别存储在不同的地址,所以返回:false。 

故答案为:true  false 



4.C 

当编写一个java源代码文件时,此文件通常被称为编译单元(有时也被称为转译单元)。每个编译单元都必须有一个后缀名.java,而在编译单元内则可以有一个public类, 

该类的名称必须与文件的名称相同(包括大小写,但不包括文件的后缀名.java)。每个编译单元只能有一个public类,否则编译器就不会接受。如果在该编译单元之中还有额外的类的话, 

那么在包之外的世界是无法看见这些类的,这是因为它们不是public类,而且它们主要用来为主public类提供支持。            --《Java 编程思想》 



5.D 

ArryList和LinkedList都实现了List接口,ArrayList的内存结构是数组,本质是顺序存储的线性表,插入和删除操作都会引起后续元素移动,效率低,但是随机访问效率高 

LinkedList的内存结构是双向链表存储的,链式存储结构插入和删除效率高,不需要移动,但是随机访问效率低,需要从头开始向后依次访问 



6.D 

Base base=new Son(); 是多态的表示形式。父类对象调用了子类创建了Son对象。 

base调用的method()方法就是调用了子类重写的method()方法。 

而此时base还是属于Base对象,base调用methodB()时Base对象里没有这个方法,所以编译不通过。 

要想调用的话需要先通过SON son=(SON)base;强制转换,然后用son.methodB()调用就可以了。 



7.BD 

synchronized很强大,既可以保证可见性,又可以保证原子性,而volatile不能保证原子性! 



8.B 

依赖注入和控制反转是同一概念: 

依赖注入和控制反转是对同一件事情的不同描述,从某个方面讲,就是它们描述的角度不同。依赖注入是从应用程序的角度在描述,可以把依赖注入描述完整点: 

应用程序依赖容器创建并注入它所需要的外部资源;而控制反转是从容器的角度在描述,描述完整点:容器控制应用程序,由容器反向的向应用程序注入应用程序所需要的外部资源。 



9.CD 

A错,调用Base这个构造方法应该这样  new Base(a,b) 

B错,和C相比应该是分号不是逗号,帅的一塌糊涂 

C正常赋值操作 

D调用本类的构造方法 



10.D 

高内聚,低耦合