首页 > 学院 > 开发设计 > 正文

java 复习002

2019-11-14 21:01:59
字体:
来源:转载
供稿:网友
java 复习002
java东西太多了,我都有点小凌乱了,记得太没结构了   
java内存回收机制:垃圾收集GC(Garbage Collection)

两种常用方法:

  1. 引用计数(早期使用)

    • 简介:堆中对象每次被栈中引用指向时,它的引用计数就加一,引用被删除时就减一;当引用计数为0的时候就被回收
    • 优点:操作简单,运行很快,在实时环境中比较有利
    • 缺点:容易出现循环引用(当A对象中有B对象的引用,B对象同时也存在A对象的引用时,AB对象的引用永远不可能为0,类似于死锁
  2. 引用遍历(现在使用)

    • 简介:从栈中根引用开始递归遍历可达对象,标记所有可达对象,然后回收没有标记的对象
    • 优点:不会出现循环引用,因为就算AB循环了,但是它们共同不可达,同样会被回收
    • 缺点:实现复杂,运行慢,运行时要打断应用程序工作

java 异常机制
  1. 异常:

    程序出现异常,就是在当前环境下没有相应的处理程序可以调用时,程序会出现一种中断现象。

  2. 处理机制简介:
    1. 出现异常时JVM会抛出一个异常类对象,如果程序中有相应的try-catch语句的话,会交给程序处理,如果没有的话直接交给JVM,JVM一般会在控制台打印出错信息。
    2. 存在try-catch的话,当try捕获到异常类对象时交给catch,匹配catch中定义的异常类,相同则执行catch语句块,找不见对应的catch的话就交给JVM了
    3. Error和Exception的区别:
      1. Error属于JVM一级的错误,可能和操作系统有关,程序无法控制和处理
      2. Exceptioan是开发者级的错误,大多数情况下可以由程序控制和处理,除了一些unchecked exception外,RuntimeException和其子类都是unchecked excception,如:NullPointerException,ClassCastException和IndexOutOfBoundsException
反射机制(Reflection)
  1. 简介(百度百科)

    1. 在计算机科学领域,反射是指一类应用,它们能够自描述和自控制。也就是说,这类应用通过采用某种机制来实现对自己行为的描述(self-rePResentation)和监测(examination),并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义
    2. Java中,反射是一种强大的工具。它使您能够创建灵活的代码,这些代码可以在运行时装配
    3. 但需注意的是:如果使用不当,反射的成本很高。
  2. 作用

    1. 通过类说明可以得到类的父类、实现的接口、内部类、构造函数、方法、属性
    2. 可以根据构造器实例化一个对象,唤起一个方法,取属性值,改属性值
  3. 使用

    1. 得到一个类说明

      123
      Class cls=类.class;Class cls=对象.getClass();Class.forName("类路径");
    2. 得到一个方法并唤起它

      12345
      Class cls=类.class;Constructor cons=cls.getConstructor(new Class[]{String.class});Object obj=cons.newInstance(new Object[]{"aaa"});Method method=cls.getMethod("方法名",new Class[]{String.class,Integer.class});method.invoke(obj,new Object[]{"aa",new Integer(1)});
Struts2
  1. struts2运行机制
  2. 拦截器实现(动态代理,详见:java_review001)
    1. ActionInvocation控制所有的拦截器
    2. 拦截器先执行before的代码,再调ActionInvocation.invoke()方法,最后执行after代码
    3. ActionInvocation中的invoke方法实现了递归调用
  3. filter(过滤器)<->interaptor(拦截器)
    1. 拦截器是基于JAVA反射机制的,而过滤器是基于函数回调的。
    2. 过滤器依赖于Servlet容器,而拦截器不依赖于Servlet容器
    3. 拦截器只能对Action请求起作用,而过滤器可以对几乎所有的请求起作用。
    4. 拦截器可以访问Action上下文、值栈里的对象,而过滤器不能
    5. 在Action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。
Spring

Spring在MVC模式中处于Controller位置

  1. IoC(依赖注入)
    1. 简介:通常,服务代码需要先创建待使用的对象实例;而IoC模式中,创建待使用实例的任务由IoC容器来完成,服务代码直接使用实例
    2. 优势:
      1. 应用组件不需要在运行时自己寻找待使用对象,简化代码
      2. 只需在配置文件中管理组件依赖关系,不需要编写依赖关系代码
      3. 降低了组件间的耦合度,提高类的重用性,利于系统集成和配置
    3. 实现方法:反射机制
  2. AOP(面向切面编程)
    1. 简介:在核心服务代码前后插入其它辅助服务代码,相当于将整个服务切成片了
    2. 优势:轻松实现辅助模块的装配
    3. 实现:动态代理(CGLIB),底层实现参考:Spring AOP 实现原理与 CGLIB 应用
PreparedStatement和Statement
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表