JAVA总结 DAY12 0814 Vimcelia

回顾:

1.api是开发的一个帮助文档
2. 类与库 :
第一种: jdk
第二种:自己封装
第三种:第三方提供
3.用第三方库的步骤:
1.下载
2.导包
3.新建lib,加入依赖
4. 用类与方法

object:

所有的类的直接父类与间接父类

基础方法
hashCode()  

获取哈希值

getClass().getName    

获取包名加上类名

toString( ) 

默认返回的

恒等于(==) 与equals 的区别:

恒等于(==)如果比较基本数据类型是比较值,如果是比较引用数据类型的话比较的是地址;
equals 比较的一直都是内存地址

Scanner

获取键盘里的数据
使用时导包 java.util

StringBuffer :

1.线程安全的可变字符序列(可变的字符串) JDK1.0
2.一个类似于 String 的字符串缓冲区
3. 某些方法调用可以改变该序列的长度和内容 append() insert()添加

String 与 StringBuffer 对比

相同点:都是对字符序列进行操作
不同点:
1.String 的数据是不可变的 ,而StringBuffer 的内容是可变的
2. StringBuffer 自带缓存区,读取数据块,效率更高

StringBuffer的构造:
1.StringBuffer( ) 无参的构造 :

默认会给16个字符大小的缓冲区

2.capacity( )

是获取缓冲区容量的大小

3.StringBuffer(int capacity)

会默认给一个容量的大小值

StringBuffer常规的一次方法
追加:

1.append( )
向末尾追加数据
2. insert(int offset, char c)
向指定位置追加数据 offset 参数传递的是追加的索引 char 传递的是追加的字符

删除 :

1.deleteCharAt(int index)
根据索引进行删除
2.delete(int start, int end)
根据区间进行删除 start:开始区间 end:结束区间 索引从0 开始( 包头不包尾)

获取
1.charAt(int index)   

根据索引获取字符

2.indexOf(String str)  

查找是否存在这个字符,存在返回当前的索引,不存在返回-1

3.length( ) 

获取字符串的长度

4.replace(int start, int end, String str)  

替换的方法, 根据区间来进行替换

5.reverse( )   

控制翻转的方法

6.toString()   

转换成String类型的方法

StringBuffer 与 String的相互转换
1.String转换成一个StringBuffer的几种方法:

1.通过构造方法

new  StringBuffer("abc");

2.通过调用其append方法

new  StringBuffer().append("abc")';
2. StringBuffer转换成一个String的几种方法

1.通过方法

toString( )  

2.通过String构造方法

new String(sb) 
StringBuilder

一个可变的字符序列(与StringBuffer方法相同)

StringBuffer与StringBuilder的区别

1.版本不一样:StringBuffer 是jdk1.0 ;StringBuilder是jdk1.5
2.安全性:StringBuffer多线程安全;StringBuilder 多线程不安全
3.效率性: StringBuffer效率低 (开发里使用这个多一点);StringBuilder 效率高

包装类

包装类型 int ==>Integer ;char ==> Character
其它的包装类型都是把首字母换成大写

包装类型的好处:

1.能够使用包装类型的方法
2. 类型能够相互转换
3. 集合里的数据类型都必须是引用数据类型

Integer:

类在对象中包装了一个基本类型 int 的值,Integer 类型的对象包含一个 int 类型的字段

构造方法:

1.public Integer(int value)
2.public Integer(String s) (传递的参数是 String类型, 但是必须是数字)
否则会出现这个异常 : java.lang.NumberFormatException

常量:(所有包装类都有这三个常量)
public static final int MAX_VALUE   

获取int类型最大的值

public static final int MIN_VALUE   

获取int类型最小的值

public static final int SIZE    
获取  int  类型的位数  
常规的方法 :
public byte byteValue()       

返回值是一个byte值1.相互转换的时候不要超过最大的范围

静态方法:
public static int parseInt(String s) 

把String转换成int类型的方法(最常用)

public static String toBinaryString(int i)  

把int 类型转换成 二进制

public static String toOctalString(int i)  

把 int 类型转换成 八进制

public static String toHexString(int i)    

int 类转换为 16进制

public static Integer valueOf(int i)   

把int 类型转换成包装类

String  int   Integer  

数据类型的相互转换

String转换成int类型的三种方式

1.通过构造:new Integer( )
2.通过: parseInt ( String s)(常用)
3. valueOf( String str )

int 类型转换成String类型

1.new String(int i)
2.拼接 +""(常用)
3. toString()方法

int 类型转换成 Integer 类型

1.通过构造方法 new Integer()
2. valueOf(int i)

Integer转换成 int 类型

intValue( ) 直接赋值(Integer i =数字)

自动包装 :把基本数据类型转换成包装类 (穿了一层衣服)
自动拆箱: 把包装类转换成 基本数据类型(脱了这一层衣服)

手动装箱 :Integer integer = new Integer(10);
手动拆箱 : intValue( );

正则表达式:

是一个字符串 (校验规则的字符串),主要是做验证,
优点:把复杂的问题的简单化
坏处:记忆量大,同时还不一定写对

语法: matches(String regex)

检验这个正则与该字符串是否匹配

字符类

[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集)
[a-z&&[def]] d、e 或 f(交集)
[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去)
[a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去)

预定义字符类

任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]

Greedy 数量词

X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次

正则的三个方法 :
1.比较 matches(str)
2.split("")
3. replaceAll(reg,"")

总结

今天学习了StringBuffer类的方法和包装类以及正则,这三个东西抽象性比较强,很难说死记硬背把他们背下来,但是可以通过敲更多的代码熟悉它们的使用,其中正则表达式还需要理解其中的意思才能不容易写错,这都需要我们锻炼自身的记忆以及运用的能力,同时在面对需求的时候能狗第一时间滤清思路

疑问

正则表达式的概念还不是十分明确,同时其他方法还是很难第一时间想到需要用什么。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值