java SE Day13 火推

在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(); 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值