第11章常用库类

11.1包装类:将基本数据类型封装在包装类中。

包装类及其对应的数据类型
包装类数据类型
Bytebyte
Shortshort
 Integerint
Longlong
 Floatfloat
Doubledouble
Characterchar
Booleanboolean

11.1.1Integer类:

java.lang 包中的 Integer 类、Byte类、Short 类和 Long 类,分别将基本数据类型int、byte、shor和long成一类,于这类都是Number 类的子类,区别就是封装不同的数据类型,其包含方法基本相同,所以本节以 Integer 类为例讲解整数包装类。
ateger 类一本数据类型int的值,该类的对象包含一个int 类型的字段。此外,该类提供了多个方法,能在int 类型和String类型之间互相转换,同时还提供了其他一些处理int类型时非常有用的常量和方法。Integer 类的常用方法如表11.2所示。

 

 11.1.2Double类 :

Double 类和Float 类是对 double、float 基本类型的封装,”它们都是Number类的子类,都是对浮点数进行操作,所以常用方法基本相同,本节将对 Double 类进行行讲解。对于 Float 类,可以参考Double类的相关内容。
Double类在对象中包装一个基本类型为double的值,每个 Double 类的对象都包含一个double 类型的字段。此外,该类还提供多个方法,可以将 double 类型转换为 String 类型,将 String 类型转换为doublo类型,也提供了其他一些处理 double类型时有用的常量和方法。

 

 

Double 类主要提供了以下常常量:
MAX EXPONENT:返回 int 值,表示有限 double变量可能具有的最大指数。
MIN EXPONENT:返 回int 值,表示标准化 double变量可 能具有的最小指数。 
NEGATIVE INFINITY 返回 double 值,表示保存 double类 类型的负无穷大值的常量。 
POSITIVE INFINITY: 返回double值,表示保存double类 型的正无穷大值的常量。

11.1.3 Boolean类:

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

11.1.4Character类:

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

 

Character 类提供了大量表示特定字符的常量, 例如: 
M CONNECTOR PUNCTUATION:返回by te型值,表示Unicode规范中的常规类别“Pc”。
UNASSIGNED:返回byte型值,表示U nicode 规范中的常规类别“Cn”。
TITLECASE LETTER:返回byte型值, 表示Unicode规范中的常规类别“Lt”。

11.1.5Number类:

对于数值型的包装类类,它们有一个共同的父类--Number类,该类是一个抽象类,它是Byte、Integer、Short、Long、Flo oat 和 Double 类的父类,其子类必须提供将表示的数值转换为byte、int、short、long、float和double的的方法。例如,doubleValue()方法返回双精度浮点值,floatValue()方法返回单精度浮点值,这些方法如表11.6 所示。

11.2数字处理

在 Java语言中,提供了一个执行数学基本运算的Math类,该类包括常用的数学运算方法,如角函数方法、指数函数方法、对数函数方法、平方根函数方法等一些常用数学函数方法。
在实际开发中,随机数的使用是很普遍的,所以要掌握生成随机数的操作。在 Java 中主要提供了时种生成随机数的方式,分别为调用 Math类andom方法生成随机数和调用 Random 类生成各种数据类型的随机数。
Java中,还提供了大数字的操作类,即javamath.BigInteger 类与java.math.BigDecimal 类。这内个美用于高精度计算,其中BigInteger类是针对整数的处理类,而BigDecimal类则是针对大小数的处理类。

 11.2.1数字格式化: double型和 float型数据 在Java中使用java.tex DecimalFormat格式化数字
在 Java 中,没有格式化的数据遵循以下原则:
 如果数据绝对值大于0.001并且小于10000000,使以常规小数形式表示。 如果数据绝对值小于0.001或者大于10000000,使用科学记数法表示。
DecimalFormatberFormat一个子类,用于格式化十进制数字。它可以将一些数字格化为整数、浮点数、百分数等。通过使用该类可以为要输出的数字加上单位或控制数字的精度。-情况下,可以在实例化DecimalFormat象时传数字格式,也可以通过DecimalFormat 类中 applyPattern()方法来实现数字格式化。
当格式化数字时,可在DecimalFormat用一特字符构成一个格式化模板,使数字按照一定的特殊字符规则进行匹配。

DecimalFormat类中的特殊字符及说明
字符说明
0代表阿拉伯数字,使用特殊字符“0”表示数字的一位阿拉伯数字,如果该位不存在数字,则显示0
#代表阿拉伯数字,使用特殊字符“#”表示数字的一位阿拉伯数字,如果该位存在数字,则显示字符:如果该位不存在数字,则不显示
.小数分隔符或货币小数分隔符
-负号
,分组分隔符
E分隔科学记数法中的尾数和指数
%放置在数字的前缀或后缀,将数字乘以100显示为百分数
\u2030放置在数字的前缀或后缀,将数字乘以1000 显示为千分数
\u00A4 放置在数字的前缀或后缀,作为货币记号
'单引号,当上述特殊字符出现在数字中时,应为特殊符号添加单引号,系统会将此符号视为普通符号处理

 

