Java常用类库详细讲解(二)

 【今日】😶‍🌫️😶‍🌫️😶‍🌫️😶‍🌫️😶‍🌫️

轻舟终过万重山

目录

​编辑

 一   数字处理

【数字格式化】

【Math类】

【Random类】

【BigInteger类】

【BigDecimal类】

 二   System类

 ​编辑

 三   Scanner类

 四   Runtime类


 

 

 一   数字处理

【数字格式化】

😶‍🌫️😶‍🌫️😶‍🌫️   数字格式化在解决实际问题时应用非常普遍,如表示某超市的商品价格,需要保留两位有效数字数字格式化操作主要针对的是浮点型数据,包括double 型和 float型数据。在Java中使用 java.enDecimalFormat格式化数字。

😶‍🌫️😶‍🌫️😶‍🌫️ DecimalFormat类是NumberFormat的一个子类,用于格式化十进制数字。它可以将一些数字格化为整数、浮点数、百分数等。通过使用该类可以为要输出的数字加上单位或控制数字的精度

 构造方法:

 其中“####”为格式化模板。

     当格式化数字时,可在DecimalFormat类中使用一些特殊字符构成一个格式化模板,使数字按照一定的特殊字符规则进行匹配。

 DecimalFormat类中的特殊字符及其说明

 实列代码🤔🤔🤔

 

import java.text.DecimalFormat;

public class Dome {
	static void format(String pattern,double value) {
		DecimalFormat df = new DecimalFormat(pattern);
		System.out.println("原来的值 "+value);
		System.out.println("格式化模板"+pattern);
		System.out.println("格式化的值"+df.format(value));
		System.out.println("-------------");
	}

	public static void main(String[] args) {
		format("000",123);
		format("0000",123);
		format("####",123);
		format("###,##,##.##",1234567.89);//#分割
		format("0.0\u2030",0.079);//千分号
		

	}

}

😎😎😎 运行结果:

 

【Math类】

😶‍🌫️😶‍🌫️😶‍🌫️Math类提供了众多数学函数方法,主要包括三角函数方法,指数函数方法,取整函数方法,取量大值、最小值,以及平均值函数方法。这些方法都被定义为static形式,所以在程序中应用比较简便。可以使用如下形式调用:

Math.数学方法

1. java.lang包不需要引入,系统会自动调用。

2. Math类提供的都是静态方法。

       在Math类中,除函数方法外还存在一些常用数学常量,如PI、E等。这些数学常量作为Math的成员变量出现,调用起来也很简单。可以使用如下形式调用:
Math.PI
Math.E

1.三角函数方法 

 2.指数函数方法

 3.取整函数方法

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

 实列代码😎😎😎


public class TEOM {
	public static void main(String[] args) {
		System.out.println("圆周率 :"+Math.PI);
		System.out.println("自然数e:"+Math.E);
		System.out.println("---三角函数方法---");
		System.out.println("90度的正弦值:"+Math.sin(Math.PI/2));//Math.PI是Π相当于180度
		System.out.println("0度的余弦值:"+Math.cos(0));
		System.out.println("60度的正弦值:"+Math.sin(Math.PI/3));
		System.out.println("Π/2的角度为:"+Math.toDegrees(Math.PI/2));
		System.out.println("---指数函数方法---");
		System.out.println("e的平方值为:"+Math.exp(2));
		System.out.println("以e为底5的对数值为:"+Math.log(5));
		System.out.println("35的平方根值为:"+Math.sqrt(35));
		System.out.println("2的19次方为:"+Math.pow(2, 19));
		System.out.println("---取整函数方法---");
		System.out.println("Ceil(5.2):"+Math.ceil(5.2));
		System.out.println("Ceil(5.6):"+Math.ceil(5.6));
		System.out.println("floor(5.2):"+Math.floor(5.2));
		System.out.println("floor(5.6):"+Math.floor(5.6));
		System.out.println("四舍五入方法round(5.5):"+Math.round(5.5));
		System.out.println("---取最大值、最小值、绝对值函数方法---");
		System.out.println("5与9谁大?"+Math.max(5, 9));
		System.out.println("86与48谁小?"+Math.min(86, 48));
		System.out.println("-89的绝对值为:"+Math.abs(-89));
	
	}
}

 运行结果😶‍🌫️😶‍🌫️😶‍🌫️

【Random类】

 😶‍🌫️😶‍🌫️😶‍🌫️Random类是JDK中的随机数生成器类,可以通过实例化一个Random对象创建一个随机数生成器,语法如下:
Random r=new Random();

以这种方式实例化对象时,Java编译器将以系统当前时间作为随机数生成器的种子。因为每时每刻的时间不可能相同,所以产生的随机数不同。但是如果运行速度太快,也会产生两个运行结果相同的随机数。

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

 举个例子:

 

import java.util.Random;

public class text {

