java复习(9-11)第三季

1.异常的抛出与捕捉


1.抛出异常


异常抛出后,如果不做任何处理,程序就会被终止。例如,将一个字符串转换为整型,可以通过nteger 类的 parselnt0方法来实现。但如果该字符串不是数字形式,parselnt0方法就会抛出异常,程序将在出现异常的位置终止,不再执行下面的语句。
 

2.捕捉异常


java语言的异常捕捉结构由try,catch和finally3部分组成。其中,try 语块存放的是可能发生异常的 Java 语句;catch 语句块在 y 语块之后,用来激发被捕的异常; finaly 语句块是异常处理结构的最后执行部分,无论 y 语句块中的代码如何退出,都将执行 finally 语句块。
 

finally语句块


完整的异常处理语句一定要包含 finally 语句,无论程序中有无异常发生,并且无论之前的ty-atch句块是否顺利执行完毕,都会执行 finally 语句。但是,在以下4 种特殊情况下,finally 不会被执行:

1.在finally 语句块中发生了异常。

2.在前面的代码中使用了 System.exit0退出程序。

3.程序所在的线程死亡。

4.关闭CPU。
 

2.java常见的异常类

3.自定义异常

使用java内置的异常类可以描述在编程时出现的大部分异常情况。除此之外,用户只需继承Exception类即可自定义异常类。在程序中使用自定义异常类,大部分可分为以下几个步骤:

1.创建自定义异常类

2.在方法中通过throw关键字抛出异常对象

3.如果在当前抛出异常的方法中处理异常,可以使用try-catch语句块捕获并处理,否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作。
 

4.在方法中抛出异常


若某个方法可能会发生异常,但不想在当前方法中处理这个异常,则可以使用throws、throw关键字在方法中抛出异常。

1.使用throws关键字抛出异常


throws关键字通常被应用在声明方法时,用来指定方法可能被抛出的异常。多个异常可使用逗号分隔。

2.使用throw关键字抛出异常


throw关键字通常用于方法体中,并且抛出一个异常对象。程序在执行到 throw 语句时立即终止它后面的语句都不执行。通过 throw 抛出异常后,如果想在上一级代码中捕获并处理异常,则需要在抛出异常的方法中使用 throws 关键字在方法的声明中指明要抛出的异常;如果要捕捉 throw 抛出的异常,则必须使用try-catch语句块。

throw通常用来抛出用户自定义异常。
 

异常类结构

Java 中提供了常见的 RuntimeException 异常,这些异常可通过 ty-catch 语句捕获

RuntimeException 异常的种类

5.异常的使用原则


Java 异常强制用户去考虑程序的强健性和安全性。异常处理不应用来控制程序的正常流程,其主要作用是捕获程序在运行时发生的异常并进行相应的处理。编写代码处理某个方法可能出现的异常时,可遵循以下几条原则:

1.在当前方法声明中使用 y-catch 语句捕获异常。

2.一个方法被覆盖时,覆盖它的方法必须抛出相同的异常或异常的子类。

3.如果父类抛出多个异常,则覆盖方法必须抛出那些异常的一个子集,不能抛出新异常。
 

字符串

一.String类

单个字符可以用char类型保存,多个字符组成的文本就需要保存在String对象中。String通常被称为字符串,一个String对象可以保存(2的32个次方 - 1)个字节(占用4GB空间大小)的文本内容。

1.声明字符串

在java语言中,字符串必须包含在一对双引号(“”)之内

2.创建字符串

在java语言中,将字符串作为对象来处理,因此可以创建其他类对象一样来创建字符串对象。创建对象要使用类的构造方法。

1.String(char a[])

该方法用一个字符数组a创建String对象,代码如下:

char a[ ] = {‘g’,‘o’,‘o’,‘d’};

String s = new String(a);

2.String(char a[] , int offset, int length)

该方法提取字符数组a中的一部分创建一个字符串对象。参数offset表示开始截取字符串的位置,length表示截取字符串的长度。

3.String(char[] value)

该构造方法可分配一个新的String对象,使其表示字符数组参数中所有元素连接的结果。

二.连接字符串

1.连接多个字符串

使用“+”运算符可实现连接多个字符串的功能。“+”运算符可以连接多个String对象并产生一个新的String对象。

2.连接其他数据类型

字符串也可同其他基本数据类型进行连接。如果将字符串同其他数据类型数据进行连接,会将其他数据类型的数据直接转换为字符串。

三.获取字符串信息

