问题1:重写与重载的区别?
重写(overRiding)(将父类中的某些方法重新写):实现父类与子类之间的多态。适用于子类继承父类中的方法,但子类中想对这些方法进行修改,这就需要使用类的重写技术。重写又称为覆盖。若父类和子类中存在方法名、参数列表(参数类型、参数个数)、返回值类型相同,则称为方法的重写。
重载(overLoading):实现方法之间的多态、类中多态。是类中存在多个方法名相同,参数类表不同的方法。返回值类型可以不同,也可以相同。
问题2:arrayList与linkedList
1、arrayList实现动态数组的数据结构,linkedList实现了双向循环链表的数据结构。
2、对于set()和get()访问。arrayList要优于linkedList。因为arryList可以随机定位,而linkedList要移动指针才能访问。
3、对于add()和remove()。linkedList要优于arrayList。因为linkedList只需修改指针即可,而arrayList需要移动数据来被删除和添加的数据对象。
4、时间复杂度。二分查找时,arrayList的时间复杂度要小于linkedList。对arrayList进行查找的时间复杂度是固定的。进行插入删除数据时,linkedList比arrayList要小,而linkedList的时间复杂度是固定的。
5、空间复杂度。arrayList主要是体现在在list的最后要预留一些空间,而linkedList则体现在每个元素都要相当的空间。
问题3:反射机制
是在运行状态时,能够动态的获得类的所有属性和方法。对于对象,能任意地调用任一方法。这种动态获取信息及调用对象的方法的机制就是java的反射机制。具有以下功能:
1、在运行时,能动态的调用对象的方法
2、动态地构造任一对象。方法newInstance()只能创建只包含只有无参数的构造方法的类。
3、能获取类的属性和方法。有两种方法可以获取属性、方法、构造函数。get***()和getDeclared***()。这两种方法的区别在于:前者是只能获取类或超类的public的属性、方法、构造函数,而后者可以访问全部的属性、方法、构造函数(constructor),但是不能访问父类的。
4、能判断任意对象的所属类
使用java反射首先需要取得你想操作的类的Class对象,然后再根据Class对象来取得操作类中的属性或方法,再根据操作前一步取得的属性或方法名。
取得Class对象有一下三种方法:
1、调用static方法forName()
2、使用类的.Class语法
3、调用对象的.getClass()方法
java运行时,某个类无论生成多少个对象,这些对象都对应同一个Class对象。这个对象Class表示程序运行中的类或接口。
问题4:SSH框架与MVC设计模式的对应关系
总的来说,struts是用来做控制用的,hibernate是用来持久化数据的,spring是用来解耦的。
转载于:https://www.cnblogs.com/frankHlc/archive/2013/03/20/2970463.html
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/110186.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...