您的位置:首页 > 其它

11.2常用类(Arrays类,Bigdecimal类,BigInteger类,System类,Calendar类,Date类,Math类,Random类,正则表达式)

2017-08-07 10:52 465 查看
一、Arrays类

(1)数组工具类,由sun公司提供的官方文档中已经声明的类(底层已经实现了一些功能:java开发者只是纯粹的调用就可以了)

(2)常用方法:

publicstatic String toString(int[] a):将数组转换成字符串

publicstatic void sort(int[] a):将int类型的数组进行排序(升序),底层是一种快速排序法

publicstatic int binarySearch(int[] a,int key):二分查找法

 

二、BigDecimal类

(1)由于float类型以及double类型:浮点类型在存储数据的时候和整数类型是不一样的,存储的是有效位数字,浮点类型容易损失精度,导致数据的不精确,针对这种情况,java就提供了BigDeicmal类:(作用:运算数据的时候更加精确)

(2)构造方法:

public BigDecimal(String val)

(3)成员方法:

①public BigDecimal add(BigDecimal augend):加

②public BigDecimal subtract(BigDecimal subtrahend):减

③public BigDecimal multiply(BigDecimal multiplicand):乘

④public BigDecimal divide(BigDecimal divisor):除

⑤public BigDecimal divide(BigDecimaldivisor,int scale,RoundingMode,roundingMode)参数1:表示除数     
 参数2:取的有效数字      
参数3:舍入的一种模式

 

三、BigInteger类

(1)用来计算超出int范围的数据的运算

(2)常用的构造方法:

public BigInteger(String val):以字符串的形式表现一个十进制数据

(3)常用的方法:

①public BigInteger add(BigInteger val):加

②public BigInteger subtract(BigInteger val):减

③public BigInteger multiply(BigInteger val):乘

④public BigInteger divide(BigInteger val):除

⑤public BigInteger[]divideAndRemainder(BigInteger val):返回的是数组(商和余数)

应用举例:

BigIntegerb1 = new BigInteger("100");

BigIntegerb2 = new BigInteger("50");

BigInteger[]bi = b1.divideAndRemainder(b2);

System.out.println("bi[0]:"+bi[0]);//2

System.out.println("bi[0]:"+bi[1]);//0

 

四、System类

(1)概述:System
类包含一些有用的类字段和方法。它不能被实例化。

创建键盘录入对象:

Scannersc = new Scanner(System.in);

InputStream(字节输入流) is = System.in ; //抽象类的多态形式

System.out.println();输出语句

System.out:标准输出流返回的是一个打印输出流:PrintStream------>对象.println()

(2)常用的方法:

public static void gc():运行垃圾回收器,最终调用的是finalize()方法

final,finalize,finally(异常类的时候讲它:是用来释放资源的)的区别?(重点)

①final:最终的,无法更该的,可以修饰类,成员变量,成员方法。

修饰类,该类不能被继承

修饰成员方法,该方法不能被重写

修饰成员变量,该变量是常量,属于自定义常量

②fianlize:和垃圾回收器有关系,当内存中存在不用的对象的时候,启用gc()运行垃圾回收器去回收对象,释放资源,最终调用的还是finalize()(在自定义的类中一定要写Object中的方法)

(3)其他方法:

public static void exit(int status):表示终止当前正在运行的java虚拟机,非0状态,表示异常终止,一般情况:参数为0

举例:System.out.println("我喜欢运动....");

System.exit(0) ;//应用场景:也会用在循环语句中

System.out.println("我也喜欢音乐....");

运行结果:我喜欢运动....

public static long currentTimeMillis():返回以毫秒为单位的当前时间

单独使用,非常少,一般用在记录耗时的操作:循环语句

(4)常用方法:复制数组

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

从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束

举例:int[] arr ={11,22,33,44,55} ;

int[] arr2 = {6,7,8,9,10} ;      

System.arraycopy(arr, 1,arr2, 2, 2);

System.out.println("arr:"+Arrays.toString(arr));

System.out.println("arr2:"+Arrays.toString(arr2));

运行结果:arr:[11, 22, 33, 44, 55]

arr2:[6, 7, 22, 33, 10]

 

五、Calendar类

(1)日历类,Calendar
类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR
等日历字段之间的转换提供了一些方法

瞬间指定的是一个毫秒值

(2)由于Calendar是抽象类:

 public static CalendargetInstance():通过这个方法进行实例化:抽象类多态

public int get(int field):返回给定日历字段的值

(3)字段:

publicstatic final int YEAR:年份

publicstatic final int MONTH:在格里高利历和罗马儒略历中一年中的第一个月是
JANUARY
,它为
0;最后一个月取决于一年中的月份数。

publicstatic final int DATE:月份中的某天

(4)和日历有关的添加的方法:

