J-12 常见对象

API常用类

API概述;
Object类;
Scanner类;
String类;

API概述

API(Application Programming Interface)
Java API指的就是JDK中提供的各种功能的Java类。

Object类

定义

类层次结构的根类
所有类都直接或者间接的继承自该类

方法

public int hashCode()
  • 返回该对象的hash值。
  • 注意:
    哈希值是根据哈希算法计算出来的值,与地址值有关。
public final Class getClass()
  • 返回此 Object 的运行时类。

  • 注意:
    Class类的方法:

      public String getName()
    

以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。

public String toString()
  • 返回该对象的字符串表示。

  • 通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。

  • 注意:
    Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:

      getClass().getName() + '@' + Integer.toHexString(hashCode())
    

    Interger类下的一个静态方法:

      public static String toHexString(int i)
    

    以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。

  • 重写该方法:
    手动重写:把该类的所有变量组成返回即可。
    自动生成:右键 -- Source -- Gerenate toString
    快捷键:shift+alt+S -- S

  • 注意:
    直接输出对象的名称时,自动调用该对象的toString()方法。

public boolean equals(Object obj)
  • 指示其他某个对象是否与此对象“相等”,默认情况下比较的是地址值。

  • 比较地址值意义不大,要重写方法。

  • ==:
    基本类型:比较的是值是否相同
    引用类型:比较的是地址值是否相同

  • 看源码:

        public boolean equals(Object obj)
         {
          return (this == obj);
          }
    
  • 重写方法:
    用来比较对象的成员变量值是否相同。

    • 手动重写:
      判断该对象名是否是该类名的一个对象
      格式:

        对象名 instanceof 类名
      
    • 自动重写:右键 -- Source -- Gerenate hashCode(),equals()
      快捷键:shift+alt+S -- h

protected void finalize()
  • 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。子类重写 finalize 方法,以配置系统资源或执行其他清除。
  • 用于垃圾回收,但何时回收不确定
protected Object clone()
  • 创建并返回此对象的一个副本。
  • 标记接口:告诉我们实现该接口的类就可以实现对象的复制了。
    Cloneable:此类实现了 Cloneable 接口,以指示 Object.clone() 方法可以合法地对该类实例进行按字段复制。
  • 克隆,是复制了新的对象,改变原对象值时,克隆后的对象值不改变。

Scanner类

定义

  • JDK5以后用于获取用户的键盘输入。

  • 导包:import java.util.Scanner;

  • 使用方法:

      Scanner sc = new Scanner(System.in);
    
  • System类下有一个静态的字段
    public static final InputStream in; // “标准”输入流,对应着键盘录入.

  • 使用的构造方法
    Scanner(InputStream source) 构造一个新的 Scanner,它生成的值是从指定的输入流扫描的。

方法

基本格式:
  • public boolean hasNextXxx(); 判断是否是某种类型的元素
    判断是否还有下一个输入项,其中Xxx可以是Int,Double等。如果需要判断是否包含下一个字符串,则可以省略Xxx

  • public Xxx nextXxx(); 获取该元素
    获取下一个输入项。Xxx的含义和上个方法中的Xxx相同
    默认情况下,Scanner使用空格,回车等作为分隔符

以int举例
  • public boolean hasNextInt()
  • public int nextInt()
常用方法
  • public int nextInt()
    获取一个int值

  • public String nextLine()
    获取一个String类型的值

  • 出现问题:
    先获取一个int值,再获取一个字符串。
    解决方案:
    ① 先获取一个数值后,再创建一个新的键盘录入对象获取字符串。
    ② 把所有数据都先按照字符串获取,然后要什么就对应的转换成什么。

String类

概述

  • 定义:
    字符串是由多个字符组成的一串数据(字符序列)
    字符串可以看成是字符数组
  • 特点:
    ① 字符串字面值“abc”也可以看成一个字符数组。
    ② 字符串是常量,一旦被赋值,就不能被改变。

构造方法

  • public String()
    空构造
  • public String(byte[] bytes)
    把字节数组转成字符串,通过ASCII码转成字符串。
  • public String(byte[] bytes,int offset,int length)
    把字节数组的一部分转成字符串
  • public String(char[] value)
    把字符数组转成字符串
  • public String(char[] value,int offset,int count)
    把字符数组的一部分转成字符串
  • public String(String original)
    把字符串常量转成字符串

创建对象

  • String字面值对象

      String s = "hello";
    
  • 构造方法创建对象

      String s = new String("hello");
    
  • 区别:
    前者创建一个对象(方法区中),后者创建两个对象(堆内存、方法区中)。

判断功能

  • boolean equals(Object obj)
    比较字符串内容是否相同 ,区分大小写。

  • boolean equalsIgnoreCase(String str)
    比较字符串内容是否相同 ,不区分大小写。

  • boolean contains(String str)
    判断大字符串中是否包含小字符串

  • boolean startsWith(String str)
    判断字符串是否以某个指定字符串开头

  • boolean endsWith(String str)
    判断字符串是否以某个指定字符串结尾

  • boolean isEmpty()
    判断字符串是否为空
    内容为空

    String s = "";
    字符串对象为空

    String s = null;

获取功能

  • 注意:
    不存在返回 *- 1
  • int length()
    获取字符串的长度
  • char charAt(int index)
    获取指定索引位置的字符
  • int indexOf(int ch)
    返回指定字符在此字符串中第一次出现处的索引。
    返回值为int类型,即返回的是ASCII码。
  • int indexOf(String str)
    返回指定字符串在此字符串中第一次出现处的索引。
  • int indexOf(int ch,int fromIndex)
    返回指定字符在此字符串中,从指定位置后第一次出现处的索引。
  • int indexOf(String str,int fromIndex)
    返回指定字符串在此字符串中,从指定位置后第一次出现处的索引。
  • String substring(int start)
    从指定位置开始截取字符串,默认到末尾结束
  • String substring(int start,int end)
    从指定位置开始到指定位置结束截取字符串,包括start索引不包括end索引(包左不包右)

转换功能

  • byte[] getBytes()
    把字符串转换为字节数组,打印ASCII码
  • char[] toCharArray()
    把字符串转换为字符数组,打印每一个字符的值
  • static String valueOf(char[] chs)
    把字符数组转成字符串
  • static String valueOf(int i)
    把int类型的数据转成字符串。
    注意String类的valueOf方法可以把任意类型的数据转换为字符串
  • String toLowerCase()
    把字符串转成小写
  • String toUpperCase()
    把字符串转成大写
  • String concat(String str)
    把字符串拼接

其他功能

  • 替换功能
String replace(char old,char new)
String replace(String old,String new)
  • 去除字符串两空格
String trim()
  • 按字典顺序比较两个字符串
int compareTo(String str)

①返回ASCII码的差值 hello,owo
②返回长度的差值 hello,hel

int compareToIgnoreCase(String str)
posted @ 2015-09-16 17:17  小懒66  阅读(152)  评论(2编辑  收藏  举报