美文网首页Java 杂谈IT技术篇java大搜罗
java常用类解析二,小白进阶必备!

java常用类解析二,小白进阶必备!

作者: 6c38bc5d384c | 来源:发表于2019-01-12 11:28 被阅读4次

    数值包装类

    这些数值包装类(Byte、Short、Integer、Long、Float和Double)都有一些相同特点。

    构造方法类似

    每一个数值包装类都有两个构造方法,以Integer为例,Integer构造方法如下:

    Integer(int value):通过指定一个数值构造Integer对象。

    Integer(String s):通过指定一个字符串s构造对象,s是十进制字符串表示的数值。

    共同的父类

    这6个数值包装类有一个共同的父类——Number,Number是一个抽象类,除了这6个子类还有:AtomicInteger、AtomicLong、BigDecimal和BigInteger,其中BigDecimal和BigInteger后面还会详细介绍。Number是抽象类,要求它的子类必须实现如下6个方法:

    compareTo()方法

    每一个数值包装类都有int compareTo(数值包装类对象)方法,可以进行包装对象的比较。方法返回值是int,如果返回值是0,则相等;如果返回值小于0,则此对象小于参数对象;如果返回值大于0,则此对象大于参数对象。

    字符串转换为基本数据类型

    每一个数值包装类都提供一些静态parseXXX()方法将字符串转换为对应的基本数据类型。

    基本数据类型转换为字符串

    每一个数值包装类都提供一些静态toString()方法实现将基本数据类型数值转换为字符串

    java技术学习qun:59,789,1510进群免费送java系统学习视频!

    Character类

    Character类是char类型的包装类。Character类常用方法如下:

    Character(char value):构造方法,通过char值创建一个新的Character对象。

    char charValue():返回此Character对象的值。

    int compareTo(Character anotherCharacter):方法返回值是int,如果返回值是0,则相等;如果返回值小于0,则此对象小于参数对象;如果返回值大于0,则此对象大于参数对象。

    Boolean类

    Boolean类是boolean类型的包装类。

    构造方法

    Boolean类有两个构造方法,构造方法定义如下:

    Boolean(boolean value):通过一个boolean值创建Boolean对象。

    Boolean(String s):通过字符串创建Boolean对象。s不能为null,s如果是忽略大小写"true"则转换为true对象,其他字符串都转换为false对象。

    compareTo()方法

    Boolean类有int compareTo(Boolean包装类对象)方法,可以进行包装对象的比较。方法返回值是int,如果返回值是0,则相等;如果返回值小于0,则此对象小于参数对象;如果返回值大于0,则此对象大于参数对象。

    字符串转换为boolean类型

    Boolean包装类都提供静态parseBoolean()方法实现将字符串转换为对应的boolean类型,方法定义如下:

    static boolean parseBoolean(String s):将字符串转换为对应的boolean类。s不能为null,s如果是忽略大小写"true"则转换为true,其他字符串都转换为false。

    自动装箱/拆箱

    Java 5之后提供了拆箱(unboxing )功能,拆箱能够将包装类对象自动转换为基本数据类型的数值,而不需要使用intValue()或doubleValue()等方法。类似Java 5还提供了相反功能,自动装箱( autoboxing ),装箱能够自动地将基本数据类型的数值自动转换为包装类对象,而不需要使用构造方法。

    注意: 这个会NPE

    Integer obj = null;

    int intVar = obj; // 运行期异常NullPointerException

    java技术学习qun:59,789,1510进群免费送java系统学习视频!

    java.lang.Object类

    所有Java类的最终祖先,编译系统默认继承Object类,Object类包含了所有Java类的公共属性和方法。

    getClass():Class<?>

    public boolean equals(Object obj) :该方法本意用于两个对象的“深度”比较,也就是比较两对象封装的数据是否相等;而比较运算符“==”在比较两对象变量时,只有当两个对象引用指向同一对象时才为真值。但在Object类中,equals方法是采用“==”运算进行比较;

    hashCode()

    public String toString():该方法返回对象的字符串描述,建议所有子类都重写此方法

    notify(), notifyAll, wait(), wait(long), wait(long, int),

    String toString()

    返回该对象的字符串表示。

    为了日志输出等处理方便,所有的对象都可以以文本方式表示,需要在该对象所在类中覆盖toString()方法。如果没有覆盖toString()方法,默认的字符串是“类名@对象的十六进制哈希码”。

    protected Object clone(): 克隆

    protected void finalize(): 该方法Java垃圾回收程序在删除对象前自动执行。不建议开发者直接调用.

    哈希码(hashCode),每个Java对象都有哈希码(hashCode)属性,哈希码可以用来标识对象,提高对象在集合操作中的执行效率。

    java.lang.String类

    Java中的字符串是由双引号括起来的多个字符,下面示例都是表示字符串常量

    "Hello World"

    "\u0048\u0065\u006c\u006c\u006f\u0020\u0057\u006f\u0072\u006c\u0064"

    "世界你好"

    "A"

    ""

    Java中的字符采用Unicode编码,所以Java字符串可以包含中文等亚洲字符,字符串还有一个极端情况,就代码第⑤行的""表示空字符串,双引号中没有任何内容,空字符串不是null,空字符串是分配内存空间,而null是没有分配内存空间。

    Java SE提供了三个字符串类:String、StringBuffer和StringBuilder。String是不可变字符串,StringBuffer和StringBuilder是可变字符串。

    java技术学习qun:59,789,1510进群免费送java系统学习视频!

    String常用的构造方法

    String():使用空字符串创建并初始化一个新的String对象。

    String(String original):使用另外一个字符串创建并初始化一个新的 String 对象。

    String(StringBuffer buffer):使用可变字符串对象(StringBuffer)创建并初始化一个新的 String 对象。

    String(StringBuilder builder):使用可变字符串对象(StringBuilder)创建并初始化一个新的 String 对象。

    String(byte[] bytes):使用平台的默认字符集解码指定的byte数组,通过byte数组创建并初始化一个新的 String 对象。

    String(char[] value):通过字符数组创建并初始化一个新的 String 对象。

    String(char[] value, int offset, int count):通过字符数组的子数组创建并初始化一个新的 String 对象;offset参数是子数组第一个字符的索引,count参数指定子数组的长度。

    String的查找

    在给定的字符串中查找字符或字符串是比较常见的操作。在String类中提供了indexOf和lastIndexOf方法用于查找字符或字符串,返回值是查找的字符或字符串所在的位置,-1表示没有找到。这两个方法有多个重载版本:

    int indexOf(int ch):从前往后搜索字符ch,返回第一次找到字符ch所在处的索引。

    int indexOf(int ch, int fromIndex):从指定的索引开始从前往后搜索字符ch,返回第一次找到字符ch所在处的索引。

    int indexOf(String str):从前往后搜索字符串str,返回第一次找到字符串所在处的索引。

    int indexOf(String str, int fromIndex):从指定的索引开始从前往后搜索字符串str,返回第一次找到字符串所在处的索引。

    int lastIndexOf(int ch):从后往前搜索字符ch,返回第一次找到字符ch所在处的索引。

    int lastIndexOf(int ch, int fromIndex):从指定的索引开始从后往前搜索字符ch,返回第一次找到字符ch所在处的索引。

    int lastIndexOf(String str):从后往前搜索字符串str,返回第一次找到字符串所在处的索引。

    int lastIndexOf(String str, int fromIndex):从指定的索引开始从后往前搜索字符串str,返回第一次找到字符串所在处的索引。

    String的比较

    比较相等

    String提供的比较字符串相等的方法:

    boolean equals(Object anObject):比较两个字符串中内容是否相等。

    boolean equalsIgnoreCase(String anotherString):类似equals方法,只是忽略大小写。

    比较大小

    有时不仅需要知道是否相等,还要知道大小,String提供的比较大小的方法:

    int compareTo(String anotherString):按字典顺序比较两个字符串(字典中顺序事实上就它的Unicode编码)。如果参数字符串等于此字符串,则返回值 0;如果此字符串小于字符串参数,则返回一个小于 0 的值;如果此字符串大于字符串参数,则返回一个大于 0 的值。

    int compareToIgnoreCase(String str):类似compareTo,只是忽略大小写。

    比较前缀和后缀

    boolean endsWith(String suffix):测试此字符串是否以指定的后缀结束。

    boolean startsWith(String prefix):测试此字符串是否以指定的前缀开始。

    java技术学习qun:59,789,1510进群免费送java系统学习视频!

    String的字符串截取方法

    String substring(int beginIndex):从指定索引beginIndex开始截取一直到字符串结束的子字符串。

    String substring(int beginIndex, int endIndex):从指定索引beginIndex开始截取直到索引endIndex - 1处的字符,注意包括索引为beginIndex处的字符,但不包括索引为endIndex处的字符。

    另外,String还提供了字符串分割方法split(" ")方法,参数是分割字符串,返回值String[]。

    可变字符串 StringBuffer和StringBuilder

    Java提供了两个可变字符串类StringBuffer和StringBuilder,中文翻译为“字符串缓冲区”。

    StringBuffer是线程安全的,它的方法是支持线程同步,线程同步会操作串行顺序执行,在单线程环境下会影响效率。StringBuilder是StringBuffer单线程版本,Java 5之后发布的,它不是线程安全的,但它的执行效率很高。

    StringBuffer和StringBuilder具有完全相同的API,即构造方法和方法等内容一样。StringBuilder的中构造方法有4个:

    StringBuilder():创建字符串内容是空的StringBuilder对象,初始容量默认为16个字符。

    StringBuilder(CharSequence seq):指定CharSequence字符串创建StringBuilder对象。CharSequence接口类型,它的实现类有:String、StringBuffer和StringBuilder等,所以参数seq可以是String、StringBuffer和StringBuilder等类型。

    StringBuilder(int capacity):创建字符串内容是空的StringBuilder对象,初始容量由参数capacity指定的。

    StringBuilder(String str):指定String字符串创建StringBuilder对象。

    StringBuffer的追加、插入、删除和替换

    字符串追加方法是append,append有很多重载方法,可以追加任何类型数据。

    StringBuilder insert(int offset, String str):在字符串缓冲区中索引为offset的字符位置之前插入str,insert有很多重载方法,可以插入任何类型数据。

    StringBuffer delete(int start, int end):在字符串缓冲区中删除子字符串,要删除的子字符串从指定索引start开始直到索引end - 1处的字符。start和end两个参数与substring(int beginIndex, int endIndex)方法中的两个参数含义一样。

    StringBuffer replace(int start, int end, String str)字符串缓冲区中用str替换子字符串,子字符串从指定索引start开始直到索引end - 1处的字符。start和end同delete(int start, int end)方法。

    包装类

    在Java中8种基本数据类型不属于类,不具备“对象”的特征,没有成员变量和方法,不方便进行面向对象的操作。为此,Java提供包装类(Wrapper Class)来将基本数据类型包装成类。

    java技术学习qun:59,789,1510进群免费送java系统学习视频!

    好了,本篇文章就分享到这里了。有兴趣的新手伙伴们可以关注收藏起来,以后需要的时候可以多看看。如果有正在学java的程序员,可来我们的java技术学习扣qun哦:59789,1510里面免费送java的视频系统教程!

    相关文章

      网友评论

        本文标题:java常用类解析二,小白进阶必备!

        本文链接:https://www.haomeiwen.com/subject/gtgqdqtx.html