1.面向对象中的各种关键字 比如final static 等等

extends

extend键字用作继承功能,可以申明一个类是从另外一个类继承而来的
子类拥有父类非private的属性,方法。
子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
子类可以用自己的方式实现父类的方法。

super

super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。

super 可以用在子类中,通过点号(.)来获取父类的成员变量和方法。super 也可以用在子类的子类中

super 关键字的功能:
调用父类中声明为 private 的变量。
点取已经覆盖了的方法。
作为方法名表示父类构造方法。

this

this关键字:指向自己的引用。

final

final 关键字声明类可以把类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写

final 修饰的类不能被继承。

final 修饰的方法不能被子类重写。

final 修饰的变量(成员变量或局部变量)即成为常量,只能赋值一次。

final 修饰的成员变量必须在声明的同时赋值,如果在声明的时候没有赋值,那么只有 一次赋值的机会,而且只能在构造方法中显式赋值,然后才能使用。

final 修饰的局部变量可以只声明不赋值,然后再进行一次性的赋值。

static

  • static可以用来修饰:属性、方法、代码块、内部类

    static修饰属性的其他说明:
  • 静态变量随着类的加载而加载

  • 静态变量的加载要早于对象的创建
  • 由于类只会加载一次,所以静态变量在内存中也只存在一份,存在于方法的静态域中

  • 静态方法中,只能调用静态的方法或属性

  • 非静态方法中,既可以调用非静态的方法或属性,也可以调用静态的方法或属性
  • 在静态的方法中,不能使用this、super关键


    2.抽象类和接口的区别?

    抽象类:

  • 抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类。

  • 抽象类,不能使用new关键字来创建对象,它是用来让子类继承的。
  • 抽象方法,只有方法的声明,没有方法的实现,它是用来让子类实现的。
  • 子类继承抽象类,那么久必须要实现抽象类没有实现的抽象方法,否则该子类也要声明为抽象类。

接口:

  • 接口不能被实例化,因为接口中没有构造方法。
  • 声明接口的关键字是interface
  • 类实现接口的关键字是implements
  • 利用接口可以实现伪多继承的效果。


    3.mybatis的动态sql

  1. if 语句 (简单的条件判断)


  2. choose (qio死)(when,otherwise)


  3. trim (蠢m)(对包含的内容加上 prefix,或者 suffix 等,前缀,后缀)


  4. where(主要是用来简化sql语句中where条件判断的,能智能的处理 and 、or ,不必担心多余导致语法错误)


  5. set (主要用于更新时)
 不需要使用trim

  6. foreach (fo一起)(在实现 mybatis in 语句查询时特别有用)


4.spring框架常用的注解?

@Component 所有受Spring管理组件的通用形式

@Controller标识控制层组件


@Service标识业务层组件


@Repository标识持久层组件

以上四个注解都是在实例化对象

@Resource用注解组装bean(注入),java提供的注解,默认根据名称进行注入

如果通过@Resource(name=”xxx”),只会根据名字进行注入;

如果没有指定,会根据修饰的变量的默认名注入,如果不存在,根据类型注入,如果有多个相同接口的类,报错,可以通过type属性指定具体的类

@Resource(type=UserDaoImpl2.class)

@Autowried 根据类型自动注入对象,如果匹配多个类型一致的对象(比如一个接口多个实现类),需要使用@Qualifier()根据名称选择具体注入哪一个对象


@Scope 设置bean的作用域,@Scope(scopeName=”singleton”)


5.springmvc如何实现json数据交互?