11.2.2.Math类:
Math类提供了众多数学函数方法,主要包括三角函数方法,指数函数方法,取整函数方法大值、最小值,以及平均值函数方法。

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

 public static double sin(doublea);返回角的三角正弦。

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

 public static double tan(double a):返回角的三角正切。
public static double asin(double a):返回一个值的反正弦。

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

public static double atan(double a):返回一个值的反正切。
public static double toRadians(double angdeg):将角度转换为弧度。

public static double toDegrees(double angrad):将弧度转换为角度。

2.指数函数方法
Math 类中与指数相关的函数方法如下。
 public static double exp(double a):用于获取e的a次方,即取e^a。
public static double log(double a):用于取自然对数,即取 lna 的值。

public static double log10(double a):用于取底数为10的a的对数。
public static double sqrt(doublea):用于取a的平方根,其中a的值不能为负值。

public static double cbrt(double a):用于取 a 的立方根。
public static double pow(double a,double b):用于取 a 的 b 次方。

3.取整函数方法

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

public static double floor(double a):返回小于等于参数的最大整数。向下取整
public static double rint(double a):返回与参数最接近的整数,如果存在两个同样接近的整数,则结果取偶数。
public static int round(float a): 将参数加上 0.5 后返回与参数最近的整数。
ublic static long round(doublea):将参数加上05回与参数最近的整数,然后强制转换
长整型。

4.取最大值、最小值、绝对值函数方法
public static double max(double a,double b): 取 a 与 b 之间的最大值。
public static int min(int a,int b): 取a与b之间的最小值,参数为整型。
public static long min(longa,long b):取a与b之间的最小值,参数为长整型。
public static float min(floata,float b):取a与b之间的最小值,参数为单精度浮点型。

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

public static int abs(int a):返回整型参数的绝对值。
public static long abs(long a):返回长整型参数的绝对值。
public static float abs(float a):返回单精度浮点型参数的绝对值。
 public static double abs(double a):返回双精度浮点型参数的绝对值。

11.2.3Random类

生成随机数语法    Random r=new Random();        

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

public long nextLong):返回一个随机长整型值。

public boolean nextBooleanO:返回一个随机布尔型值。
public float nextFloatO:返一个随机单精度浮点型值。

 public double nextDoubleO:返回一个随机双精度浮点型值。

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

11.2.4BigInteger类

只能存整.
BigInteger类的数字范围较Integer类的数字范围要大得多。前文介绍过Integer类是int的包装类 int的最大值为2^31-1,如果要计算更大的数字,使用Integer类就无法实现了,所以Java 中提供了 Biginteger 类来处理更大的数字。Biglnteger类支持任意精度的整数,也就是说,在运算中Bigintega类可以准确地表示任何大小的整数值而不会丢失信息。
在Biginteger类中封装了多种操作,除了基本的加、减、乘、除操作,还提供了绝对值、相反数最大公约数以及判断是否为质数等操作。
使用BigInteger 类,可以实例化一个BigInteger对象,并自动调用相应的构造函数。BigInteg具有很多构造函数,但最直接的一种方式是参数以字符串形式代表要处理的数字。
例如,将2转换为Biglnteger 类型,可以使用以下语句进行初始化操作:


Biginteger twolnstance=new BigInteger("2");
 

 public Biglnteger add(Biglnteger val):做加法运算。
 public BigInteger subtract(BigInteger val):做减法运算。

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

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

public BigInteger remainder(BigInteger val):做取余操作。
public BigInteger[ divideAndRemainder(BigInteger val):用数组返余数和商,结果
一个值为商,第二个值为余数。
 public BigInteger pow(int exponent):进行取参数的 exponent 次方操作。

public BigInteger negate):取相反数。
public BigInteger shiftLef(int n):将数字左移n位,如果n为负数,做右移操作

public BigInteger shifRight(int n):将数字右移n位,如果n为负数,做左移操作。

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

public BigInteger or(BigInteger val):做或操作。
public int compareTo( BigInteger val):做数字比较操作。
public boolean equals(Objectx): 当参数x是BigInteger类型的数字并且数值与对象实例相等时,返回 true
Mpublic BigInteger min(BigInteger val):返回较小的数值

public BigInteger max(BigInteger val):返回较大的数值。

11.2.5BigDecimal 类

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

