继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

java

慕斯3809946
关注TA
已关注
手记 19
粉丝 0
获赞 5

1.什么是反射?

    反射是在运行状态中,JVM会创建一个该类的Class类对象,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。

2.什么是Java序列化?什么情况需要Java序列化?

    java序列化时是为了保存各种对象在内存中的状态,并且可以把保存的对象状态再读出来。

以下情况需要使用Java序列化

  • 想把内存中的对象状态保存在一个文件或者数据库中的时候;

  • 想用套接字在网络上传送对象的时候

  • 想通过RMI(远程方法调用)传输对象的时候。

3.代理模式?

代理是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象,这样做的好处是:可以在目标对象实现的基础行,增强额外的功能操作,即扩展目标的功能。

3.1静态代理:

静态代理在使用时,需要定义接口或者父类,被代理对象与代理对象一起实现相同的接口或者继承相同的父类。

/** * 代理对象,静态代理 */
public class UserDaoProxy implements IUserDao{    
//接收保存目标对象  
  private IUserDao target;   
  public UserDaoProxy(IUserDao target){       
  this.target=target;    
  }    

  public void save() {     
    System.out.println("开始事务...");      
    target.save();//执行目标对象的方法       
    System.out.println("提交事务...");   
  }
 }

总结:静态代理可以做到不修改目标对象的功能前提下,对目标功能扩展。

缺点: 因为代理对象需要与目标镀锡实现一样的接口,所以会有许多代理类,类太多,一旦接口增加方法,目标对象与代理对象都要维护

3.2动态代理

动态代理有一下特点:(1)代理对象,不需要实现接口(2)代理对象的生成使用JDK的API,动态的在内存中构建代理对象(需要我们指定创建代理对象、目标对象实现的接口的类型) 3.动态代理也叫:JDK代理/接口代理

JDK中生成代理对象的API:

代理类所在包:java.lang.reflect.Proxy

JDK实现代理只需要使用newProxyInstance方法,但是该方法需要接收三个参数的完整写法:

static Object newProxyInstance(ClassLoader loader,Class<?>[] interfaces,InvovationHandler h)

指定当前目标对象使用类加载器,获取加载器的方法是固定的

目标对象实现的接口的类型,使用泛型方式确认类型

InvocationHandler h:事件处理,执行目标对象的方法时,会触发时间处理器的方法,会把当前执行目标对象的方法作为参数传入

目标对象一定要实现接口

3.3Cglib代理

4.简单说一下springmvc运行流程?

  • Springmvc先将请求发送给DispatcherServlet

  • DispatcherServlet查询一个或者多个HandlerMapping,找到请求的Controller

  • DispatcherServlet再把请求提交到对应的Controller

  • Controller进行业务逻辑处理后,会返回一个ModelAndView

  • Dispathcher查询一个或者多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象。

  • 视图对象负责渲染返回给客户端

5.springmvc有哪些组件?

  • 前置控制器DispatcherServlet

  • 映射控制器HandlerMapping

  • 处理器Controller

  • 模型和视图ModelAndView

  • 视图解析器ViewResolver

6.@RequestMapping的作用是什么?

将http请求映射到响应的类/方法上

7.@Autowired的作用是什么?

@Autowired它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作,通过@Autowired的使用来消除set/get方法



打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP