JAVA之常用API

(1)equals方法比较内存地址

        * a: Object类中的equals方法

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

(2): 重写equals方法

  * a: 开发中要比较两个对象是否相同,经常会根据对象中的属性值进行比较              * b: 在开发经常需要子类重写equals方法根据对象的属性值进行比较。                    * c: ==号和equals方法的区别                   * ==是一个比较运算符号,既可以比较基本数据类型,也可以比较引用数据类型,基本数据类型比较的是值,引用数据类型比较的是地址值  * equals方法是一个方法,只能比较引用数据类型,所有的对象都会继承Object类中的方法,如果没有重写Object类中的equals方法, equals方法和==号比较引用数据类型无区别,重写后的equals方法比较的是对象中的属性

(3) 重写toString方法

        * a: 为什么要重写toString方法 * toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。                                                             * 由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。                                                     * Object类中的toString的核心代码       getClass().getName() + "@" + Integer.toHexString(hashCode())                                      * 由于默认情况下的数据对我们来说没有意义,一般建议重写该方法。

(4) String类的概念和不变性                     * a:String类                                                  * API中的String类的描述,发现String 类代1表字符串                                             * Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。     * 字符串是常量,在创建之后不能更改       * 其实就是说一旦这个字符串确定了,那么就会在内存区域中就生成了这个字符串。字符串本身不能改变,但str变量中记录的地址值是可以改变的。                                        * 源码分析,String类底层采用的是字符数组:

                private final char value[]

                private 修饰说明value只能在String类内部使用,而且又没有提供get方法,所以外部无法获取value数组,就无法改变数组中元素的值

                final修饰说明value是常量,一旦创建,就不能被改变,value一旦被初始化成某个数组,将永远指向这个数组,不可能再指向其它的数组了

(5) String类创建方式和比较

        * a: 创建对象的数量比较

            * String s3 = "abc";

* 在内存中只有一个对象。这个对象在字符串常量池中                                                          * String s4 = new String("abc");                      * 在内存中有两个对象。一个new的对象在堆中,一个字符串本身对象,在字符串常量池中

(6) A:String类的其他方法

        * a: 方法介绍

            * int length(): 返回字符串的长度

            * String substring(int beginIndex,int endIndex): 获取字符串的一部分

            * String substring(int beginIndex): 获取字符串的一部分

            * boolean startsWith(String prefix): 判断一个字符串是不是另一个字符串的前缀,开头

            * boolean endsWith(String prefix): 判断一个字符串是不是另一个字符串的后缀,结尾

            * boolean contains (String s): 判断一个字符串中,是否包含另一个字符串

            * int indexOf(char ch):  查找一个字符,在字符串中第一次出现的索引,被查找的字符不存在,返回-1

            * byte[] getBytes(): 将字符串转成字节数组,此功能和String构造方法相反,byte数组相关的功能,查询编码表

            * char[] toCharArray(): 将字符串转成字符数组,功能和构造方法相反

            * boolean equals(Object obj): 方法传递字符串,判断字符串中的字符是否完全相同,如果完全相同返回true

            * boolean equalsIgnoreCase(String s): 传递字符串,判断字符串中的字符是否相同,忽略大小写           

               

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 9,820评论 1 44
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,959评论 18 399
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 9,713评论 0 13
  • runtime基础方法、用法、消息转发、super: runtime 完整总结 runloop源码、runloop...
    渐行渐远ty阅读 1,279评论 0 0
  • 那年夏天,我打马而过,看到你在抬着头直视刺眼的阳光。我穿过栅栏、穿过荆棘,只为走近你,看一看晾在太阳底下需要被晒干...
    夜棠梨阅读 2,688评论 0 0

友情链接更多精彩内容