JAVA之常用API

2018-02-12  本文已影响0人  续笙

(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): 传递字符串,判断字符串中的字符是否相同,忽略大小写           

               

上一篇下一篇

猜你喜欢

热点阅读