在API中, 提示的已过时的方法是什么?
在Java版本的迭代中 ,
出现了一些新的功能, 也否定了早期的一些旧的不好的功能 !
为什么采用标记已过时的方式, 而不是删除 !
原因是: 有些程序, 就是通过早期版本的jdk进行的开发, 软件可能已经上线, 不能因为Java的更新, 导致Java语言早期开发的软件不可用 !
String
构造方法:
String(String text)
参数1. 要创建字符串所传入的一个字符串
String(byte[] bytes, int offset, int length)
参数1. 要创建的字符串的字节数组
参数2. 字节数组开始的下标 一般使用0
参数3. 取字节数组中多少个字节 一般使用bytes.length
String(byte[] bytes, String charsetName)
参数1. 要创建字符串的 字节数组
参数2. 传入编码表的名称 , 表示根据什么样的编码表来创建
String(char[] value, int offset, int count)
参数1. 要创建字符串的 字符序列(字符数组)
参数2. 数组的开始偏移位置
参数3. 数组的结束位置
字符串字面量
一个字符串字面量 就是一个String的匿名对象 !
例如:
" "
""
"hahaha"
"董飞的小媳妇儿"
面试题:
自行分析 ,如下两个创建对象的方式的区别:
String text = "你好Java";
-----------------------------------------------------
String text = new String("你好Java");
通过new方式传入字符串创建的String 会创建两次对象, 且第一次对象会变成垃圾 !
-----------------------------------------------------
正则表达式
表示字符的符号:
[abc]: a、b、c中任意一个字符
[^abc]: 除了a、b、c的任意字符
[a-z]: a、b、c、……、z中的任意一个字符
[a-zA-Z0-9]: a~z、A~Z、0~9中任意一个字符
[a-z&&[^bc]] :a~z中除了b和c以外的任意一个字符,其中&&表示“与”的关系
快捷的符号:
. : 任意一个字符
\d : 任意一个数字字符,相当于[0-9]
\D : 任意一个非数字字符,相当于[^0-9]
\s : 空白字符,相当于[\t\n\x0B\f\r]
\S : 非空白字符,相当于[^\s]
\w : 任意一个单词字符,相当于[a-zA-Z_0-9]
\W : 任意一个非单词字符,相当于[^\w]
数量符号:
X? : 表示0个或1个X
X* : 表示0个或任意多个X
X+ : 表示0个到任意多个X(大于等于1个X)
X{n} : 表示n个X
X{n,} : 表示n个到任意多个X(大于等于n个X)
X{n,m} : 表示n个到m个X(大于等于n个且小于m个X)
特殊符号:
&&:与
|:或
应用的范围很广 , 大多的计算机语言都对其进行了支持, 甚至一些脚本语言也有应用 !
abcdef
字母开头的帐号: [a-zA-Z]\w{5,18}
手机号码: (13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|17[0|1|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}
日期: 2017-11-3
\d{4}-(1[0|1|2]|[1|2|3|4|5|6|7|8|9])-([1|2|3|4|5|6|7|8|9]|[1|2]\d{1}|3[0|1])
身份证号码:
\d{17}[X|\d]
&&: 与
|: 或
在String中, 正则表达式 应用到哪里:
- split(正则表达式或普通文本);
将字符串按照指定的正则表达式 或 字符 拆分为一个字符串数组
- replace(正则表达式或普通文本,新的字符串)
根据正则表达式 匹配字符串中的某一部分内容, 将其替换为新的字符串
例如:
张三的手机号码为: 13112345678
- matches(正则表达式)
判断字符串是否匹配指定的正则表达式 , 匹配则返回true
StringBuilder|StringBuffer
构造方法列表:
常用3个构造方法:
1. StringBuilder() | StringBuffer()
无参构造器 , 创建了一个不包含任何字符的StringBuilder , 初始缓冲区容量为16
2. StringBuilder(int size)|StringBuffer(int size)
1参构造器 , 创建了一个不包含任何字符的StringBuilder , 初始缓冲区容量为size
3. StringBuilder(String text)|StringBuffer(String text)
1参构造器 , 创建了一个包含text内容的StringBuilder
常用方法
- append: 追加新的内容
参数1: 要追加的新内容, 此方法重载较多, 可以传入任意类型数据!
这个方法的返回值 是对象自身 , 所以在一些源码中 经常看到如下代码:
sb.append().append().append()...
- insert(int offset, CharSequence content): 插入字符串
参数1. 要插入的位置 (索引,下标)
参数2. 要插入的字符串内容
- delete(int start,int end): 移除指定范围的内容
参数1. 要移除数据的起始位置
参数2. 要移除数据的结束位置
- replace(int start,int end,String newContent)
参数1. 要被替换的内容的开始位置
参数2. 要被替换的内容的结束位置
参数3. 新的内容
- toString(): 转换字符串
- reverse():缓冲区中字符序列的进行反转
StringBuilder 和 StringBuffer的区别
他们两个都是 AbstractStringBuilder类的子类
内部实现使用的都是父类, 区别仅仅在于 ,
StringBuffer是线程安全的, StringBuilder是线程不安全的
Date类 (了解)
用于封装日期和时间
常用方法:
无参构造方法: 创建一个当前时间和日期的Date对象
时间戳:
getTime(): 获取一个long类型的,长度为13位的时间戳
java.text.SimpleDateFormat类 (了解)
日期格式化操作(将一个date转换为字符串表示形式)
构造方法: new SimpleDateFormat(String 日期格式)
y : 年
M : 月
d : 日
H : 时(24小时制)
m : 分
s : 秒
sss : 毫秒
E : 星期
a : 上午/下午 am pm
h : 时(12小时制)
常用的SimpleDateFormat写法:
SimpleDateFormat foramt = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
格式化日期的方法(date-->string) format
SimpleDateFormat对象的foramt方法, 传入一个Date对象, 转换为日期字符串
例如:
SimpleDateFormat foramt = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String text = foramt.format(new Date());
System.out.println(text);
格式化日期字符串的方法(string-->date) parse
SimpleDateFormat 对象的 parse方法, 传入一个具有特定格式的字符串, 将其转换为Date对象
例如:
SimpleDateFormat foramt = new SimpleDateFormat("yyyy年MM月dd日\tHH:mm:ss");
Date date = format.parse("2017年12月03日 15:35:13");
System.out.println(date.getTime());
Calendar类
获取对象:
Calendar c = Calendar.getInstance();