注解、Java数据结构<笔记>

注解

一、注解简介

JDK5开始,Java增加对元数据的支持,也就是注解,注解与注释是有一定区别的,可以把注解理解为代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。通过注解开发人员可以在不改变原有代码和逻辑的情况下在源代码中嵌入补充信息。

注解常见的作用:

  1. 生成帮助文档,常用的有:@see@param@return等。
  2. 跟踪代码依赖性,实现替代配置文件功能。
  3. 在编译时进行格式检查。

基本注解包括:

  @Override@Deprecated@Suppress Warnings@SafeVarargs@Functionallnterface

  二、@Override注解

     该注解是用来指定方法重写的,只能修饰方法并且只能用于方法重写,不能修饰其他元素。

他的作用是:告诉编译器检查这个方法,保证父类要包括一个被该方法重写的方法,否则就会编译出错。

  三、@Deprecated注解

     该注解可以用来注解类,接口,成员方法和成员变量,用于表示某个元素已经过时。

    @Depercated的作用与文档注释中的@deprecated标记的作用基本相同,但它们的用法不同而已,前者是Java5才支持的注解,直接用于修饰程序中的程序单元。

  四、@Suppress Warnings:抑制编译器警告

    该注解主要用在取消一些编译器产生的警告对代码左侧行列的遮挡,有时候这样会挡住我们断点调试时打的断点。

    注解的使用有以下三种:

  1. 抑制单类型的警告:@SuppressWarnings("unchecked")
  2. 抑制多类型的警告:@SuppressWarnings("unchecked","rawtypes")
  3. 抑制所有类型的警告:@SuppressWarnings("unchecked")

抑制警告的关键字:

all:抑制所有警告

boxing:抑制装箱、拆箱操作时的警告

deprecation:抑制过期方法警告

fallthrough:抑制在switch中缺失breaks的警告

五、@SafeVarargs注解

    @SafeVarargs注解不适用于非 static 或非 final 声明的方法,对于未声明为 static final 的方法,如果要抑制 unchecked 警告,可以使用 @SuppressWarnings 注解。

六、自定义注解

   声明自定义注解使用 @interface 关键字(interface 关键字前加 @ 符号)实现。

根据注解是否包含成员变量,可以分为如下两类。

1. 标记注解:没有定义成员变量的注解类型被称为标记注解。这种注解仅利用自身的存在与否来提供信息,如前面介绍的 @Override@Test 等都是标记注解。

2. 元数据注解:包含成员变量的注解,因为它们可以接受更多的元数据,所以也被称为元数据注解。

Java数据结构

Java中的数据结构主要包括以下几种接口和类:

   枚举、位集合、向量、栈、字典、哈希表、属性

  

  一、枚举

枚举(The Enumeration)接口定义了一种从数据结构中取回连续元素的方式。

  枚举声明的方法:

    boolean hasMoreElements( ):测试此枚举是否包含更多的元素

    Object nextElement( ): 如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素

二、位集合

  位集合定义了两个构造:

第一个构造方法创建一个默认的对象:

BitSet()

第二个方法允许用户指定初始大小,所有位初始化为0

BitSet(int size)

三、队列

队列的六个方法分类:

   压入元素(添加)add()offer()

相同:未超出容量,从队尾压入元素,返回压入的那个元素。

区别:在超出容量时,add()方法会对抛出异常,offer()返回false

弹出元素(删除)remove()poll()

相同:容量大于0的时候,删除并返回队头被删除的那个元素。

区别:在容量为0的时候,remove()会抛出异常,poll()返回false

获取队头元素(不删除)element()peek()

相同:容量大于0的时候,都返回队头元素。但是不删除。

区别:容量为0的时候,element()会抛出异常,peek()返回null

offeradd 区别:

一些队列有大小限制,因此如果想在一个满的队列中加入一个新项,多出的项就会被拒绝。

这时新的 offer 方法就可以起作用了。它不是对调用 add() 方法抛出一个 unchecked 异常,而只是得到由 offer() 返回的 false

pollremove 区别:

remove() poll() 方法都是从队列中删除第一个元素。remove() 的行为与 Collection 接口的版本相似, 但是新的 poll() 方法在用空集合调用时不是抛出异常,只是返回 null。因此新的方法更适合容易出现异常条件的情况。

peekelement区别:

        element() peek() 用于在队列的头部查询元素。与 remove() 方法类似,在队列为空时, element() 抛出一个异常,而 peek() 返回 null

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值