java面试题2

1. ****Spring的DI是什么(学员注:除了IOC,AOP这些概念,还不太清楚DI的概念)

2. *任意数字序列“123456”之类,输出它们所有的排列组合

3. *****什么是AOP(学员注:会用,但感觉说不清楚)

我注:由上面这些题,可以看出,思想很重要,只有琢磨思想和原理的人才能很好地回答这些问题!

       2题的答案:

       String str = “xafdvs”;

       char[] arr1 = str.toCharArray();

       char[] arr2 = Arrays.copyOf(arr1,arr1.length);

       for(int i=0;i<arr1.length-1;i++)

       {

              for(int j = i+1;j<arr2.length;j++){

                     syso: arr1[i] + “,” + arr2[j];

              }

       }

 

       3题的答案:

1.概念介绍:所谓AOP,即Aspect orientied program,就是面向方面的编程,

2.解释什么是方面:贯穿到系统的各个模块中的系统一个功能就是一个方面,

比如,记录日志,统一异常处理,事务处理,全限检查,这些功能都是软件系统

的一个面,而不是一点,在各个模块中都要出现。

3.什么是面向方面编程:把系统的一个方面的功能封装成对象的形式来处理

4.怎么进行面向方面编程:把功能模块对应的对象作为切面嵌入到原来的各个系统模块中,

采用代理技术,代理会调用目标,同时把切面功能的代码(对象)加入进来,所以,

用spring配置代理对象时只要要配两个属性,分别表示目标和切面对象(Advisor)。

3、构造器Constructor是否可被override?

构造器Constructor不能被继承,因此不能重写Override,但可以被重载Overload。

4、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法?

接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承具体类。抽象类中可以有静态的main方法。

备注:只要明白了接口和抽象类的本质和作用,这些问题都很好回答,你想想,如果你是java语言的设计者,你是否会提供这样的支持,如果不提供的话,有什么理由吗?如果你没有道理不提供,那答案就是肯定的了。

 只有记住抽象类与普通类的唯一区别就是不能创建实例对象和允许有abstract方法。

 

5、写clone()方法时,通常都有一行代码,是什么?

clone 有缺省行为,super.clone();因为首先要把父类中的成员复制到位,然后才是复制自己的成员。

6、面向对象的特征有哪些方面

计算机软件系统是现实生活中的业务在计算机中的映射,而现实生活中的业务其实就是一个个对象协作的过程。面向对象编程就是按现实业务一样的方式将程序代码按一个个对象进行组织和编写,让计算机系统能够识别和理解用对象方式组织和编写的程序代码,这样就可以把现实生活中的业务对象映射到计算机系统中。

面向对象的编程语言有封装、继承 、抽象、多态等4个主要的特征。

猜你喜欢

转载自mixer-b.iteye.com/blog/1487894