	public static void main(String[] args) {
		Random r = new Random();
		System.out.println(r.nextInt(100));//随机生成0-99的数
	}
}

【BigInteger类】

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

构造方法:

BigInteger i = new BigInteger("99999");
BigInteger i = BigInteger.valueOf(99999L);

 BigInteger类中常用的几种方法:

public BigInteger add(BigInteger val):做加法运算。
public BigInteger subtract(BigInteger val):做减法运算。
public BigInteger multiply(BigInteger val):做乘法运算。
public BigInteger divide(BigInteger val):做除法运算。
public Biglnteger remainder(BigInteger val):做取余操作。
public BigInteger[] divideAndRemainder(BigInteger val):用数组返回余数和商,结果数组中第一个值为商,第二个值为余数。
public BigInteger pow(int exponent):进行取参数的exponent次方操作。
public BigInteger negate():取相反数。
public BigInteger shiftLeft(int n):将数字左移n位,如果n为负数,做右移操作。public BigInteger shiftRight(int n):将数字右移n位,如果n为负数,做左移操作。public BigInteger and(BigInteger val):做与操作。
public BigInteger or(BigInteger val):做或操作。
public int compareTo(BigInteger val):做数字比较操作。
public boolean equals(Objectx):当参数x是BigInteger类型的数字并且数值与对象实例的数值相等时,返回true。
public BigInteger min(BigInteger val):返回较小的数值。
public BigInteger max(BigInteger val):返回较大的数值。

 

import java.math.BigInteger;

public class text {

	public static void main(String[] args) {
		BigInteger b1=new BigInteger("1568464");
		BigInteger b2=new BigInteger("8956282");
		System.out.println(b1+"与"+b2+"的最大公约数为:"+b1.gcd(b2));
	}

}

 实现效果😎😎😎

 

【BigDecimal类】

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

 BigDecimal类中的常用构造方法

 

 BigDecimal类实现的加、减、乘、除的方法

 

 BigDecimal类中的divide()方法的多种处理模式

 代码😶‍🌫️😶‍🌫️😶‍🌫️

import java.math.BigDecimal;
import java.math.RoundingMode;

public class text {

	public static void main(String[] args) {
		BigDecimal b1 = new BigDecimal("0.65984321");
		BigDecimal b2 = new BigDecimal("0.9856151");
		System.out.println(b1+"➗"+b2+"(保留6位)="+b1.divide(b2, 6,RoundingMode.UP));
	
	}

}

运行结果😶‍🌫️😶‍🌫️😶‍🌫️

 二   System类

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

System类提供的常用方法

这里我们只要记住两种:

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

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

 【计时】

     System.currentTimeMillis方法可以获取自1970年1月1日零点至今的毫秒数。虽然 Date 日期也有类似的方法,但代码会比System类多,所以System.currentTimeMillisO方法是为获取当前毫秒最常用的方法。因为该方法的返回值精确到毫秒,所以可以利用该方法来记录程序的运行时间。

 

 查看循环一万次所用的时间:


public class text {
	public static void main(String[] args) {
		long star = System.currentTimeMillis();//开始时间
		String str=null;
		for(int i=0;i<10000;i++) {
			str=str+i;
		}
		long end = System.currentTimeMillis();
		System.out.print("循环用时"+(end-star)+"毫秒");
	}
}

 

 

 三   Scanner类

与C语言不同,Java从控制台中读出用户输入的值,用到的不是一行可以直接使用的代码,而是由一个叫Scanner的类来实现的。Scanner英文直译就是扫描仪,它的用途就和现实生活的扫描仪一样,可以把数字化信息流转为人类可识别的文字。控制台输出内容用到了System.out就表示向控制台输出,

System.in就表示从控制台输入,

让Scanner扫描System.in就可以获取用户输入的值了

使用Scanner类扫描控制台的代码如下:

Scanner sc = new Scanner(System.in);

Scanner类的几个常用方法

 四   Runtime类

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

Runtime常用方法 

 

 【执行本地命令】

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class Dome {
	public static void main(String[] args) {
		Runtime r = Runtime.getRuntime();
		try {
			Process p=r.exec("help");
			InputStream is=p.getInputStream();
			BufferedReader br=new BufferedReader(new InputStreamReader(is));
			String tmp=null;
			while((tmp=br.readLine())!=null) {
				System.out.println(tmp);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

【查看内存】

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


public class Dome1 {
	public static void main(String[] args) {
		Runtime r=Runtime.getRuntime();
		int[] a=new int[100];
		long before=r.freeMemory();
		System.out.println("赋值前空间内存字节数:"+before);
		for(int i=0;i<a.length;i++) {
			a[i]=1;
		}
		long after=r.freeMemory();
		System.out.println("赋值后空间内存字节数:"+after);
		System.out.println("用掉的内存字节数:"+(before-after));
		
	}

}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值