java基础学习(四)

java基础学习(四)

十二、包装类
十三、Object类
十四、System类
十五、数组

十二、包装类

  • 序号 基本数据类型 包装类
    1 byte Byte
    2 short Short
    3 int Integer
    4 long Long
    5 char Character
    6 float Float
    7 double Double
    8 boolean Boolean

2.Integer类

  • 常用方法:

    方法 返回值 功能
    byteValue() byte 以 byte 类型返回该 Integer 的值
    shortValue() short 以 short 类型返回该 Integer 的值
    intValue() int 以 int 类型返回该 Integer 的值
    toString() String 返回一个表示该 Integer 值的 String 对象
    equals(Object obj) boolean 比较此对象与指定对象是否相等
    compareTo(Integer anotherlnteger) int 在数字上比较两个 Integer 对象,如相等,则返回 0; 如调用对象的数值小于 anotherlnteger 的数值,则返回负值; 如调用对象的数值大于 anotherlnteger 的数值,则返回正值
    valueOf(String s) Integer 返回保存指定的 String 值的 Integer 对象
    parseInt(String s) int 将数字字符串转换为 int 数值
  • 常量:

    Integer 类包含以下 4 个常量。

    • MAX_VALUE:值为 231-1 的常量,它表示 int 类型能够表示的最大值。
    • MIN_VALUE:值为 -231 的常量,它表示 int 类型能够表示的最小值。
    • SIZE:用来以二进制补码形式表示 int 值的比特位数。
    • TYPE:表示基本类型 int 的 Class 实例。

3.Float 类

  • Float 类中的构造方法有以下 3 个。

    • Float(double value):构造一个新分配的 Float 对象,它表示转换为 float 类型的参数。
    • Float(float value):构造一个新分配的 Float 对象,它表示基本的 float 参数。
    • Float(String s):构造一个新分配的 Float 对象,它表示 String 参数所指示的 float 值。
  • 方法 返回值 功能
    byteValue() byte 以 byte 类型返回该 Float 的值
    doubleValue() double 以 double 类型返回该 Float 的值
    floatValue() float 以 float 类型返回该 Float 的值
    intValue() int 以 int 类型返回该 Float 的值(强制转换为 int 类型)
    longValue() long 以 long 类型返回该 Float 的值(强制转换为 long 类型)
    shortValue() short 以 short 类型返回该 Float 的值(强制转换为 short 类型)
    isNaN() boolean 如果此 Float 值是一个非数字值,则返回 true,否则返回 false
    isNaN(float v) boolean 如果指定的参数是一个非数字值,则返回 true,否则返回 false
    toString() String 返回一个表示该 Float 值的 String 对象
    valueOf(String s) Float 返回保存指定的 String 值的 Float 对象
    parseFloat(String s) float 将数字字符串转换为 float 数值
  • 在 Float 类中包含了很多常量,其中较为常用的常量如下。

    • MAX_VALUE:值为 1.4E38 的常量,它表示 float 类型能够表示的最大值。
    • MIN_VALUE:值为 3.4E-45 的常量,它表示 float 类型能够表示的最小值。
    • MAX_EXPONENT:有限 float 变量可能具有的最大指数。
    • MIN_EXPONENT:标准化 float 变量可能具有的最小指数。
    • MIN_NORMAL:保存 float 类型数值的最小标准值的常量,即 2-126。
    • NaN:保存 float 类型的非数字值的常量。
    • SIZE:用来以二进制补码形式表示 float 值的比特位数。
    • TYPE:表示基本类型 float 的 Class 实例。

