javaAPL

常用javaAPL整理 javaSE

Java SE (I)

String

String类使用final来修饰,所以不可以被继承。
字符串是不可变对象,字符串内容一旦创建,就不可变,只要改变字符串内容,就会创建新的字符串对象。
int length(); // 返回此字符串的长度
int indexOf(String str); // 返回给定字符串在此字符串中第一次出现处的索引
int indexOf(String str, int fromIndex); // 返回给定字符串在此字符串中从给定位置后第一次出现处的索引
int lastIndexOf(String str); // 返回给定字符串在此字符串中最后一次出现的索引
String substring(int beginIndex, int endIndex); // 返回此字符串指定索引范围之间的子字符串
String substring(int beginIndex); // 返回此字符串指定开始索引到末尾之间的子字符串
String trim(); // 返回此字符串去除前后空白后的字符串
char charAt(int index); // 返回此字符串指定索引处的字符
boolean startsWith(String str); // 测试此字符串是否以指定的前缀开始
boolean endsWith(String str); // 测试此字符串是否以指定的后缀结束
String toUpperCase(); // 将此字符串中的所有字符转换为大写
String toLowerCase(); // 将此字符串中的所有字符转换为小写
static String valueOf(T t); // 返回给定参数的字符串表示形式
boolean matches(String regex); // 测试此字符串是否匹配给定的正则表达式
String[] split(String regex); // 将此字符串按照满足正则表达式的部分进行拆分
String replaceAll(String regex, String str); // 将当前字符串中所有满足给定的正则表达式的部分替换为给定的字符串
String replace(String str1, String str2);

StringBuilder 和 StringBuffer

StringBuilder和StringBuffer是可变的字符序列,解决String字符串操作时会创建新对象的效率问题。
StringBuilder是从JDK1.5版本后才有的,不是线程安全的,效率比StringBuffer要快。
StringBuilder append(T t); // 将指定的内容追加到此字符串的末尾
StringBuilder replace(int start, int end, String str); // 将此字符串中指定范围的字符串替换为给定的字符串
StringBuilder insert(int offset, T t); // 在此字符串中指定的位置开始插入给定的内容
StringBuilder delete(int start, int end); // 删除此字符串中指定范围的子字符串
StringBuilder reverse(); // 将此字符串反转

注意: StringBuilder 和 StringBuffer 都没有重写equals方法,所以我们要比较它们的字符序列是否一样,要先转为String后再用e quals比较。

正则表达式

正则表达式就是使用一系列预定义的特殊字符来描述一个字符串的格式规则,然后使用该格式规则匹配某个字符串是否符合格式要求。
3.1)字符集合:
[] //用来描述单一字符,方括号内部可以定义这个字符的内容,也可以描述一个范围
[abc] //a、b、c中任意一个字符
[^abc] //除了a、b、c的任意字符
[a-z] //a~z之间的任意一个字符
[a-z0-9A-Z] //az、09、A~Z中任意一个字符
[a-z&&[^bc]] //a~z中除了b、c外的任意一个字符,&&表示与
3.2)预定义字符集合:
. //表示任意一个字符
\d //表示任意一个数字,相当于[0-9]
\w //表示单词字符,相当于[a-zA-Z0-9_]
\s //表示空白字符,相当于[\t\n\f\r\x0b]
\D //表示非数字字符
\W //表示非单词字符
\S //表示非空白字符
3.3)数量词
? //表示0个或1个
* //表示0个或多个
+ //表示1个或多个
{n} //表示n个
{n, } //表示n个或多个
{n, m} //表示n个到m个
3.4)分组
() //将括号中的内容看做一个整体,()中可以使用"|"来表示或关系
3.5)匹配
^ //表示字符串开始
$ //表示字符串结束
^regex$ //要求字符串必须从头到尾都满足该格式规则
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&到 12月17日

Object

Object类是java中所有类的顶级父类。若我们定义的一个类没有显式的使用extends继承某个类时,默认就是继承自Object的。
4.1)方法
String toString(); //用一个字符串来描述当前对象
boolean equals(Object obj); //判断两个对象间的内容比较是否一致
int hashCode(); //返回当前对象的hash值,重写该方法时建议同时重写equals方法
void wait(); //让线程进入等待状态
void notify(); //唤醒对于等待状态的线程
void notifyAll(); //唤醒该对象全部等待的线程
void finalize(); //GC回收该对象前会调用该方法
4.2)equals 与 == 的区别
"“是值比较,对于引用类型变量而言,该变量保存的是对象的地址,所以使用”"比较时,意思为两个变量的地址是否相等,换句话说就是看两个变量引用的是否为同一个对象
equals是内容比较,对于两个引用变量而言,是比较两个变量所引用的对象内容是否相同。
4.3)final, finally, finalize 的区别?
final是修饰词,可以修饰类、方法、变量,修饰类时该类不能被继承,修饰方法时该方法不能被重写,修饰变量时初始化后值不可被改变,与static一起修饰变量时称为常量;
finally是异常处理机制中的一个关键词,可以在try或catch后面使用,表示无论try里面的代码不管是否有异常,finally中的代码都会执行;
finalize是Object中的一个方法,在GC回收该对象前会调用该方法,一般在该方法中做一些资源释放工作,但是一般不用。
4.4)wait() 和 sleep() 的区别?
wait()是Object中的方法,sleep()是Thread中的方法;
wait()可以让线程进入等待状态,需要调用notify或notifyAll方法来唤醒才能重新回到可运行状态;sleep()可以让线程进入睡眠状态,睡眠时间一到自动回到可运行状态;
wait()方法在阻塞期间,会释放对象锁;sleep()方法在阻塞期间不会释放对象锁。

包装类型

5.1)包装类解决的问题是基本类型不能参与面向对象开发,解决办法就是把基本类型转换成引用类型。
基本类型 包装类型
byte java.lang.Byte
short java.lang.Short
int java.lang.Integer
long java.lang.Long
float java.lang.Float
double java.lang.Double
char java.lang.Character
boolean java.lang.Boolean
5.2)想将一个基本类型当做引用类型使用时,编译器会自动加上代码,使得基本类型转换为引用类型,这个过程称为"自动装箱"
5.3)当编译器发现我们需要将一个引用类型转换为基本类型时,自动添加代码进行转换,这种从引用类型转换为基本类型的过程称之为"自动拆箱"
5.4)那么java是如何实现的自动拆装箱呢?
事实上JVM不支持该特性,自动拆装箱只是编译器在编译过程中的"预处理"操作。编译器在看到需要在包装类与基本类型之间转换时,会在编译为字节码时进行改变:
源代码中 编译后的字节码中
Integer a = 100 => Integer a = Integer.valueOf(100);
Integer b = 200 => Integer b = Integer.valueOf(200);
Integer c = a+b => Integer c = Integer.

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值