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");	