4.Double 类

  • Double 类中的构造方法有如下两个。

    • Double(double value):构造一个新分配的 Double 对象,它表示转换为 double 类型的参数。
    • Double(String s):构造一个新分配的 Double 对象,它表示 String 参数所指示的 double 值。
  • 方法 返回值 功能
    byteValue() byte 以 byte 类型返回该 Double 的值
    doubleValue() double 以 double 类型返回该 Double 的值
    fioatValue() float 以 float 类型返回该 Double 的值
    intValue() int 以 int 类型返回该 Double 的值(强制转换为 int 类型)
    longValue() long 以 long 类型返回该 Double 的值(强制转换为 long 类型)
    shortValue() short 以 short 类型返回该 Double 的值(强制转换为 short 类型)
    isNaN() boolean 如果此 Double 值是一个非数字值,则返回 true,否则返回 false
    isNaN(double v) boolean 如果指定的参数是一个非数字值,则返回 true,否则返回 false
    toString() String 返回一个表示该 Double 值的 String 对象
    valueOf(String s) Double 返回保存指定的 String 值的 Double 对象
    parseDouble(String s) double 将数字字符串转换为 Double 数值
  • 在 Double 类中包含了很多常量,其中较为常用的常量如下。

    • MAX_VALUE:值为 1.8E308 的常量,它表示 double 类型的最大正有限值的常量。
    • MIN_VALUE:值为 4.9E-324 的常量,它表示 double 类型数据能够保持的最小正非零值的常量。
    • NaN:保存 double 类型的非数字值的常量。
    • NEGATIVE_INFINITY:保持 double 类型的负无穷大的常量。
    • POSITIVE_INFINITY:保持 double 类型的正无穷大的常量。
    • SIZE:用秦以二进制补码形式表示 double 值的比特位数。
    • TYPE:表示基本类型 double 的 Class 实例。

5.Number 类

  • Number 是一个抽象类,也是一个超类(即父类)。Number 类属于 java.lang 包,所有的包装类(如 Double、Float、Byte、Short、Integer 以及 Long)都是抽象类 Number 的子类。

    Number 类定义了一些抽象方法,以各种不同数字格式返回对象的值。如 xxxValue() 方法,它将 Number 对象转换为 xxx 数据类型的值并返回。这些方法如下表所示:

    方法 说明
    byte byteValue(); 返回 byte 类型的值
    double doubleValue(); 返回 double 类型的值
    float floatValue(); 返回 float 类型的值
    int intValue(); 返回 int 类型的值
    long longValue(); 返回 long 类型的值
    short shortValue(); 返回 short 类型的值

    抽象类不能直接实例化,而是必须实例化其具体的子类。如下代码演示了 Number 类的使用:

    Number num = new Double(12.5);
    System.out.println("返回 double 类型的值:" + num.doubleValue());
    System.out.println("返回 int 类型的值:" + num.intValue());
    System.out.println("返回 float 类型的值:" + num.floatValue());
    

6.Character 类

  • Character 类是字符数据类型 char 的包装类。Character 类的对象包含类型为 char 的单个字段,这样能把基本数据类型当对象来处理

  • 方法 描述
    void Character(char value) 构造一个新分配的 Character 对象,用以表示指定的 char 值
    char charValue() 返回此 Character 对象的值,此对象表示基本 char 值
    int compareTo(Character anotherCharacter) 根据数字比较两个 Character 对象
    boolean equals(Character anotherCharacter) 将此对象与指定对象比较,当且仅当参数不是 null,而 是一个与此对象 包含相同 char 值的 Character 对象时, 结果才是 true
    boolean isDigit(char ch) 确定指定字符是否为数字,如果通过 Character. getType(ch) 提供的字 符的常规类别类型为 DECIMAL_DIGIT_NUMBER,则字符为数字
    boolean isLetter(int codePoint) 确定指定字符(Unicode 代码点)是否为字母
    boolean isLetterOrDigit(int codePoint) 确定指定字符(Unicode 代码点)是否为字母或数字
    boolean isLowerCase(char ch) 确定指定字符是否为小写字母
    boolean isUpperCase(char ch) 确定指定字符是否为大写字母
    char toLowerCase(char ch) 使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为小写
    char toUpperCase(char ch) 使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为大写

