1.面向对象中的各种关键字 比如final static 等等
extends
extend键字用作继承功能,可以申明一个类是从另外一个类继承而来的
子类拥有父类非private的属性,方法。
子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
子类可以用自己的方式实现父类的方法。
super
super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。
super 可以用在子类中,通过点号(.)来获取父类的成员变量和方法。super 也可以用在子类的子类中
super 关键字的功能:
调用父类中声明为 private 的变量。
点取已经覆盖了的方法。
作为方法名表示父类构造方法。
this
this关键字:指向自己的引用。
final
final 关键字声明类可以把类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写
final 修饰的类不能被继承。
final 修饰的方法不能被子类重写。
final 修饰的变量(成员变量或局部变量)即成为常量,只能赋值一次。
final 修饰的成员变量必须在声明的同时赋值,如果在声明的时候没有赋值,那么只有 一次赋值的机会,而且只能在构造方法中显式赋值,然后才能使用。
final 修饰的局部变量可以只声明不赋值,然后再进行一次性的赋值。
static
-
static修饰属性的其他说明:
静态变量随着类的加载而加载
- 静态变量的加载要早于对象的创建
由于类只会加载一次,所以静态变量在内存中也只存在一份,存在于方法的静态域中
静态方法中,只能调用静态的方法或属性
- 非静态方法中,既可以调用非静态的方法或属性,也可以调用静态的方法或属性
-
2.抽象类和接口的区别?抽象类:
抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类。
- 抽象类,不能使用new关键字来创建对象,它是用来让子类继承的。
- 抽象方法,只有方法的声明,没有方法的实现,它是用来让子类实现的。
- 子类继承抽象类,那么久必须要实现抽象类没有实现的抽象方法,否则该子类也要声明为抽象类。
接口:
if 语句 (简单的条件判断)
choose (qio死)(when,otherwise)
trim (蠢m)(对包含的内容加上 prefix,或者 suffix 等,前缀,后缀)
where(主要是用来简化sql语句中where条件判断的,能智能的处理 and 、or ,不必担心多余导致语法错误)
set (主要用于更新时) 不需要使用trim
foreach (fo一起)(在实现 mybatis in 语句查询时特别有用)
4.spring框架常用的注解?
@Component 所有受Spring管理组件的通用形式
@Controller标识控制层组件
@Service标识业务层组件
@Repository标识持久层组件
以上四个注解都是在实例化对象
@Resource用注解组装bean(注入),java提供的注解,默认根据名称进行注入
如果通过@Resource(name=”xxx”),只会根据名字进行注入;
如果没有指定,会根据修饰的变量的默认名注入,如果不存在,根据类型注入,如果有多个相同接口的类,报错,可以通过type属性指定具体的类
@Resource(type=UserDaoImpl2.class)