【概念笔记】JAVA基础 - part5
来源:互联网 发布:caffe 使用训练好模型 编辑:程序博客网 时间:2024/05/23 19:59
注解
注解的作用:
1、生成文档。这是最常见的,也是Java 最早提供的注解。常用的有@see @param @return 等
2、跟踪代码依赖性,实现替代配置文件功能。比较常见的是spring 2.5 开始的基于注解配置。作用就是减少配置。现在的框架基本都使用了这种配置来减少配置文件的数量。以后java的程序开发,最多的也将实现注解配置,具有很大用处;
3、在编译时进行格式检查。如@override 放在方法前,如果你这个方法并不是覆盖了超类方法,则编译时就能检查出。
元注解
元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解:
可能的ElementType参数有:
CONSTRUCTOR:构造器的声明
FIELD:域声明(包括enum实例)
LOCAL_VARIABLE:局部变量声明
METHOD:方法声明
PACKAGE:包声明
PARAMETER:参数声明
TYPE:类、接口(包括注解类型)或enum声明
SOURCE:注解将被编译器丢弃
CLASS:注解在class文件中可用,但会被VM丢弃
RUNTIME:VM将在运行期间保留注解,因此可以通过反射机制读取注解的信息。 @Document 将注解包含在Javadoc中 @Inherited 允许子类继承父类中的注解
定义一个注解:
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Test {
public String id();
public String name() default “myname”;
}
在注解中一般会有一些元素以表示某些值。注解的元素看起来就像接口的方法,唯一的区别在于可以为其制定默认值。没有元素的注解称为标记注解。
注解的可用的类型包括以下几种:所有基本类型、String、Class、enum、Annotation、以上类型的数组形式。元素不能有不确定的值,即要么有默认值,要么在使用注解的时候提供元素的值。而且元素不能使用null作为默认值。注解在只有一个元素且该元素的名称是value的情况下,在使用注解的时候可以省略“value=”,直接写需要的值即可。
使用注解
注解处理器
注解处理器就是通过反射机制获取被检查方法上的注解信息,然后根据注解元素的值进行特定的处理。
正则表达式
正则表达式(regular expression)
就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。比如 表达式“ab+” 描述的特征是“一个 ‘a’ 和 任意个 ‘b’ ”,那么 ‘ab’, ‘abb’, ‘abbbbbbbbbb’ 都符合这个特征。
正则表达式可以用来:
(1)验证字符串是否符合指定特征,比如验证是否是合法的邮件地址。(2)用来查找字符串,从一个长的文本中查找符合指定特征的字符串,比查找固定字符串更加灵活方便。
(3)用来替换,比普通的替换更强大。
正则表达式规则:
1、普通字符
字母、数字、汉字、下划线、以及后边没有特殊定义的标点符号,都是”普通字符”。表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符。
2、简单的转义字符
一些不便书写的字符,采用在前面加 “\” 的方法。
4、自定义能够匹配 ‘多种字符’ 的表达式
使用方括号 [ ] 包含一系列字符,能够匹配其中任意一个字符。用 [^ ] 包含一系列字符,则能够匹配其中字符之外的任意一个字符。同样的道理,虽然可以匹配其中任意一个,但是只能是一个,不是多个。
5、修饰匹配次数的特殊符号
前面讲到的表达式,无论是只能匹配一种字符的表达式,还是可以匹配多种字符其中任意一个的表达式,都只能匹配一次。如果使用表达式再加上修饰匹配次数的特殊符号,那么不用重复书写表达式就可以重复匹配。
使用方法是:”次数修饰”放在”被修饰的表达式”后边。比如:”[bcd][bcd]” 可以写成 “[bcd]{2}”。
6、其他一些代表抽象意义的特殊符号
一些符号在表达式中代表抽象的特殊意义:
说明:”\b” 与 “^” 和 “$” 类似,本身不匹配任何字符,但是它要求它在匹配结果中所处位置的左右两边,其中一边是 “\w” 范围,另一边是 非”\w” 的范围。
一些符号可以影响表达式内部的子表达式之间的关系:
表达式 作用2
捕获组
捕获组是把多个字符当一个单独单元进行处理的方法,它通过对括号内的字符分组来创建。
捕获组是通过从左至右计算其开括号来编号。例如,在表达式
((A)(B(C))),有四个这样的组:
((A)(B(C)))
(A)
(B(C))
(C)
- 【概念笔记】JAVA基础 - part5
- 【概念笔记】JAVA基础 - part1
- 【概念笔记】JAVA基础 - part2
- 【概念笔记】JAVA基础 - part3
- 【概念笔记】JAVA基础 - part4
- java学习笔记2--基础概念
- Java NIO笔记之IO基础概念
- Gentoo安装笔记(part5)
- Activiti 基础概念 笔记
- 基础概念笔记
- part5
- 学习笔记1-java中常用的几个基础概念
- Apache Mina学习笔记:Java NIO基础概念
- java笔记--Day07--面向对象基础(相关概念)
- java基础概念
- JAVA基础---概念
- 一些JAVA基础概念
- java基础概念
- 关于javascript变量声明、函数声明提升的问题
- 安卓布局 - 表格布局(TableLayout)
- 富文本编辑器的使用
- Codeforces 682E 计算几何
- DOS命令大全
- 【概念笔记】JAVA基础 - part5
- linux安装tensorflow
- centos 升级内核
- CentOS 7 搭建 Java 开发环境详解(RPM)
- Heat maps
- wordpress提高访问速度
- [leetCode刷题笔记]2017.02.08
- CNN初探(一)------补充
- 1050. 螺旋矩阵(25) PAT乙级&&1105. Spiral Matrix (25)PAT甲级