7.Boolean 类

  • Boolean 类有以下两种构造形式:

    Boolean(boolean boolValue);Boolean(String boolString);
    

    其中 boolValue 必须是 true 或 false(不区分大小写),boolString 包含字符串 true(不区分大小写),那么新的 Boolean 对象将包含 true;否则将包含 false。

  • 方法 返回值 功能
    booleanValue() boolean 将 Boolean 对象的值以对应的 boolean 值返回
    equals(Object obj) boolean 判断调用该方法的对象与 obj 是否相等。当且仅当参数不是 null,且与调用该 方法的对象一样都表示同一个 boolean 值的 Boolean 对象时,才返回 true
    parseBoolean(String s) boolean 将字符串参数解析为 boolean 值
    toString() string 返回表示该 boolean 值的 String 对象
    valueOf(String s) boolean 返回一个用指定的字符串表示的 boolean 值
  • 在 Boolean 类中包含了很多的常量,其中较为常用的常量如下。

    • TRUE:对应基值 true 的 Boolean 对象。
    • FALSE:对应基值 false 的 Boolean 对象。
    • TYPE:表示基本类型 boolean 的 Class 对象。

8.Byte 类

  • Byte 类提供了两个构造方法来创建 Byte 对象。

    • Byte(byte value)
    • Byte(String s)
    • 注意:必须使用数值型的 String 变量作为参数才能创建成功,否则会抛出 NumberFormatException 异常。
  • 方法 返回值 功能
    byteValue() byte 以一个 byte 值返回 Byte 对象
    compareTo(Byte bytel) int 在数字上比较两个 Byte 对象
    doubleValue() double 以一个 double 值返回此 Byte 的值
    intValue() int 以一个 int 值返回此 Byte 的值
    parseByte(String s) byte 将 String 型参数解析成等价的 byte 形式
    toStringO String 返回表示此 byte 值的 String 对象
    valueOf(String s) Byte 返回一个保持指定 String 所给出的值的 Byte 对象
    equals(Object obj) boolean 将此对象与指定对象比较,如果调用该方法的对象与 obj 相等 则返回 true,否则返回 false
  • 在 Byte 类中包含了很多的常量,其中较为常用的常量如下。

    • MIN_VALUE:byte 类可取的最小值。
    • MAX_VALUE:byte 类可取的最大值。
    • SIZE:用于以二进制补码形式表示的 byte 值的位数。
    • TYPE:表示基本类 byte 的 Class 实例。

十三、Object类

1. Object类常见方法:

方法 说明
Object clone() 创建与该对象的类相同的新对象
boolean equals(Object) 比较两对象是否相等
void finalize() 当垃圾回收器确定不存在对该对象的更多引用时,对象垃圾回收器调用该方法
Class getClass() 返回一个对象运行时的实例类
int hashCode() 返回该对象的散列码值
void notify() 激活等待在该对象的监视器上的一个线程
void notifyAll() 激活等待在该对象的监视器上的全部线程
String toString() 返回该对象的字符串表示
void wait() 在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待

2.toString()

oString() 方法返回该对象的字符串,当程序输出一个对象或者把某个对象和字符串进行连接运算时,系统会自动调用该对象的 toString() 方法返回该对象的字符串表示。

Object 类的 toString() 方法返回“运行时类名@十六进制哈希码”格式的字符串,但很多类都重写了 Object 类的 toString() 方法,用于返回可以表述该对象信息的字符串。

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

3.equal()

在前面学习字符串比较时,曾经介绍过两种比较方法,分别是==运算符和 equals() 方法,==运算符是比较两个引用变量是否指向同一个实例,equals() 方法是比较两个对象的内容是否相等,通常字符串的比较只是关心内容是否相等。

4.getClass()

getClass() 方法返回对象所属的类,是一个 Class 对象。通过 Class 对象可以获取该类的各种信息,包括类名、父类以及它所实现接口的名字等。