字符串作为对象,可通过相应方法获取字符串的有效信息,如获取某字符串的长度、某个索引位置的字符等。

1.获取字符串长度

使用String类的length()方法可获取声明的字符串对象的长度。

2.字符串查找

String类提供了两种查找字符串的方法,即indexOf()与lastindxOf()方法。这两种方法都允许在字符串中搜索指定条件的字符或字符串。indexOf()方法返回的是搜索的字符或字符串首次出现的位置,lastIndexOf()方法返回的是搜索的字符或字符串最后一次的位置。
 

1.inexOf(String s)

该方法用于返回参数字符串s在指定字符串中首次出现的索引位置。当调用String类的indexOf()方法时,会从当前字符串的开始位置搜索s的位置。如果没有检索到字符串s,该方法的返回值是-1。

2.lastlndexOf(String str)

该方法用于指定字符串最后一次出现的索引位置。当调用String类的lastlndexOf()方法时,会从当前字符串的开始位置检索参数字符串str,并将最后一次出现str的索引位置返回。如果没有检索到字符串str,该方法返回-1。

四.字符串操作


1.获取子字符串


通过String类的substring()方法可对字符串进行截取。substring()方法被两种不同的重载形式,来满足不同的需要。这些形式的共同点就是都利用字符串的下标进行截取,且应明确字符串下标是从0开始的。

1.substring(int beginlndex)
该方法返回的是从指定的索引位置开始截取直到该字符串结尾的子串。语法如下:

str.substring(int beginlndex)

其中,beginlndex指定从某一索引处开始截取字符串。

截取字符串,代码如下:

String str = "Hello Word";

String substr = str.substring(3);

2.substring(int beginlndex,int endlndex)
该方法返回的是从字符串某一索引位置开始截取至某一索引位置结束的子串,代码如下:

substring(int beginlndex,int endlndex)

beginlndex:

开始截取子字符串的索引位置。

endlndex:

子字符串在整个字符串中的结束位置。
 

2.去除空格

trim()方法返回字符串的副本,忽略前导空格和尾部空格。语法如下:

str.trim();

其中,str为任何字符串对象。

3.字符串的替换


replace()方法可实现将指定的字符或字符串替换成新的字符或字符串。

str.replace(charSequence target, CharSequence replacement)

1.targt: 要替换的字符或字符串。

2.replacement:用于替换原来字符串的内容。

replace()方法返回的结果是一个新的字符串。如果字符或字符串 oldChar 没有出现在该对象表达式中的字符串序列中,则将原字符串返回。
 

4.判断字符串的开始和结尾


startsWith()方法与endsWith()方法分别用于判断字符串是否以指定的内容开始或结束。这两个方法的返回值都为boolean类型。

1.startsWith()方法
该方法用于判断当前字符串对象的前缀是否为参数指定的字符串。语法如下:

str.startsWith(String prefix)

其中,prefix是指作为前缀的字符串。 

2.endsWith()方法
该方法用于判断当前字符串是否为给定的子字符串。语法如下:

str.endsWith(String suffix)

其中,suffix是指作为后缀的字符串。
 

5.判断字符串是否相等

对字符串对象进行比较不能简单地使用比较运算符“==”,因为比较运算符比较的是两个字符串的地址是否相同。即使两个字符串的内容相同,两个对象的内存地址也是不同的,使用两个字符串的内容相同,两个对象的内存地址也是不同的,使用比较运算符仍然会返回false。

1.equals()方法

如果两个字符串具有相同的字符和长度,则使用equals()方法进行比较时,返回true。

2.equalsLgnoreCase()方法

使用equals()方法对字符串进行比较时是否分大小写的,而使用equalsLgnoreCase()方法是在忽略了大小写的情况下比较两个字符串是否相等,返回结果仍为boolean类型。

6.按字典顺序比较两个字符串


compareTo()方法为按字典顺序比较两个字符串,该比较基于字符串中各个字符的Unicode值,按字典顺序将String对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此String对象位于参数字符串之前,则比较结果为一个负整数;如果按字典顺序此String对象位于参数字符串之后,则比较结果为一个正整数;如果这两个字符串相等,则结果为0。

7.字母大小写转换


String类的toLowerCase()方法可将字符串中的所有大小字母改写为小写字母,而toUpperCase()方法可将字符串中的所有小写字母改写为大写字母。

1.toLowerCase()方法
该方法将字符串中的所有大写字母转换为小写。如果字符串中没有应该被转换的字符,则将原字符串返回;否则将返回一个新的字符串,将原字符串中每个大写字母都转换成小写,字符串长度不变。语法如下:

