Java的API及Object类
1.1Java的API
Java 的API(API: Application(应用) Programming(程序) Interface(接口))
Java API就是JDK中提供给我们使用的类,这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。
1.2Object类概述
Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。所有类在创建对象的时候,最终找的父类就是Object。
1.3equals方法
equals方法,用于比较两个对象是否相同,它其实就是使用两个对象的内存地址在比较。Object类中的equals方法内部使用的就是==比较运算符。
import java.util.ArrayList; public class Test { public static void main(String[] args) { Person p1=new Person("张三",30); Person p2=new Person("李四",30); //p1=p2; //ArrayList arr=new ArrayList(); //boolean b=p1.equals(p1); // if(b){ // System.out.println("两个人年龄相同"); // }else{ // System.out.println("两个人年龄不同"); // } String s=p1.toString(); System.out.println(s); System.out.println(p1); String s2=p2.toString(); System.out.println(s2); } }
1.4toString方法
public static void main(String[] args) { // TODO Auto-generated method stub //通过使用平台的默认字符集解码指定的byte数组, //GBK编码,字节是正数的话,ASCII字符集 //字节是负数的话,就根据GBK字符集 byte [] b= {-60,-61,-62,-63,-64,-65}; String s=new String(b); //System.out.println(s.toString()); String s2=new String(b,1,2); System.out.println(s2.toString()); char[] c= {'李','云','龙'}; String s3=new String(c,1,2); System.out.println(s3.toString()); } }
String类
2.1String类概述
String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。
一旦这个字符串确定了,那么就会在内存区域中就生成了这个字符串。字符串本身不能改变,但str变量中记录的地址值是可以改变的。
字符串的本质是一个字符的数组。
字符串有大量的重载的构造方法。通过String类的构造方法可以完成字符串对象的创建。
2.2String类构造方法
String s1 = new String(); //创建String对象,字符串中没有内容 byte[] bys = new byte[]{97,98,99,100}; String s2 = new String(bys); // 创建String对象,把数组元素作为字符串的内容 String s3 = new String(bys, 1, 3); //创建String对象,把一部分数组元素作为字符串的内容,参数offset为数组元素的起始索引位置,参数length为要几个元素 char[] chs = new char[]{’a’,’b’,’c’,’d’,’e’}; String s4 = new String(chs); //创建String对象,把数组元素作为字符串的内容 String s5 = new String(chs, 0, 3);//创建String对象,把一部分数组元素作为字符串的内容,参数offset为数组元素的起始索引位置,参数count为要几个元素 String s6 = new String(“abc”); //创建String对象,字符串内容为abc
2.3String类的方法查找
部分方法实例
public class Test { public static void main(String[] args) { // TODO Auto-generated method stub String s="Christmas"; int l=s.length(); String s2=s.substring(1); String s3=s.substring(2, 5); System.out.println(s3);//截取字符串([起点,终点)) System.out.println(s2);//截取字符串(起点) boolean b=s.startsWith("c");//判断是否以传入的字符穿开头 boolean c=s.endsWith("s"); boolean b2=s.contains("h");//判断字符串中是否有传入的值 int a=s.indexOf("s");//返回字符串第一次出现的索引值如果没有返回-1 //System.out.println(a); byte[] b3=s.getBytes(); for(int i=0;i<b3.length;i++) { System.out.println(b3[i]); } char[] c1=s.toCharArray(); //遍历输出 } }
字符缓冲区
3.1StringBuffer类
StringBuffer又称为可变字符序列,它是一个类似于 String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。原来StringBuffer是个字符串的缓冲区,即就是它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作。
StringBuffer的方法使用实例
public class Test { public static void main(String[] args) { // TODO Auto-generated method stub /* * String是个不可变的字符数组 * StringBuffer是个可变长度的字符串序列 * */ StringBuffer bu=new StringBuffer(); bu.append("张三").append("李四"); // bu.delete(1, 3);//删除字符串缓冲区的指定字符([起点,终点)) bu.insert(1,"Alice");//在字符串缓冲区内插入字符串 bu.replace(1, 2, "可爱的");//替换([起点,终点)) bu.reverse();//逆序输出 String a=bu.toString(); System.out.println(bu); System.out.println(a); } }
3.2对象的方法链式调用
创建一个字符串缓冲区对象。用于存储数据。 StringBuffer sb = new StringBuffer(); 添加数据。不断的添加数据后,要对缓冲区的最后的数据进行操作,必须转成字符串才可以。 String str = sb.append(true).append("hehe").toString();
3.3StringBuilder类
此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。