十四、System类

  1. System 类有 3 个静态成员变量,分别是 PrintStream out、InputStream in 和 PrintStream err。

    • PrintStream out:标准输出流。此流已打开并准备接收输出数据。通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。
    • InputStream in:标准输入流。此流已打开并准备提供输入数据。通常,此流对应于键盘输入或者由主机环境或用户指定的另一个输入源。
    • PrintStream err:标准的错误输出流。其语法与 System.out 类似,不需要提供参数就可输出错误信息。也可以用来输出用户指定的其他信息,包括变量的值。
  2. System 类中提供了一些系统级的操作方法,常用的方法有 arraycopy()、currentTimeMillis()、exit()、gc() 和 getProperty()

    • arraycopy():

      该方法的作用是数组复制,即从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。该方法的具体定义如下:

      public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
      

      其中,src 表示源数组,srcPos 表示从源数组中复制的起始位置,dest 表示目标数组,destPos 表示要复制到的目标数组的起始位置,length 表示复制的个数。

    • currentTimeMillis():

      该方法的作用是返回当前的计算机时间,时间的格式为当前计算机时间与 GMT 时间(格林尼治时间)1970 年 1 月 1 日 0 时 0 分 0 秒所差的毫秒数。一般用它来测试程序的执行时间。例如:

      long m = System.currentTimeMillis();
      

      上述语句将获得一个长整型的数字,该数字就是以差值表达的当前时间。

    • exit():

      该方法的作用是终止当前正在运行的 Java 虚拟机,具体的定义格式如下:

      public static void exit(int status)
      

      其中,status 的值为 0 时表示正常退出,非零时表示异常退出。使用该方法可以在图形界面编程中实现程序的退出功能等。

    • gc():
      该方法的作用是请求系统进行垃圾回收,完成内存中的垃圾清除。至于系统是否立刻回收, 取决于系统中垃圾回收算法的实现以及系统执行时的情况。定义如下:

      public static void gc()
      
    • getProperty():

      该方法的作用是获得系统中属性名为 key 的属性对应的值,具体的定义如下:

      public static String getProperty(String key)
      
      属性名 属性说明
      java.version Java 运行时环境版本
      java.home Java 安装目录
      os.name 操作系统的名称
      os.version 操作系统的版本
      user.name 用户的账户名称
      user.home 用户的主目录
      user.dir 用户的当前工作目录