publicabstract void add(int field,int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量

publicvoid set(int field, int value)将给定的日历字段设置为给定值

(5)程序测试:获取任意一年的二月有多少天,使用键盘录入改进

importjava.util.Calendar;

importjava.util.Scanner;

publicclass CalendarTest {

     
public static void main(String[] args) {

          
//创建键盘录入对象

          
Scanner sc = new Scanner(System.in);

 

          
//录入并接收数据

          
System.out.println("请输入一个年份:");

          
int year = sc.nextInt() ;

          

          
//创建日历类对象

          
Calendar c = Calendar.getInstance() ;

          

          
//去给日历对象设置日历时间

          
c.set(year, 2, 1);//其实3月1日

          

          
//在使用add指定时间量,往前推一天

          
c.add(Calendar.DATE, -1) ;

          

          
//输出即可

          
System.out.println(c.get(Calendar.DATE));

     
}

}

 

六、Date类

(1)日期类,表示特定的瞬间,精确到毫秒。

(2)构造方法:

public Date():空参构造(使用这个获取系统当前的日期时间)

public Date(long date):指定一个时间毫秒值

(3)两个常用的成员方法:

public long getTime():获取自1970年1月1日的表示Date对象的一个毫秒数

public void setTime(long time):指定一个毫秒数

如果用Date对象获取时间毫秒值getTime():获取当前的时间毫秒值,一般用System.currentTimeMillis(),替换掉它

如果给Date对象指定一个毫秒值时间用:setTime()

(4)Date(Date对象)和String(日期的字符串类型)类型的相互转换(重点)

Date---->String:格式化(也就是日期 ->
文本)

DateFormat类:但是该类是一个抽象类,不能直接实例化,所以不能直接使用它进行中间桥梁的转换!就用DateFormat的子类:SimpleDateFormat:格式化和解析日期或者解析时间的具体类;

SimpleDateFormat类

两个构造方法;

publicSimpleDateFormat():无参构造:使用默认的模式构造一个对象

publicSimpleDateFormat(String pattern):将一个 Date
格式化为日期/时间字符串指定一种模式;可以写xxx年xx月xx日 、 xxxx-xx-xx

方法(继承自DateFormat类):

publicfinal String format(Date date):将一个 Date
格式化为日期/时间字符串。

String(字符串的日期/时间的表现形式)---->Date对象:解析(文本->
日期)

使用SimpleDateFormat类的另一个方法:(继承自DateFormat类)

publicDate parse(String source):该方法会抛出一个异常:解析异常:parseException

这个转换里面的字符串的内容必须和模式的内容一致,否则抛异常!

【日期和时间模式】

年:                       
y             例如:2017                yyyy

年中的月份:         
M                  8,11                   MM

月份中的天数:      
d                 24,25                    dd

小时:                  
H                                             HH

分钟数 
:  
            m                                            mm

秒数                     
s                                               ss

 

七、Math类

(1)该类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数

(2)字段:

publicstatic final double E

publicstatic final double PI

(3)常用的成员方法:

①publicstatic int abs(int a):绝对值

②publicstatic double ceil(double a):向上取整(重点)

③publicstatic double floor(double a):向下取整

④publicstatic double pow(double a,double b):a的b次幂

⑤publicstatic double random():获取一个随机数:[0.0,1.0)(重点)

⑥publicstatic long round(double a):四舍五入,取整(重点)

⑦publicstatic int max(int a, int b):取最大值

⑧publicstatic double sqrt(double a):正平方根

 

八、Random类

(1)表示产生一个随机的类:

(2)构造方法:

publicRandom():无参构造,创建一个产生随机数的类对象,就是用构造形式

publicvoid setSeed(long seed):指定一个种子,这个种子(时间的毫秒值)

(3)成员方法:(重要)

nextInt():产生的随机数的范围在int类型的范围之内

nextInt(intn):删除的随机的范围在[0,n),能包括0不包括n这数据

 

九、正则表达式

常见的语法:

A:字符

x字符  
举例:a代表'a'

\\         反斜线字符            
代码中:两个反斜线表示一个反斜线

\t         制表符

\n        新行(换行)符

\r         回车符

B:字符类

[abc]         a、b
或 c

[^abc]       任何字符,除了 a、b
或 c(否定) 

[a-zA-Z]      a到 z
或 A 到 Z,两头的字母包括在内(范围)

C:预定义字符类

.          如果本身表示的就是一个.,怎么办? \.:表示点(代码中写正则表达式的时候:\\.)

\d        数字:[0-9]

\w       单词字符:[a-zA-Z_0-9] :举例邮箱zhangsan_isSone123456@163.com

D:边界匹配器

\b        单词边界:hello;world;haha;Xixi

^         以什么开头        ^0     :表示以0开头

$          以什么结尾

E:Greedy
数量词(重点)

X?,x出现1次或者0次

X*,x出现了0次或多次

x+,x出现了1次或多次

x{n}:x恰好出现n次

x{n,}:x至少出现了n次

x{n,m}:x至少n次,不超过m次
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