JAVA学习笔记(十)

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 要快。

posted @ 2018-04-03 16:49  445412434  阅读(153)  评论(0编辑  收藏  举报