十五、数组

  1. 语法:

    • type[] arrayName = new type[size];    // 数组名 = new 数据类型[数组长度]
      type[] arrayName = new type[]{值 1,值 2,值 3,值 4,• • •,值 n};
      
    • 系统默认初值复制原则:

      • 数组元素的类型是基本类型中的整数类型(byte、short、int 和 long),则数组元素的值是 0。
      • 数组元素的类型是基本类型中的浮点类型(float、double),则数组元素的值是 0.0。
      • 数组元素的类型是基本类型中的字符类型(char),则数组元素的值是‘\u0000’。
      • 数组元素的类型是基本类型中的布尔类型(boolean),则数组元素的值是 false。
      • 数组元素的类型是引用类型(类、接口和数组),则数组元素的值是 null。
    • 名称 返回值
      方法:clone() Object
      方法:equals(Object obj) boolean
      方法:getClass() Class<?>
      方法:hashCode() int
      方法:notify() void
      方法:notify All() void
      方法:toString() String
      方法:wait() void
      方法:wait(long timeout) void
      方法:wait(long timeout,int nanos) void
      属性:length int
    • 获取数组内元素语法:

      arrayName[index];
      
  2. Arrays类

    • Arrays 类是一个工具类,其中包含了数组操作的很多方法。这个 Arrays 类里均为 static 修饰的方法(static 修饰的方法可以直接通过类名调用),可以直接通过 Arrays.xxx(xxx) 的形式调用方法。

      1)int binarySearch(type[] a, type key)

      使用二分法查询 key 元素值在 a 数组中出现的索引,如果 a 数组不包含 key 元素值,则返回负数。调用该方法时要求数组中元素己经按升序排列,这样才能得到正确结果。

      2)int binarySearch(type[] a, int fromIndex, int toIndex, type key)

      这个方法与前一个方法类似,但它只搜索 a 数组中 fromIndex 到 toIndex 索引的元素。调用该方法时要求数组中元素己经按升序排列,这样才能得到正确结果。

      3)type[] copyOf(type[] original, int length)

      这个方法将会把 original 数组复制成一个新数组,其中 length 是新数组的长度。如果 length 小于 original 数组的长度,则新数组就是原数组的前面 length 个元素,如果 length 大于 original 数组的长度,则新数组的前面元索就是原数组的所有元素,后面补充 0(数值类型)、false(布尔类型)或者 null(引用类型)。

      4)type[] copyOfRange(type[] original, int from, int to)

      这个方法与前面方法相似,但这个方法只复制 original 数组的 from 索引到 to 索引的元素。

      5)boolean equals(type[] a, type[] a2)

      如果 a 数组和 a2 数组的长度相等,而且 a 数组和 a2 数组的数组元素也一一相同,该方法将返回 true。

      6)void fill(type[] a, type val)

      该方法将会把 a 数组的所有元素都赋值为 val。

      7)void fill(type[] a, int fromIndex, int toIndex, type val)

      该方法与前一个方法的作用相同,区别只是该方法仅仅将 a 数组的 fromIndex 到 toIndex 索引的数组元素赋值为 val。

      8)void sort(type[] a)

      该方法对 a 数组的数组元素进行排序。

      9)void sort(type[] a, int fromIndex, int toIndex)

      该方法与前一个方法相似,区别是该方法仅仅对 fromIndex 到 toIndex 索引的元素进行排序。

      10)String toString(type[] a)

      该方法将一个数组转换成一个字符串。该方法按顺序把多个数组元素连缀在一起,多个数组元素使用英文逗号,和空格隔开。

    • Java8 增强了 Arrays 类的功能,为 Arrays 类增加了一些工具方法,这些工具方法可以充分利用多 CPU 并行的能力来提高设值、排序的性能。下面是 Java 8 为 Arrays 类增加的工具方法。

      提示:由于计算机硬件的飞速发展,目前几乎所有家用 PC 都是 4 核、8 核的 CPU,而服务器的 CPU 则具有更好的性能,因此 Java 8 与时俱进地增加了并发支持,并发支持可以充分利用硬件设备来提高程序的运行性能。

      1)oid parallelPrefix(xxx[] array, XxxBinaryOperator op)

      该方法使用 op 参数指定的计算公式计算得到的结果作为新的元素。op 计算公式包括 left、right 两个形参,其中 left 代表数组中前一个索引处的元素,right 代表数组中当前索引处的元素,当计算第一个新数组元素时,left 的值默认为 1。

      2)void parallelPrefix(xxx[] array, int fromIndex, int toIndex, XxxBinaryOperator op)

      该方法与上一个方法相似,区别是该方法仅重新计算 fromIndex 到 toIndex 索引的元素。

      3)void setAll(xxx[] array, IntToXxxFunction generator)

      该方法使用指定的生成器(generator)为所有数组元素设置值,该生成器控制数组元素的值的生成算法。

      4)void parallelSetAll(xxx[] array, IntToXxxFunction generator)

      该方法的功能与上一个方法相同,只是该方法增加了并行能力,可以利用多 CPU 并行来提高性能。

      5)void parallelSort(xxx[] a)

      该方法的功能与 Arrays 类以前就有的 sort() 方法相似,只是该方法增加了并行能力,可以利用多 CPU 并行来提高性能。

      6)void parallelSort(xxx[] a,int fromIndex, int toIndex)

      该方法与上一个方法相似,区別是该方法仅对 fromIndex 到 toIndex 索引的元素进行排序。

      7)Spliterator.OfXxx spliterator(xxx[] array)

      将该数组的所有元素转换成对应的 Spliterator 对象。

      8)Spliterator.OfXxx spliterator(xxx[] array, int startInclusive, int endExclusive)

      该方法与上一个方法相似,区别是该方法仅转换 startInclusive 到 endExclusive 索引的元素。

      9)XxxStream stream(xxx[] array)

      该方法将数组转换为 Stream,Stream 是 Java 8 新增的流式编程的 API。

      10)XxxStream stream(xxx[] array, int startInclusive, int endExclusive)

      该方法与上一个方法相似,区别是该方法仅将 fromIndex 到 toIndex 索引的元索转换为 Stream。

      上面方法列表中,所有以 parallel 开头的方法都表示该方法可利用 CPU 并行的能力来提高性能。上面方法中的 xxx 代表不同的数据类型,比如处理 int[] 型数组时应将 xxx 换成 int,处理 long[] 型数组时应将 XXX 换成 long。


接下来看java基础学习(五)

posted @ 2021-04-03 14:15  那木  阅读(131)  评论(0编辑  收藏  举报