java基础学习(四)

时间:2021-04-03 19:43:04   收藏:0   阅读:14

java基础学习(四)

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

十二、包装类

2.Integer类

3.Float 类

4.Double 类

5.Number 类

6.Character 类

7.Boolean 类

8.Byte 类

十三、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基础学习(五)

原文:https://www.cnblogs.com/namusangga/p/14613662.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!