zoukankan      html  css  js  c++  java
  • 从零开始学Java 第17章 Java常用类

    第17章  Java常用类
    Java中的类库非常大,对于开发提供了强有力的支持。本章就针对于部分常用的类进行介绍,用户可以应用这些类库比较方便的实现一些复杂的功能。
    17.1  封装类
    Java语言中为每一中基本的数据类型都提供了一个相对应的封装类,例如Integer类所对应的int型、Float类所对应的float型等等。这样一来就大大加快了程序的处理速度,提高程序的性能。Java中的封装类主要有Double、Float、Long、Integer、Short、Byte、Character和Boolean这几种。本小节就会对这些类进行介绍。
    17.1.1  Integer类
    Integer是基本数据类型的包装类,Integer类在对象中包装了一个基本类型int的值。每个Integer类型的对象包含一个int类型的字段。该类的构造方法如下:
    Integer(int value):构造一个新分配的Integer对象,它表示指定的int值。
    Integer(String s):构造一个新分配的Integer对象,它表示指定的int值。
    该类的一些字段如下:
    MAX_VALUE:保持 int 类型的最大值的常量可取的值为 231~1。
    MIN_VALUE:保持 int 类型的最小值的常量可取的值为 -231。
    SIZE:以二进制补码形式表示 int 值的位数。
    TYPE:表示基本类型 int 的 Class 实例。
    17.1.2  Double类
    Double类是基本数据类型double的封装类,它的构造方法如下:
    Double(double value):构造一个新分配的Double对象,它表示基本的double参数。
    Double(String s):构造一个新分配的Double对象,表示用字符串表示的double类型的浮点值。
    17.1.2  Double类
    Double类还提供了一系列的方法
    public Double(double value):构造一个新的Double对象,用来表示value。
    public Double(String s)throws NumberFormatException:构造一个Double对象,用来表示s指定的浮点值。注意该方法可能会抛出NumberFormatException异常。
    public static String toString(double d):返回double参数的字符串表示形式。
    public static String toHexString(double d):返回double参数的十六进制字符串表示形式。详细的信息请读者自行查阅API了解相关信息。
    public static Double valueOf(String s)throws NumberFormatException:返回表示字符串s的Double对象。
    public static Double vlueOf(double d):返回参数值d的Double实例。这种形式比用构造函数来构造Double对象效率要高。
    public static double parseDouble(String s)throws umberFormatException:返回一个新的double值,通过该值表示参数s,注意该方法可能会抛出NumberFormatException异常。
    public static boolean isNaN(double v):如果指定的参数v为一个非数字(NaN)值,则返回true,否则返回false。
    public static boolean isInfinite(double v):如果指定数字的大小是无穷大,则返回true;否则,返回false。
    public byte byteValue():返回此Double对象的byte值。
    public short shortValue():返回此Double对象的short值。
    public int intValue():返回此Double对象的int值。
    public long longValue():返回此Double对象的long值。
    public double doubleValue():返回此Double对象的double值。
    17.1.3  Number类
    抽象类Number是Byte、Double、Float、Integer、Long和Short这些类的超类。Number的子类必须提供将表示的数值转换为byte、double、float、int、long和short类型的方法。可以这样使用Number类:
    Number n=new Double(0);
    Number类提供了一些方法,它的子类都实现了这些方法
    17.1.4  Float类
    Float类在对象中包装了一个float基本类型的值。每个Float类型的对象包含一个float类型的字段。Float类的一些字段描述了float数据类型的一些属性
    public static final float MAX_VALUE:保存float类型的最大正有限大值的常量。
    public static final float MIN_VALUE:保存float类型数据的最小正非零值的常量。
    public static final int SIZE:代表了表示一个float值所使用的位数。
    public static final Class<Float> TYPE:表示float基本类型的Class实例。
    public static final float POSITIVE_INFINITY:保存float类型的正无穷大的常量。
    17.1.4  Float类
    此外,Float类还提供了一系列的方法
    public Float(float value):构造一个新Float对象,表示float参数。
    public Float(double value):构造一个新Float对象,表示double参数。
    public Float(String value):构造一个新Float对象,表示String参数表示的值。
    public static String toString():返回float参数的字符串形式
    public static String toHexString(float f):返回float参数的十六进制字符串表示形式。
    17.1.5  Boolean类
    对于boolean类型,Java也提供了相应的封装类Boolean类。Boolean类将基本类型为boolean的值包装在一个对象中。一个Boolean类型的对象只包含一个类型为boolean的字段。
    17.1.6  Byte类
    Byte类是基本数据类型Byte的封装类。一个Byte类型的对象只包含一个类型为byte的字段。Byte类有一些字段
    public static final byte MAX_VALUE:一个常量用来保存byte类型可取的最大值27-1
    public static final byte MIN_VALUE:一个常量,保存byte类型可取的最小值,即-128。
    public static final int SIZE用于以二进制补码形式表示byte值的位数。
    17.3  Math类
    Java中的一些数学运算可以使用Math类,在该类中提供了一些静态方法,可以使用这些方法来完成一些数学运算。本节中就主要介绍Math中的一些方法。并且使用Math类中的随机数来完成一个猜数字的游戏。
    17.3.1  Math类介绍
    在Math类中提供了一些常用的数学运算方法,例如正弦运算、余弦运算等,为程序提供了比较方便的数学运算操作,其中包含的字段有以下几个:
    public static final double E:用一个double值来表示自然对数的底数e。
    public static final double PI:用一个double值来表示PI值,即圆的周长与直径之比。
    17.3.2  猜数字游戏
    本小节是一个猜数字的小程序,需要使用到Match中的random方法俩产生一个随机数,然后需要让用户输入猜测的数字,并根据用户所输入的数字进行响应的提示。直到用户猜出正确的数字。
    17.43  StringBuffer类
    StringBuffer是Java中另一种对字符串进行操作的类。StringBuffer中解决了String类中不可变的缺点,也解决了字符串连接不方便的问题。本节就主要介绍字符串缓冲类StringBuffer。
    17.4.1  StringBuffer简介
    StringBuffer也是对字符串进行操作的类,它和String是对等的。如果需要对字符串进行大量的修改时,就需要使用到StringBuffer类。StringBuffer是可以改变的字符序列。它的常用操作就是将字符串插入到字符序列中和追加到字符序列的尾部。StringBuffer是线程安全的,缓冲序列可以自动对多线程的操作进行同步的处理。但是会影响到性能。
    17.4.2  StringBuffer类的方法
    StringBuffer提供了一系列的方法,如下:

    public StringBuffer append(String str)append():方法是把str的内容追加到StringBuffer的末尾,可以在StringBuffer后追加的内tr容不仅仅有String类型的也可以是char、int、long等类型。
    public int length():返回StringBuffer的当前字符序列长度。
    public int capacity():返回字符串缓冲区当前的容量,即可以最新插入的字符存储量。当插入的字符串长度大于这个容量的时候需要重新分配。
    public void ensureCapacity(int minimumCapacity):确保容量至少等于minimumCapacity指定的值。容量小于这个值的时候,重新分配缓冲区。
    public char charAt(int index):返回此字符序列中索引index处的字符。索引从0开始。
    public void setCharAt(int index,char ch):用ch替换索引index处的字符。
    public StringBuffer deleteCharAt(int index):删除索引index处的字符。
    public StringBuffer delete(int start,int end):删除字符序列从start位置起到end-1处的字符,注意包括start位置的字符,但是不包括end位置处的字符。
    public StringBuffer replace(int start ,int end ,String str):用参数指定的字符串str替换字符序列从start位置开始到end-1处结束的字符,注意不包括end位置的字符。
    public String substring(int start):返回一个String字符串,该字符串从字符序列的start位置开始一直到字符序列的末尾。
    public int indexOf(str):返回第一次出现指定子字符串的位置索引。
    17.5  日期操作类
    日期是Java中比较复杂的内容。不同的国家有不同的日期格式。日期的国际化、日期和时间之间的转换问题都是非常复杂的。Java中对日期的操作设计到Date、DateFormat、Calendar等,
    17.5.1  Date类
    Date表示的是特定的瞬间,可以精确到毫秒。是用DateFormat类来对日期进行格式化和分析日期字符串。Date中的构造方法如下:
    Date():分配Date对象并初始化该对象,以表示分配它的时间。
    Date(long date):分配Date对象并初始化该对象,以表示从标准基准时间以来的制定毫秒数。
    17.4.2  DateFormat类
    DateFormat类是日期时间格式化子类的抽象类,它可以与语言无关的方法格式化并进行分析日期或者是时间。DateFormat中定义了一些方法,如下所示。
    Object clone():重写 Cloneableboolean
    equals(Object obj):重写 equalsString
    format(Date date):将一个 Date 格式化为日期/时间字符串。
    NumberFormat getNumberFormat():获取此日期/时间格式器用于格式化和解析时间的数字格式器。
    static DateFormat getTimeInstance():获取时间格式器,该格式器具有默认语言环境的默认格式化风格。
    static DateFormat getTimeInstance(int style):获取时间格式器,该格式器具有默认语言环境的给定格式化风格。
    17.6  小结
    本章主要介绍了Java类库中提供的一些常用类,包括对数据类型的各种封装类以及Math类、StringBuffer类、Date类等。Java提供的类库可以说是浩如烟海,而本章介绍的这几个不过是最最基本的常用类型,要想充分发挥Java强大的功能,对其类库的了解是必不可少的。读者需要不断的学习Java的类库,这样碰到问题就可以先看看类库中是否已经有了解决方案,如果没有再自己写程序实现,这样能大大提高开发效率。

  • 相关阅读:
    单例模式
    Curator Zookeeper分布式锁
    LruCache算法原理及实现
    lombok 简化java代码注解
    Oracle客户端工具出现“Cannot access NLS data files or invalid environment specified”错误的解决办法
    解决mysql Table ‘xxx’ is marked as crashed and should be repaired的问题。
    Redis 3.0 Cluster集群配置
    分布式锁的三种实现方式
    maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令
    How to Use Convolutional Neural Networks for Time Series Classification
  • 原文地址:https://www.cnblogs.com/yoogoo/p/2467281.html
Copyright © 2011-2022 走看看