zoukankan      html  css  js  c++  java
  • 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,二者用法相同,前者运行较快,但是线程不安全;后者线程安全,但是运行较慢。目前优先考虑前者。

    常用方法:

  • 相关阅读:
    译:编程面试的10大算法概念汇总
    Android内存优化之封装九宫格
    Android Java 程序员必备开发工具
    译:如何成为一个通晓多种编程语言的程序员
    8大排序算法图文讲解
    Android酷炫实用的开源框架(UI框架)
    Android动态加载字节码
    利用无效字节码指令引发逆向工具崩溃(二)
    oracle 12c linux服务器启动监听
    oracle无主键去重方法
  • 原文地址:https://www.cnblogs.com/Java-125/p/8706464.html
Copyright © 2011-2022 走看看