str.toLowerCase()

其中,str是要进行转换的字符串。

2.toUpperCase()方法
该方法将字符串中所有的小写字母转换为大写。如果字符串中没有应该被转换的字符,则将原字符串返回;否则返回一个新字符串,将原字符串中每个小写字母都转换为大写,字符串长度不变,语法如下:

str.toUpperCase()

其中,str是要进行转换的字符串。
 

8.字符串分割


使用split()方法可以使字符串按指定的分割字符或字符串进行分割,并将分割后的结果存放在字符串数组中。split()方法提供了以下两种字符串分割形式。

1.split(String sign)
该方法可根据给定的分割符对字符串进行拆分。语法如下:

str.split(String sign)

其中,sign 为分割字符串的分割符,也可以使用正则表达式。

2.split(String sign,int limit)
该方法可根据给定的分割符对字符串进行拆分,并限定拆分的次数。语法如下:

str.split(String sign,int limit)

sign:

分割字符串的分割符,也可以使用正则表达式。

limit:

 限制的分割次数。
 

五.格式化字符串


Sting 类的静态format()方法用于创建格式化的字符串。format()方法有两种重载形式。

1..format(String format,Object...args)
该方法使用指定的格式字符串和参数返回一个格式化字符串,格式化后的新字符串使用本地默认的语言环境。语法如下:

str.format(String format,Object...args)

format:

格式字符串。

args:

格式字符串中由格式说明符引用的参数。如果还有格式说明符以外的参数,则忽略这些额外的参数。此参数的数目是可变的,可以为0。

2.format(Local l,String format,Object...args)
该方法使用指定的语言环境、格式字符串和参数返回一个格式化字符串,格式化后的新字符串便用其指定的语言环境。语法如下:

str.format(Local l,String format,Object...args)

 l:

格式化过程中要应用的语言环境。如果1为null,则不进行本地化。

 format:

格式字符串。

args:

格式字符串中由格式说明符引用的参数。如果还有格式说明符以外的参数,则忽略这些额外的参数。此参数的数目是可变的,可以为0。
 

1.日期和时间字符串格式化

在应用程序设计中,经常需要显示日期和时间。如果想输出满意的日期和时间格式,一般需要编写大量的代码、经过各种算法才能实现。formatI()方法通过给定的特殊转换符作为参数来实现对日期和时间的格式化。

2.时间格式化

使用 format()方法不仅可以完成日期的格式化也可以实现时间的格式化。时间的格式化转换符要比日期的格式化转换符更多、更精确,它可以将时间格式化为时、分、秒、毫秒等。

3.格式化常见的日期时间组合

格式化日期与时间组合的转换符定义了各种日期时间组合式

2.常规类型格式化

常规类型格式化可应用于任何参数类型,可通过表中的转换符来实现。

六.使用正则表达式

正则表达式通常被用于判断语句中,用来检查某一字符串是否满足某一格式。正则表达式是含有-些具有特殊意义字符的字符串,这些特殊字符称为正则表达式的元字符。例如,“\\d”表示数字0~9中的任何一个,“\d”就是元字符。

 在正则表达式中,可以使用方括号括起若干个字符来表示一个元字符,该元字特可代表方括号中的任何一个字符。例如,reg ="[abc]4”,这样字符串 a4、b4、c4 都是和正则表达式匹配的字符串,方括号元字符还可以为其他格式。如:

1.[456]: 表 4、5、6之外的任何字符。

2.[a-r]: 代表 a~r中的任何一个字母。

3.[a-zA-Z]: 可表示任意一个英文字母。

4.[a-e[g-z]]: 代表a~e或 g~z中的任何一个字母(并运算)。

5.[a-o&&[def]]: 代表字母 d、e、f (交运算)。

6.[a-d&&[bc]]: 代表字母a、d (差运算)。
 

在正则表达式中允许使用限定修饰符来限定元字符出现的次数

七.字符串生成器


创建成功的字符串对象,其长度是固定的,内容不能被改变和编译。虽然使用“+”可以达到附加新字符或字符串的目的,但“+”会产生一个新的 String 实例,会在内存中创建新的字符串对象。如重复地对字符串进行修改,将极大地增加系统开销。而JDK 新增了可变的字符序列 StringBuilder类大大提高了频繁增加字符串的效率。
 

1.append()方法


