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=”可以省略。
  7.如果注解的属性是一个数组类型,并且在赋的值中只有一个值,则“{}”可以省略。
 进阶:
  使用源注解修饰自定义的注解
  所谓的源注解指的就是sun定义用来修饰自定义注解的注解。

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

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

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

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

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

Javaweb阶段知识回顾一的更多相关文章

  1. JavaWeb知识回顾-servlet简介。

    现在公司主要用jsp+servlet这种原生的开发方式,用的是uap的开发平台,所以趁着这个时候把有关javaweb的知识回顾一下. 首先是从servlet开始. 一.什么是Servlet?(是一些理 ...

  2. [C#] C# 知识回顾 - 你真的懂异常(Exception)吗?

    你真的懂异常(Exception)吗? 目录 异常介绍 异常的特点 怎样使用异常 处理异常的 try-catch-finally 捕获异常的 Catch 块 释放资源的 Finally 块 一.异常介 ...

  3. [C#] C# 知识回顾 - 学会处理异常

    学会处理异常 你可以使用 try 块来对你觉得可能会出现异常的代码进行分区. 其中,与之关联的 catch 块可用于处理任何异常情况. 一个包含代码的 finally 块,无论 try 块中是否在运行 ...

  4. [C#] C# 知识回顾 - 学会使用异常

    学会使用异常 在 C# 中,程序中在运行时出现的错误,会不断在程序中进行传播,这种机制称为“异常”. 异常通常由错误的代码引发,并由能够更正错误的代码进行 catch. 异常可由 .NET 的 CLR ...

  5. [C#] C# 知识回顾 - 异常介绍

    异常介绍 我们平时在写程序时,无意中(或技术不够),而导致程序运行时出现意外(或异常),对于这个问题, C# 有专门的异常处理程序. 异常处理所涉及到的关键字有 try.catch 和 finally ...

  6. [.NET] C# 知识回顾 - Event 事件

    C# 知识回顾 - Event 事件 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6060297.html 序 昨天,通过<C# 知识回顾 - ...

  7. [.NET] C# 知识回顾 - 事件入门

    C# 知识回顾 - 事件入门 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6057301.html 序 之前通过<C# 知识回顾 - 委托 de ...

  8. [.NET] C# 知识回顾 - 委托 delegate (续)

    C# 知识回顾 - 委托 delegate (续) [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6046171.html 序 上篇<C# 知识回 ...

  9. [C#] C# 知识回顾 - 委托 delegate

    C# 知识回顾 - 委托 delegate [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6031892.html 目录 What's 委托 委托的属性 ...

随机推荐

  1. 关于NIOS ii烧写的几种方式

    1. 方法一:.sof和.elf全部保存在FPGA内,程序加载和运行也是在FPGA内部. 把FPGA的配置文件.sof通过JTAG方式下载(其实是在线运行)进入FPGA本身,此时在NIOS II的界面 ...

  2. 打印等腰三角形as3

    package { import flash.display.Sprite; public class san extends Sprite { public function san() { var ...

  3. bi api 软件

    https://www.interactivebrokers.com.hk/cn/index.php?f=5234&ns=T

  4. Classification of text documents: using a MLComp dataset

    注:原文代码链接http://scikit-learn.org/stable/auto_examples/text/mlcomp_sparse_document_classification.html ...

  5. Apache和PHP的优化

    调优 Apache Apache 是一种高度可配置的软件.它具有大量特性,但每一种都代价高昂.从某种程度上来说,调优 Apache 来说就是以恰当的方式分配资源,还涉及到将配置简化为仅包含必要内容. ...

  6. linux动态链接库---一篇讲尽

    一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如: tmux: error while loading shared libraries: libevent-1.4.s ...

  7. print打印网页相关

    作者:zccst 1,CSS <link href="/style/print.css" rel="stylesheet" type="text ...

  8. Online Schema Change for MySQL

    It is great to be able to build small utilities on top of an excellent RDBMS. Thank you MySQL. This ...

  9. leetcode--011 copy list with random pointer

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA3UAAABjCAIAAACzC75sAAAMTElEQVR4nO3cyYHivBYG0D8n0nIojo ...

  10. UVa 900 - Brick Wall Patterns

    题目大意:用1*2的砖头建n*2的墙,问有多少种不同的砖头排列方式?与斐波那契序列相似. #include <cstdio> #define MAXN 60 #define N 50 un ...