一些应试的java问题

来源:互联网 发布:淘宝双十二报名入口 编辑:程序博客网 时间:2024/04/26 07:27
1. 什么是面向对象:

所谓面向对象是指,编程语言将具体的参数和函数封装为一个实体,每一个实体称之为一个对象,程序员更关心的是每个对象如何设计,以及如何处理他们之间的关系,面向对象的语言特点是支持继承和多态。

2. 什么是继承:

举个简单的例子,李嘉诚的孩子相当于拥有李嘉诚的个人财产,当然前提是这些财产被李嘉诚声明为公有的,这样李嘉诚的孩子就可以继承李嘉诚的房子,钱。但是他无法继承李嘉诚声明为私有的老婆。

3. 什么是多态:

多态就是一个事物有用的多种形态,这是面向对象的一种表现。如人这个生物,他既是一个人,又是一个动物,还是一个哺乳动物。这就是多态的表现,如果某个方法接收一个动物,我传给他一个人,方法可以执行,因为人是更高级的动物。如果一个方法接收一个人,而我传给他一个动物,那程序就无法运行,因为动物可能包含低级动物,他不包含人特有的方法和属性。

4. 什么是可变参数:

可变参数是Java5.0的新特性,具体的使用方法是当一个方法声明的时候以public void test(int ... nums)为例。参数类型后跟三个点后再跟参数名称,该方法就可以接受任意多个int类型的参数,test(1,2,3) test(1,1,1,1,1)程序都可以执行,在方法中nums可以以数组的形式进行使用。

5. 什么是反射:

反射是Java提供的一种可以根据类的名称去获取类中参数的技术,以反射类的公有方法为例,首先需要加载这个类,然后获得类的实体,接着根据方法名去获取方法的对象,最后使用invoke传方法所需的参数就可以执行,如Spring这种框架就是使用反射的技术去注入对象的。

6. 什么是内省:

内省是Java提供的操作对象属性的API,实际上内部也是使用的反射技术,只是操作起来更加的方便。内省需要使用Introspector的getBeanInfo来获取与类相关的BeanInfo,使用getPropertyDescriptors可以得到BeanInfo的所有属性,然后使用getWriteMethod或getReadMethod可以获取该属性的set或get方法,得到的是一个Method对象,通过invoke方法可以运行。

7. MVC设计模式:

MVC设计模式是:Moudle,View,Controller,分别代表模型,视图,控制器。是Web开发中最常用的设计模式,每一层只关心自己的业务特点,无需关心其他模块,降低模块与模块之间的耦合性,增加项目的可扩展性和可维护性。

8. Spring框架的主要原理:

Spring框架的核心是IOC和AOP,IOC又叫依赖注入,有些人喜欢叫控制反转。它的基本原理是通过读取配置文件,通过配置文件中配置的路径,读取文件目录下的所有Java文件,得到文件名称,依次反射这些文件,得到他们的方法和对象,对象或方法上有没有指定名称的注解,最后通过反射生成方法的实体给指定的对象赋值。

AOP又叫面向切面的编程,它可以降低业务之间的耦合度,如日志记录,事务控制,异常处理等等。可以在方法前或方法后做一些操作,它的基本原理是使用Java的动态代理API,通过API获得指定方法的代理对象,通过再代理对象方法执行前后增加方法,可以达到在不改变类本身的情况下,灵活在某些方法执行前后增加其他方法。

9. 什么是泛型:

泛型是JDK5.0中提供的一种新特性,当我们的方法,接受不确定类型的参数时,可以使用特殊变量T,T在使用之前要在方法中进行声明如:public <T> T getObj(T t)这个对象代表,接收一个任意类型的参数,并且返回这个类型的参数。Map集合声明时接收的key和value就是泛型,泛型作用在类上时,即可使用Map<String,String>这种形式进行泛型赋值。

10. 如何声明一个注解:

注解是Java中一个为了取代配置文件的技术,常见的注解有@Override,@Test等,声明一个注解只需要新建一个类,以Imooc注解为例,public @interface Imooc{} 即可声明一个名为Imooc的注解。内部可以以参数类型 参数名()的形式来声明注解中所需要的参数。


0 0
原创粉丝点击