Java常用API(类)----还用很多可以查手册
Java中Object类的方法
Object类是所有类的根父类, Java中的类要么直接继承Object要么间接继承Object
Java中的继承是可传递的, 所以Object类的方法所有的类都能继承到
protected Object:clone() 对象的克隆
对象克隆, 是在堆中再创建一个完全一样的对象
boolean:equals(Object obj) 判断对象的内容是否一样.
使用关系运算符 == 判断两个引用是否指向堆中的同一个对象
用equals()方法判断两个对象的内容是否一样,即各个字段值是否相等
protected void:finalize() 当垃圾回收器回收这个对象时,会调用该方法
当一个对象没有变量引用它时, 垃圾回收器就会把这个对象释放, 回收该对象时会调用对象的finalize()方法, 垃圾回收器在什么时候回收这个对象不确定, finalize()方法的执行时间不确定, 该方法一般不用
Class<?>:getClass() 返回对象的运行时类.
返回对象的运行时类对象
int:hashCode() 返回对象的哈希码.
如果两个对象equals()相等, 这两个对象的哈希码也应该相等
在重写equals()方法时,必须同时重写hashCode()
void:notify() 唤醒等待中的线程
线程等待/唤醒线程 ( wait()/notify() )
void:notifyAll()
String:toString() 把对象转换为字符串.
作用是把对象转换为字符串
void:wait() 线程等待
Java字符串类型
***String/StringBuffer/StringBuilder三个类,都是表示字符串的类 ***
String常用操作:
● String常用操作
char:charAt(int index) 返回指定索引位置的字符
int:compareTo(String anotherString) String类实现了Comaprable接口,可以比较两个字符串的大小, 遇到第一个不相同的字符, 码值相减
String:concat(String str) 在当前字符串的后面连接str字符串
boolean:contains(CharSequence s) 在当前字符串中判断是否包含指定的字符串s, 如果包含返回true
boolean:endsWith(String suffix) 判断当前字符串是否以suffix结尾
boolean:equals(Object anObject) 判断两个字符串的内容是否一样
boolean:equalsIgnoreCase(String anotherString)忽略大小写
staticString:format(String format, Object… args) 字符串的格式化
byte[]:getBytes() 返回当前字符串在默认的编码格式下对应的字节数组
byte[]:getBytes(String charsetName) 返回当前字符串在指定的编码格式下对应的字节数组
void:getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 把当前字符串[srcBegin,srcEnd) 范围内的字符复制到dst数组中desBegin开始的位置
int:hashCode()
int:indexOf(int ch) 返回字符ch在当前字符串中第一次出现的位置
int:indexOf(int ch, int fromIndex). 返回字符ch在当前字符串中从fromIndex开始第一次出现的位置
int:indexOf(String str) 返回字符串str在当前字符串中第一次出现的位置
int:indexOf(String str, int fromIndex) 返回字符串str在当前字符串中从fromIndex开始第一次出现的位置
String:intern()返回当前字符串对应的字符串常量
boolean:isEmpty() 判断当前字符串是否为空串
int:lastIndexOf(int ch) 返回字符ch在当前字符串中最后一次出现的位置
int:lastIndexOf(int ch, int fromIndex)
int:lastIndexOf(String str) 返回字符串str在当前字符串中最后一次出现的位置
int:lastIndexOf(String str, int fromIndex)
int:length() 返回字符串中字符的个数
boolean:matches(String regex) 判断当前字符串是否匹配指定的正则表达式
String:replaceAll(String regex, String replacement) 把当前字符串中符合regex正则表达式的字符串替换为replacement
String[]:split(String regex) 使用正则表达式regex把当前字符串进行分隔
boolean:startsWith(String prefix)
String:substring(int beginIndex) 返回从beginIndex开始到最后的子串
String:substring(int beginIndex, int endIndex) 返回从beginIndex开始到endIndex范围内的子串
char[]:toCharArray() 把字符串转换为字符数组
String:toLowerCase() 把大写字母转换为小写字母
String:toString()
String:toUpperCase() 把小写字母转换为大写字母
String:trim() 去掉前后的空白字符
staticString:valueOf(int i) 把基本类型转换为字符串
staticString:valueOf(Object obj)
String是不可变的:
StringBuilder/StringBuffer
1、String内容是不可变的字符,String底层使用了一个不可变的字符数组(final char[])
注:final修饰一个类,这个类不可以被继承,若是修饰一个变量,这个变量被赋值后不可以改变
StringBuilder和StringBuffer底层是可变的字符数组
String进行拼接 String = “a”+“b”;//在此创建了三个对象2)、
StringBuilder sb = new StringBuilder();
sb.append(“a”).append(“b”);
//仍然还是原来的对象所以拼接字符串尽量不要用String进行拼接
StringBuilder是线程不安全的效率高,StringBuffer是线程安全的,效率低
StringBuffer在append方法上增加了sycronize线程锁
常用方法:
append方法
public StringBuffer append(boolean b)
该方法的作用是追加内容到当前StringBuffer对象的末尾,类似于字符串的连接,调用该方法以后,StringBuffer对象的内容也发生改 变。
deleteCharAt方法
public StringBuffer deleteCharAt(int index)
该方法的作用是删除指定位置的字符,然后将剩余的内容形成新的字符串。
insert方法
public StringBuffer insert(int offset, boolean b),
该方法的作用是在StringBuffer对象中插入内容,然后形成新的字符串
reverse方法*
public StringBuffer reverse()
该方法的作用是将StringBuffer对象中的内容反转,然后形成新的字符串
setCharAt方法
public void setCharAt(int index, char ch)该方法的作用是修改对象中索引值为index位置的字符为新的字符char.
trimToSize方法
public void trimToSize()
该方法的作用是将StringBuffer对象的中存储空间缩小到和字符串长度一样的长度,减少空间的浪费,和String的trim()是一样的作用,不在举例。
length方法
该方法的作用是获取字符串长度 ,不用再说了吧。
setlength方法
该方法的作用是设置字符串缓冲区大小。
StringBuffer sb=new StringBuffer();
sb.setlength(100);
如果用小于当前字符串长度的值调用setlength()方法,则新长度后面的字符将丢失。
sb.capacity方法
方法的作用是获取字符串的容量。
StringBuffer sb=new StringBuffer(“string”);
int i=sb.capacity();
ensureCapacity方法
方法的作用是重新设置字符串容量的大小。
StringBuffer sb=new StringBuffer();
sb.ensureCapacity(32); //预先设置sb的容量为32
getChars方法
该方法的作用是将字符串的子字符串复制给数组。
getChars(int start,int end,char chars[],int charStart);
java包装类
常用方法:
就是将int/String/long…变成对象,包装类;
public static void main(String[] args) {
Integer i1 = new Integer(147);
//每个包装类都有一个value字段,保存的是这个包装类对应的基本类型数据
//1) 从Number继承的方法,可以把包装类对象转换为基本类型的数据, 实际上是把value字段进行强制类型转换
double dd = i1.doubleValue();
byte bb = i1.byteValue(); //-128~127
System.out.println( dd );
System.out.println( bb );
//2)包装类都实现了Comparable接口,重写了compareTo()方法, 可以比较两个包装类的大小, 根据value字段
Integer i2 = new Integer("258");
System.out.println( i1.compareTo(i2)); //-1 表示i1小于i2
Boolean bb1 = new Boolean(true);
Boolean bb2 = new Boolean(false);
System.out.println( bb1.compareTo(bb2)); //1
//3) 都重写了equals()
System.out.println( i1.equals(i2));
System.out.println( bb1.equals(bb2));
//小数采用近似值保存,有时不准确, 如0.1在计算机中是无法准确的表示
System.out.println( Double.doubleToLongBits(1.1));
System.out.println( Double.doubleToLongBits(0.9));
System.out.println( 2 - 1.1 );
System.out.println( Double.doubleToLongBits(2-1.1));
System.out.println( Double.doubleToLongBits(2-1.1) == Double.doubleToRawLongBits(0.9));
//4) Integer.parseInt(String)可以把字符串转换为int数据
String text = "456";
int num = Integer.parseInt(text);
System.out.println( num );
//Double.parseDouble(String)可以把字符串转换为double数据
double pi = Double.parseDouble("3.14");
//Boolean.parseBoolean(String) 可以把字符串转换为boolean数据
boolean flag = Boolean.parseBoolean("true");
//在把字符串转换为基本类型数据时, 字符串要符合目标类型的格式
// num = Integer.parseInt("3.14"); //java.lang.NumberFormatException
//5) 把十进制数转换为二进制/八进制/十六进制
System.out.println( Integer.toBinaryString(100));
System.out.println( Integer.toOctalString(100));
System.out.println( Integer.toHexString(100));
//6) toString(int) 把基本类型转换为字符串
text = Integer.toString(100);
text = Double.toString(3.14);
text = Boolean.toString(false);
//7) valueOf() 把基本类型/字符串转换为包装类对象
i1 = Integer.valueOf(258);
i1 = Integer.valueOf("147"); //字符串要符合数字格式
Double double1 = Double.valueOf(3.14);
double1 = Double.valueOf("3.56");
Boolean boolean1 = Boolean.valueOf(false);
boolean1 = Boolean.valueOf("adjklfj");