BigDecimal(double val) 实例化时将双精度浮点型转换为BigDecimal类型 
BigDecimal(String val) 实例化时将字符串形式转换为 BigDecimal类型

BigDecimal类实现的加、减、乘、除的方法方法 功能说明 :
add(BigDecimal augend) 做加法操作 
subtract(BigDecimal subtrahend) 做减法操作 
multiply(BigDecimal multiplicand) 做乘法操作 
divide(BigDecimal divisorint scale,RoundingModeroundingMode) 做除法操作,方法中3个参数分别代表除数、商的小数点后的位 数、近似处理模式

 

 11.3System类

是java中提供的系统类,该类final修饰的,所以不允许被继承,system类提供了许多系统层面的操作方法,这些方法是静态。

11.3.1控制输入台输出字符,system类提供了三个静态对象,in,out,err。

1.不会自动换行的orint()方法

System.out.print();

2.会自动换行的println()方法

System.out.println();

11.3.2计时

11.4Scanner类

扫描器,让scanner扫描System.in可获取用户输入的数

 11.5日期时间类

11.5.1Date类

 Date 类的构造方法及其说明:
Date()分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)
Date(long date)分配Date对象并始化此对象,表示自标准基准时间(即1971月1日00:00:00GMT)起经过指定毫秒数 date 后的时间

after(Date when) 测试当前日期是否在指定的日期之后 
before(Date when) 测试当前日期是否在指定的日期之前 
getTime() 获得自1970年1月1日00:00:00GMT开始到现在所经过的毫秒数 
setTime(long time) 设置当前Date对象所表示的日期时间值,该值用以表示1970年1月100:00:00MT 以后 time毫秒的时间点

 

11.5.2日期时间格式化 

1.DateFormat类是日期时间格式化子类的抽象类,不可用new 直接创建对象,需使用匿名内部类可以按照指定的格式对日期或时间进行格式化。 DateFormat类提供了很多类方法,以获得基于默认或给定语言环境和多种格式化风格的默认日期时间 Formatter,格式化风格主要包括 SHORT、MEDIUM、LONG和FULL 4种:
SHORT:完全为数字,如 12.13.52或3:30pm。

MEDIUM:较长,如 Jan 12,1952。
LONG:更长,如January12,1952或3:30:32pm。
MFULL:完全指定,如 Tuesday、April 12、1952AD或3:30:42pmPST。

 DateFormat df =DateFormat.getDatelnstance();

DatrFormat的常用方法及说明:
format(Date date) 将一个Date对象实例格式化为日期/时间字符串 
getCalendar() 获取与此日期/时间格式器关联的日历 
getDateInstance() 获取日期格式器,该格式器具有默认语言环境的默认格式化风格 
getDateTimeInstance() 获取日期/时间格式器,该格式器具有默认语言环境的默认格式化风格getinstancc()获取为日期和时间使用SHORT风格的默认日期/时间格式器
getTimeinstance() 获取时间格式器,该格式器具有默认语言环境的默认格式化风格 
parse(String source) 将字符串解析成一个日期,并返回这个日期的 Date 对象

2.SimpleDateFormat类

是DateFormat的子类,该类是一个以与语言环境相关的方式来格式化和分析日期的具体类,提供了19个格式化字符。允许进行格式化(日期——>文本),分析(文本——>日期)和规范化。

SimpleDateFormat的格式化字符
字母日期或时间元素类型示例 
GEra标志符TextAD 
y  Year199;96


 

11.5.3Calendar日历类:

是一个抽象类,

Calender提供了一个类方法----getInstance(),以此获得此类型的一个通用对象。

语法如下:

Calendar类提供的常用字段及说明

Calendar rightNow = Calendar.getInstance();

 

 Calendar类提供的常用方法及其说明

 

 add()方法和roll()方法都用来为给定的日历字段添加或减去指定的时间量,他们主要区别在于:使用add()方法时会影响大的字段,像数学里的加法进位或错位,而使用roll()方法设置的日期字段只是进行增加或减少,不会改变更大的字段。

11.6Runtime类

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

11.6.1执行本地命令,系统操作的命令( Linux系统下就表示shell命令,windows系统下表示cmd)

Runtime类提供exec()方法让java代码可以执行系统的命令,exec()方法有多种重载形式。

Process exec(String command)要执行的命令字符串类型

process exec(String[] cmdarray)

exec()方法会返回一个Process对象。process类是java中进程类,该类是抽象类不能使用new关键字创建实例。可以使用getInputStream()方法获取进程返回的信息。

Process类的常用方法
方法功能描述方法功能描述
destroy()结束进程getInputStream()获取进程的输入流
getErrorStream()获取进程的错误流getOutputStream()获取进程的输出流

 

 11.6.2查看内存

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值