Java基础知识学习10-常用的API-01

APIAPI: Application(应用) Programming(程序) Interface(接口)

Java API就是JDK中提供给我们使用的类,这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。

Object类

Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。所有类在创建对象的时候,最终找的父类就是Object

Object类---equals()方法

   equals方法,用于比较两个对象是否相同,它其实就是使用两个对象的内存地址在比较。Object类中的equals方法内部使用的就是==比较运算符。

    开发中要比较两个对象是否相同,经常会根据对象中的属性值进行比较,也就是在开发经常需要子类重写equals方法根据对象的属性值进行比较

  例如:判断两个人是否是同龄人

             class Person extends Object{

                   int age ;

                   public boolean equals(Object obj) {    //子类重写equals方法

                           if(this == obj){  //判断传入得对象和本来的是不是同一个

                               return true;

                           }

                         if(!(obj instanceof Person)){     转型之前先对类型进行判断

                              return false;

                          }

                           Person p = (Person)obj;    //向下转型

                          return this.age == p.age;

                    }

               }

Object类----toString()方法

toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。

 

String类

 

查看源码得知字符串实质就是一个字符型的数组

面试题:String s1=new String("hello"); 和String s2 ="hello";的区别

        s1创建时,在内存中有两个对象,一个new的对象在堆中,一个是字符串本身的对象,在字符串常量池中。

        s2创建时,在内存中只有一个对象,在字符串常量池中。

        注:在jdk1.6之前,字符串常量池在方法区内,在jdk1.7之后,字符串常量池在堆中。

      若System.out.println(s1==s2); //false

         System.out.println(s1.equals(s2));  //true

        当s2创建时,String类的数据会首先进入堆中的常量池中,并给该值赋一个地址值。

        当s1创建时,new String会首先在堆中开辟一个内存空间,进而给字符串s1赋值时,会先在字符串常量池中搜索是否有该值,有的话就把字符串常量池中的地址值存到开辟的内存空间,并给该内存空间赋一个新的十六位地址,传递给s1.

String类的构造方法

String常用方法

获取字符串的长度

获取部分字符串

 

substring(int beginIndex)   截取字符串时从开始位置截取,截取到末尾

substring(int beginIndex,int endIndex)  截取字符串从开始位置截取,到终点位置,但是不包括终点位置的字符。

查找字符串

字符串是否以指定字符串开头

字符串中是否包含另一个字符串

String str = "abcde";

int index = str.indexOf(“bcd”); //判断是否包含指定字符串,包含则返回第一次出现该字符串的索引,不包含则返回-1

boolean b2 = str.contains("bcd");//判断是否包含指定字符串,包含返回true,不包含返回false

 

将字符串转成一个字符数组。或者字节数组

 

判断两个字符串中的内容是否相同

 

l 获取该字符串对象中的内容

字符串缓冲区

字符串缓冲区支持可变的字符串,StringBuffer又称为可变字符序列,它是一个类似于 String 的字符串缓冲区,可以改变该序列的长度和内容。

StringBuilder和StringBuffer时兼容的API,二者用法相同,前者运行较快,但是线程不安全;后者线程安全,但是运行较慢。目前优先考虑前者。

常用方法:

 

posted @ 2018-04-03 10:32  低调的小孩儿  阅读(287)  评论(0编辑  收藏  举报