Javase学习Day11----API,Object类,String类

一、学习笔记

1.回顾
    如果父类没有空参构造方法
子类继承就会报错 因为子类中含有空参构造
并且在空参构造方法的第一行默认有super()调用父类的空参构造
如果父类没有空参构造方法 则报错
 super();(子类继承父类默认有)

2.Object类
     java.lang.Object  java中所有类的根类 所有的类都直接或者间接继承自Object类
          构造方法
              public Object()

    方法
        public String toString()返回该对象的字符串表示。  类名+@+地址值(哈希值)
在Object类中打印的是地址值 ,我们查看地址值没有用
子类一般都会重写此方法 返回对象的属性值

 Person类重写Object类的toString方法
         返回对象的属性值 对于当前Person类来说
         就是返回name和age的值
        Object类方法
        boolean  equals(Object obj)   指示其他某个对象是否与此对象“相等”。
                                      如果不重写此方法 比较的是两个对象的地址值
                                      子类一般都会选择重写此方法  不再比较地址值 而是比较属性值


        == 如果比较基本类型 比较的是基本类型的数值是否相等
           如果比较引用类型 比较的是地址值是否相同


         Person重写equals方法
         不再比较地址值 而是比较属性值
         也就是比较两个对象的name和age的值

public boolean equals (Object anObject) ` :将此字符串与指定对象进行比较。
 public boolean equalsIgnoreCase (String anotherString) ` :将此字符串与指定对象进行比较,忽略大小写。
         Object类
         public int hashCode() 获取对象的哈希值
                     哈希值:可以理解为一个唯一值 相当于人一出生的身份证号  可以理解为是逻辑地址

        结论
              如果不重写Object类的hashCode方法 比较两个对象的hashCode就是比较两个对象的地址值
              如果重写了Object类HashCode方法 比较两个对象的hashCode就是比较两个对象的内容
                      如果想确定内容是否真的相同
                           可以先比较两个对象的hashCode
                                      不同 说明这两个对象的内容一定不同
                                      相同 不能说明这两个对象一定相同 需要继续比较equals
                                                      不同  一定不同
                                                      相同

重写Object类hashCode方法
         按照每个对象的内容 计算机得到一个int值
         来进行重写

         对于当前Person类来说
         就是根据 name和age 计算得到一个int值
         如果成员变量是引用类型 直接调用hashCode方法得到一个int值
         如果成员变量是基本类型 直接使用对应的数值即可

3.String类
    概述
         java.lang.String
           特点
              1.所有字符串字面值 都是字符串对象 "abc"
              2.字符串是常量  一旦创建 不能改变
              3.因为不可改变 所以可以共享
     构造方法
         字符串的比较
          构造方法
              public String();
              public String(String str)
            String s10 = "abc";
s11+="abc"; // 底层会对+=进行优化 得到一个新的对象
        System.out.println(s10 == s11);//false // 地址值不相同
        字符 字节数组 转换为字符串
           String 构造方法
                  public String(char[] chs);
                  public String(char[] chs,int start ,int length)
                  public String(byte[] bytes)
                  public String(byte[] bytes,int start ,int length)

      将字符串转换为字符数组
           String 类
                public char[] toCharArray();
      将字符串转换为字节数组
           String 类
                 public byte[] getBytes();
    常用方法
        String类
       public  char charAt(int index) 根据索引找字符

    长度
         数组
             length属性
         集合
             size()方法
         字符串
             length()方法
        String 类
         方法
           int  indexOf(int ch) 查找当前字符 在字符串中第一次出现的索引位置
           int indexOf(int ch,int fromIndex) 从fromIndex开始查询

           int lastIndexOf(int ch)  查询指定字符 在字符串中最后一次出现的索引
           int lastIndexOf(String str)
        字符串截取
          String substring(int startIndex)  从开始索引截取到末尾
          String substring(int startIndex,int endIndex)  [start,end)
         字符串大小写转换
          String toUpperCase() 字符串转大写
          String toLowerCase() 字符串转小写
      字符串判断开头和结尾
         boolean startsWith(String s) 判断开头
         boolean endsWith(String s) 判断结尾
        String 类
           String concat(String s) 字符串拼接
           String trim() 去掉字符串两端的空格
        String replace(char oldChar,char newChar) 将字符串中 oldChar 替换成newChar

       String repalce(String oldString,String newString)
replaceAll可以将----替换成一个空格
 String[] split(String regex) 切割字符串


二、今日学习总结

API的查找使用,Object类的toString,equals,equalsIgnoreCase,hashCode的方法,String类,其中String部分比较生疏,需再回头多加练习。总体还是收获满满的。

三、明日计划

复习今天所学内容,多敲多练。加油

  
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值