该方法用于向字符串生成器中追加内容。通过该方法的多个重载形式,可实现接受任何类型的数据,如int、boolean、char、String、double 或者另一个字符串生成器等。语法如下:

append(content)

其中,content表示要追加到字符串生成器中的内容,可以是任何类型的数据或者其他对象。

2.insert(int offset, arg)方法


该方法用于向字符串生成器中的指定位置插入数据内容。通过该方法的不同重载形式,可实现向字符串生成器中插入int、float、char 和 boolean 等基本数据类型的数据或其他对象。语法如下:

insert(int offset arg)

ofset:

字符串生成器的位置。该参数必须大于等于0,且小于等于此序列的长度。

arg:

将插入至字符串生成器的位置。该参数可以是任何数据类型的数据或其他对象。
 

3.delete(int start , int end)方法

移除此序列的子字符串中的字符。该子字符串从指定的 stat 处开始,一直到索引 end-1 处的字符如果不存在这种字符,则一直到序列尾部。如果 start 等于 end,则不发生任何更改。

.start: 将要删除的字符串的起点位置。

2. end:将要删除的字符串的终点位置。

包装类

Integer 类提供了以下4个常量:

1.  MAX_VALUE:表示int 类型可取的最大值,即2(31次方)-1。

2.  MIN_VALUE:表示int 类型可取的最小值,即-2(31次方)。

3.  SIZE:用来以二进制补码形式表示 int 值的位数。

4.  TYPE:表示基本类型int的 Class 实例。
 

Double类在对象中包装一个基本类型为 double 的值,每个Double类的对象都包含一个double类的字段。此外,该类还提供多个方法,可以将 double类型转换为 String类型,将 String类型转换为 doubl类型,也提供了其他一些处理 double 类型时有用的常量和方法。

Double类主要提供了以下常量:

1.  MAX_EXPONENT:返回int 值,表示有限double 变量可能具有的最大指数

2.  MIN_EXPONENT:返回 int 值,表示标准化 double 变量可能具有的最小指数。

3.  NEGATIVE_INFINITY:返回 double 值,表示保存 double 类型的负无穷大值的常量。

4.  POSITIVE_INFINITY:返回double 值,表示保存double 类型的正无穷大值的常量。
 

Boolean 类将基本类型为 boolean 的值包装在一个对象中。一个 Boolean 类型的对象只包含一个类型为boolean 的字段。此外,此类还为 boolean 类型和 String 类型的相互转换提供了许多方法,并提供了处理 boolean 类型时非常有用的其他一些常量和方法。

Boolean 提供了以下3个常量:

1.  TRUE:对应基值 true的 Boolean 对象。

2.  FALSE:对应基值 false的 Boolean 对象。

3.  TYPE:基本类型 boolean的 Class 对象。

Character 类在对象中包装一个基本类型为 char 的值,该类提供了多种方法,以确定字符的类别(小写字母、数字等),并可以很方便地将字符从大写转换成小写,反之亦然。

Character 类提供了大量表示特定字符的常量,例如:

1.  CONNECTOR_PUNCTUATION:返回 byte 型值,表示Unicode 规范中的常规类别“Pc”

2.  UNASSIGNED:返回 byte 型值,表示Unicode 规范中的常规类别“Cn”。

3.  TITLECASE_LETTER:返回 byte 型值,表示Unicode 规范中的常规类别“Lt”。
 

数字格式化

没有格式化的数据遵循以下原则:
1.  如果数据绝对值大于0.001 并且小于10000000,使以常规小数形式表示
2.  如果数据绝对值小于0.001或者大于10000000,使用科学记数法表示。

1.Math类

1.三角函数方法


Math 类中包含的三角函数方法如下:

1.  public static double sin(double a): 返回角的三角正弦。

2.  public static double cos(double a): 返回角的三角余弦。

3.  public static double tan(double a): 返回角的三角正切。

4.  public static double asin(double a):返回一个值的反正弦。

5.  public static double acos(double a): 返回一个值的反余弦。

6.  public static double atan(double a):返回一个值的反正切。

7.  public static double toRadians(double angdeg): 将角度转换为弧度。

8.  public static double toDegrees(double angrad):将狐度转换为角度。
以上每个方法的参数和返回值都是 double型的。将这些方法的参数的值设置为 double 型是有一定道理的,参数以弧度代替角度来实现,其中1°等于π /180 弧度,所以180°可以使用π弧度来表示。除了可以获取角的正弦、余弦、正切、反正弦、反余弦、反正切,Math 类还提供了角度和弧度相互转换的方法 toRadians()和 toDegrees()。但需要注意的是,角度与弧度的转换通常是不精确的。
 

