目录
反射配置文件:
配置里面的内容基本上都是 键--值 成对成对存在的
反射:
通过配置文件运行类中的方法
className
methoName
java中提供了一个配置文件类
Properties
public String getProperty(String key)
使用此属性列表中指定的键搜索属性。 如果在此属性列表中找不到该键,则会默认属性列表及其默认值递归。 如果找不到属性,该方法返回null 。
public Object setProperty(String key,String value) 提供与getProperty方法的并行性 。 强制使用字符串的属性键和值。 返回的值是Hashtable调用put的结果
===================================================================
动态代理:
在程序运行过程中产生的这个对象,动态代理其实就是通过反射来生成一个代理。
我们需要先创建一个动态代理对象:
public static object newProxyInstance(ClassLoader loader,类[] interfaces,InvocationHandler h)
返回指定接口代理类的实列,该接口将方法调用分派给指定的调用处理程序。
public 类[] getInterfaces() 确定由该对象表示的类或接口实现的接口。
====================================================================
正则表达式
原义字符:
a b c \t \n ...
直接匹配字符串中的字符
元字符:字符类:
“[abc]” 匹配这之中的所有字母
“[^abc]” 取反
元字符:范围类
"[a-z]" 表示匹配a到z的字母
“[A-Za-z]”=“[A-z]”
元字符: 预定义类
\d == [0-9] 数字
\D == [^0-9]非数字
== [\t\n\x0B\f\r] == \s 空白字符
[^ \t\n\x0B\f\r] == \S
\w == [a-zA-Z0-9]
\W == [^a-zA-Z0-9]
\\. 任何字符(与行结束符可能匹配也可能不匹配)需要转义字符
边界字符:
^: 以xxx开头
$: 以xxx结尾
\b: 单词边界
\B: 非单词边界
量词:
?:出现0次或者1次
+:出现1次或者多次
*:出现任意次
{n}:出现正好n次
{n,m}:出现n-m次
{n,}:出现至少n次
分组:
分组符号为()
反向引用:
$
先分组,$代替分组