学习目标:
了解String StringBuffer String之间的关系 了解Data类的方法及使用学习内容:
1、 String StringBuffer String之间的关系 2、 了解Data类的方法及使用学习产出:
1.String StringBuffer StringBuilder的关系
1.String是不可变的序列,StringBuffer和StringBuilder是可变序列
- String StringBuffer StringBuilder三者的异同?
-
String:不可变的字符序列:底层使用char[]存储
-
StringBuffer:可变的字符序列,线程安全的,效率低,底层使用char[]存储
-
StringBuilder:可变的字符序列,线程不安全的,效率高,底层使用char[]存储
底层创建的长度是原有长度+2 -
如果添加数据底层数组不够,那就需要扩容底层数组
-
默认情况下跨容为原来的容量2倍+2,同时将原有的数组中的元素复制到新的数组中
-
指导意义:开发中建议使用StringBuffer(int capacity) 或者 StringBuilder(int capacity)
-
2.StringBuffer的常用方法
- StringBuffer的常用办法
-
append()用于字符拼接
-
delete(int start,int end):删除指定位置的内容
-
replace(int start,int end,String str): 把[start,end)位置替换为str
-
insert(int offset,xxx)在指定位置插入xxx
-
reverse():把当前字符序列逆转
-
indexOf(String str)
-
substring(int start,int end)
-
charAt(int n)
-
setcharAt(int n,char ch)
-
总结:
-
增:append
-
删:delete
-
改:setChartAt
-
查:charAt
-
插:insert
-
长度:length
-
遍历:for()+charAt()
-
测试代码如下:
public void test2(){
StringBuffer s1 = new StringBuffer("abc");
s1.append(1);
s1.append("1");
System.out.println(s1);
// s1.delete(2,4);
// System.out.println(s1);
// s1.replace(2,4,"hello");
// s1.insert(2,false);
// s1.reverse();
String s2 = s1.substring(1, 3);
System.out.println(s1);
System.out.println(s1.length());
System.out.println(s2);
}
2.了解Data
1.一共有java.util.Data类和java.sql.Date类
- 1,两个构造器的使用
*构造器一:Data() 当前对应的时间对象
*构造器二:创建指定的时间 创建指定毫秒数
*- 2,两个方法的使用
-
toString()显示当前的年,月,日,时,分,秒
-
getTime()获取当前Data对象对应的毫秒数。(时间戳)
-
如何实例化
-
sql.Date —>java.util.Date对象
代码示例如下:
public void test2(){
//构造器一:Data() 当前对应的时间对象
Date date1 = new Date();
System.out.println(date1.toString());
System.out.println(date1.getTime());
//构造器二:创建指定的时间 创建指定毫秒数
Date date2 = new Date(1611279558248L);
System.out.println(date2.toString());
java.sql.Date date3 = new java.sql.Date(1611279558248L);
System.out.println(date3);
//如何java.sql.Date --->java.util.Date对象
//java.util.Date对象 转换为 java.sql.Date
//情况一:
// Date date4 = new java.util.Date(1611279558248L);
// java.util.Date date5 = (java.sql.Date)date4;
//情况二:
Date data6 = new Date();
java.sql.Date date7 = new java.sql.Date(data6.getTime());
}
@Test
public void test1(){
long time = System.currentTimeMillis();
//返回当前时间与1970年1月1日0时0分0秒之间的以毫秒为单位的时间差
//称为时间戳
System.out.println(time);
}