2.指数函数方法


Math 类中与指数相关的函数方法如下:

1.  public static double exp(double a):用于获取e的a次方。

2.  public static double log(double a):用于取自然对数,即取Ina的值。

3.  public static double log10(double a):用于取底数为10 的a的对数。

4.  public static double sqrt(double a): 用于取a的平方根,其中a 的值不能为负值。

5.  public static double cbrt(doublea):用于取a的立方根。

6.  public static double pow(double a,double b): 用于取a的b 次方。
 

3.取整函数方法


在具体的问题中,取整操作使用也很普遍,所以 Java 在 Math 类中添加了数字取整方法。Math类中主要包括以下几种取整方法:

1.  public static double ceil(double a): 返回大于等于参数的最小整数。

2.  public static double floor(double a):返回小于等于参数的最大整数。

3.  public static double rint(double a): 返回与参数最接近的整数,如果存在两个同样接近的整数V则结果取偶数。

4.  public staticintround(float a):将参数加上0.5后返回与参数最近的整数。

5.  public static longround(double a): 将参数加上0.5 后返与参数最近的整数,然后强制转换为长整型。
 

4.取最大、最小值和绝对值函数方法


在程序中最常用的方法就是取最大值、最小值、绝对值等,Math 类中包括的操作方法如下:

1.  public static double max(double adouble b): 取a与b之间的最大值。

2.  public static int min(int aint b): 取a与b之间的最小值,参数为整型。

3.  public static long min(long a,long b): 取a与b之间的最小值,参数为长整型。

4.  public static float min(float a,floatb):取a与b之间的最小值,参数为单精度浮点型

5.  public static double min(double a,double b):取a与b之间的最小值,参数为双精度浮点型。

6.  public static intabs(int a):返回整参数的绝对值。

7.  public static longabs(long a):返回长整型参数的绝对值。

8.  public static float abs(float a): 返回单精度浮点型参数的绝对值。

9.  public static double abs(double a): 返回双精度浮点型参数的绝对值。
 

2.Random类

Random 类是JDK 中的随机数生成器类,可以通过实例化一个 Radom 对象创建一个随机数生器

1.  r: Random类对象。

2.  seedValue:随机数生成器的种子。

在Random 类中,提供了获取各种数据类型随机数的方法,下面列举几个常用的方法:

1.  public intnextInt():返回一个随机整数。

2.  public int nextInt(int n): 返回大于等于0且小于n的随机整数。

3.  public long nextLong0: 返回一个随机长整型值。

4.  public boolean nextBoolean0: 返回一个随机布尔型值。

5.  public float nextFloat0:返回一个随机单精度浮点型值。

6.  日 public doublenextDouble0:返回一个随机双精度浮点型值。

 7.  public double nextGaussian():返回一个概率密度为高斯分布的双精度浮点型值。
 

3.BigInteger类


Biginteger 类的数字范围较 Integer 类的数字范围要大得多。前文介绍过 Integer 类是 int 的包装类int 的最大值为 23-1,如果要计算更大的数字,使用 nteer 类就无法实现了,所以 Java 中提供]BigInteger 类来处理更大的数字。Biginteger 类支持任意精度的整数,也就是说,在运算中 BigIntege类可以准确地表示任何大小的整数值而不会丢失信息。

在 BigInteger 类中封装了多种操作,除了基本的加、减、乘、除操作,还提供了绝对值、相反数最大公约数以及判断是否为质数等操作。

使用 BigInteger类,可以实例化一个 BigInteger 对象,并自动调用相应的构造函数。BigInteger类具有很多构造函数,但最直接的一种方式是参数以字符串形式代表要处理的数字。
 

一旦创建了对象实例,就可以调用 Bielncger 类中的一些方法进行运算操作,包括基本的数学这算和位运算以及一些取相反数、取绝对值等操作。列举了 BigInteger 类中常用的几种运算方法:

1.  public BigInteger add(BigInteger val): 做加法运算。

2.  public BigInteger subtract(BigInteger val): 做减法运算。

3.  public BigInteger multiply(BigInteger val): 做乘法运算。

4.  public BigInteger divide(BigInteger val): 做除法运算。

5.  public BigInteger remainder(BigInteger val): 做取余操作。

6.  public BigInteger  divideAndRemainder(Biplntegcr val): 用数组返回余数和商,结果数组中第一个值为商,第二个值为余数。

