常量池:
jvm在使用字符串类型时,为了提高内存的使用率,当使用字面量(常量)
进行给变量赋值时,在方法区内提供了用于存储字面量对象的一个常量池。
原理:
当使用字面量赋值时,先去方法区内的常量池中查询是否有相同字面量的对象,
如果有,就返回常量池中对象的地址,没有的话,在常量池中创建此字面量的对象再返回。
正则表达式:
(1)很多时候,我们都需要对一些字符进行匹配,查找,替换等复杂的操作。我们可以通过”正则表达式”来帮助实现这些复杂操作。
(2)正则表达式, 它是一个有“特殊意义”的字符串,定义了一种”校验规则”
常用字符集
[]:表示匹配括号内的一个字符
[abc]:表示匹配abc中的任意一个 字符
():分组
()将正则表达式的部分规则进行了划分,可以使用|来进行选择其中一组规则
reg:手机号前带有区号
+861375651674
0086 1375651674
正则表达式:
(+86|0086)?\s?1\d{10}
^和
有时,我们想校验一个字符串是不是从头到尾都符合一个规则校验此时需要在正则表达式前后添加相应的符号::添加在正则表达式前,表示要校验的普通字符串的开头就必须符合规则
有
时
,
我
们
想
校
验
一
个
字
符
串
是
不
是
从
头
到
尾
都
符
合
一
个
规
则
校
验
此
时
需
要
在
正
则
表
达
式
前
后
添
加
相
应
的
符
号
:
:
添
加
在
正
则
表
达
式
前
,
表
示
要
校
验
的
普
通
字
符
串
的
开
头
就
必
须
符
合
规
则
:添加在正则表达式后,表示要校验的普通字符串的末尾必须符合规则
前后都有此符号时:考虑的普通字符串的整体
reg:
“^[\d]{6,8}”
“123456aaaaaaaaa”可以满足上述正则表达式
“[\d]{6,8}
”“abc12345678”可以满足上述正则表达式“[\d]6,8
”
“
a
b
c
12345678
”
可
以
满
足
上
述
正
则
表
达
式
“
[
\d
]
6
,
8
”
“12345678”
matchs(String regex):此方法验证不了我们自定义添加的^或 因此当把正则表达式传入方法内后,内部逻辑帮助添加了和 因 此 当 把 正 则 表 达 式 传 入 方 法 内 后 , 内 部 逻 辑 帮 助 添 加 了 和
总结:正则表达式 是一个灵活,逻辑性强的规则校验语法。
通常用于文本中