首页 > 代码库 > Javaweb阶段知识回顾一

Javaweb阶段知识回顾一

java基础增强

一、jdk1.5的新特性

  自动封箱拆箱

    封箱:Java自动将原始类型值转换成对应的对象,如将int的变量转换成Integer对象  

    拆箱:自动将对应的对象转换成原始类型值,将Integer对象转换成int类型值

    自动装箱时编译器调用valueOf将原始类型值转换成对象,同时自动拆箱时,编译器通过调用类似intValue(),doubleValue()这类的方法将对象转换成原始类型值。

  静态导入

    static import

    如果一个类中的方法全部是使用static声明的静态方法或变量,则可以使用静态导入,在使用导入类的静态资源时,不需要类名.

  可变参数

    类型... 空格 变量名 

    可变参数的底层是数组对象,很多事情,编译器给你干了

    可变参数必须位于方法参数的最后一个哦

    凡是参数是可变参数的,可以直接传数组对象

  枚举

    enum  

    public enum EasySingleton{}
   java枚举底层是继承了java.lang.Enum,可以用在switch中

  增强for循环

    增强for循环的底部实现其实就是迭代器

    语法:for(类型 变量名 : 对象)

  反射 

    获得class类的三种方式

      1、Object类中的getclass()

      2、类.class

      3、Class类的forName()

    获得class类之后可以

      1、创建对象

      2、获取类属性

      3、获取类方法

    反射的详细api:http://blog.csdn.net/jjfly999/article/details/51226986?locationNum=2&fps=1

二、注解

 基础:
  1.可以通过 @interface关键字来定义注解,定义注解和定义接口很相似。
  2.注解中可以包含属性,可以在注解声明时,在该注解内部声明属性;类似于接口中定义方法;
  3.注解的属性必须public,public可以省略,默认就是public.
  4.在使用注解时需要指定属性的值(未指定默认值的属性)。也可以在定义属性时使用default指定默认值。指定默认值之后,在使用该注解时,该属性可以指定值,也可以不指定值。
  5.注解中属性的类型是有要求,只能是八种基本数据类型、String、枚举类型、Class类型等,或以上类型一维数组。
  6.注解的属性中有一个特殊属性,名字叫value属性,如果注解只用一个属性需要被赋值,并且该属性的名字刚好叫value,则属性赋值“value=http://www.mamicode.com/”可以省略。
  7.如果注解的属性是一个数组类型,并且在赋的值中只有一个值,则“{}”可以省略。
 进阶:
  使用源注解修饰自定义的注解
  所谓的源注解指的就是sun定义用来修饰自定义注解的注解。

  @Retention:用于指定该Annotation可以保留的域。:SOURCE(源代码级别,给编译器看的)编译器直接丢弃这种策略的注解。

                           CLASS(class字节码级别)编译器编译后,会将该类注解保留在class文件中,当运行程序时,JVM将不会保留该类注解。     

                           RUNTIME:编译器编译后,会将该类注解保留在class文件中,JVM保留,程序在运行时页存在,所以可以通过反射来获取注解的信息(使用最多)

  @Target:指定注解用于修饰哪个成员

    ANNOTATION_TYPE 注释类型声明
    CONSTRUCTOR 构造方法声明
    FIELD 字段声明(包括枚举常量)
    LOCAL_VARIABLE 局部变量声明
    METHOD 方法声明
    PACKAGE 包声明
    PARAMETER 参数声明

Javaweb阶段知识回顾一