7.  public BigInteger pow(intexponent): 进行取参数的exponent 次方操作。

8.  public BigInteger negate0: 取相反数。

9.  public BigInteger shifLeft(intn):将数字左移n位,如果n为负数,做右移操作。

10.  public BigInteger shiftRight(intn):将数字右移n位,如果n为负数,做左移操作。

11.  public BigInteger and(BigInteger val): 做与操作。

12.  口 public BigInteger or(BigInteger val):做或操作。

13.  publicintcompareTo(BigInteger val):做数字比较操作。

14.  public boolean equals(Object x):当参数x是BigInteger类型的数字并且数值与对象实例的数值相等时,返回true。

15.  public BigInteger min(BigInteger val):返回较小的数值。

16.  public BigInteger max(BigIntegerval):返回较大的数值。
 

4.BigDecimal类


BigDecimal类和BigInteger类都能实现大数字的运算,不同的是 BigDecimal类加入了小数的概念般的foat 型和 double 型数据只可以用来做科学计算或工程计算,但由于在商业计算中要求数字精度比较高,所以要用到 BigDecimal类。BigDecimal类支持任何精度的定点数,可以用它来精确计算货币值。
 

System类

System类是JDK中提供的系统类,该类是用final修饰的,所以不允许被继承。System类提供了很多系统层面的操作方法,并且这些方法全部但是静态的。

日期时间类

1.Date类

Date类用于表示日期时间,使用该类表示时间需要使用其构造方法创建对象,

2.日期时间格式化


DateFormat类是日期时间格式化子类的抽象类,可以按照指定的格式对日期或时间进行格式化,DateFormat类提供了很多类方法,以获得基于默认或给定语环境和多种格式化风格的默认日期时间formatter,格式化风格主要包括SHORT、MEDIUM、LONG和FULL4种:

1.SHORT:   完全为数字,如11.13.42或3:30pm。

2.MEDIUM:   较长,如Jan 12,1343。

3.LONG:   更长,如January 12,1343或3:30:32pm。

4.FULL:   完全指定,如Tuesday、April 12、1952AD或3:30:42pm PST。

另外,使用DateFormat类还可以自定义日期时间的格式。要格式化一个当前语言环境下的日期,首先需要创建DateFormat类的一个对象,由于它是抽象类,因此使用其静态方法getDateInstance()进行创建,语法如下:

DateFormat df = Dateformat.getDateInstance();

使用getDateInstance()方法获取的是所在国家或地区的标准日期格式。另外,DateFormat 类还提供了一些其他静态方法。

3.Calendar类

Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(如获得下星期的日期)提供了一些方法。另外,该类还为实现包范围外的具体日历系统提供了其他字段和方法,这些字段和方法被定义为 protected。

Calendar 提供了一个类方法 getInstance(),以获得此类型的一个通用的对象。Calendar 类的getInstance()方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化,

六.Runtime类


Runtime类是JDK提供的运行时类,该类为Java程序提供了与当前运行环境相连接的一个通道,Java程序可以利用该类对当前的运行环境执行一些简单的操作。Runtime 类不能使用 new 关键字创建实例,只能通过 Runtime.getRuntime()方法获取实例。

1.执行本地命令

本地命令指的是操作系统的命令。例如,在 Linux 系统下就表示shell命令,在 Windows 系统下表示 cmd 命令。

untime类提供exec0方法让Java 代码可以执行系统的命令,exec0方法有很多重载的形式,例如:

Process exec(String command)

Process exec(Stringl cmdarray)

1.  command:要执行的系统命令,字符串类型。

2.  cmdarray:要执行的命令和相应的命令参数,字符串数组类型。

其实这两个重载方式很类似,如执行“javac hello.java”这行命令,使用第一种重载方式的代码如下:

Runtime.getRuntime().exec("javac hello.java");

使用第二种重载方式的代码如下:

String command] = { "javac", "hello.java" };

Runtime.getRuntime().exec(command);

exec()方法会返回一个 Process 对象。Process 类是 Java中进程类,该类是抽象类,不能使用关键字创建实例。Process类的常用方法下表所示,开发可以使用 getinputStream()方法获取返回的信息。

2.查看内存

Runtime 类可以通过 freeMemory()方法查看当前Java 虚拟机可用内存的剩余量。如果程序能够实时监控内存剩余量,就可以尽量控制程序对内存的占用,从而避免出现“内存溢出”的情况。同样,也可以用来对测试程序性能,检验程序算法是否导致内存紧张。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值