Math类:数学工具类,做一些数学计算,开方,对数,三角函数等

所有方法都是静态方法,不需要建立对象,直接用类名调用即可

示例:

这里写几个在日常开发中会用到的,比如三角函数之类的平时不会用到,了解即可

package demo;

public class MathDemo {
public static void main(String[] args) {
function1();
function2();
function3();
function4();
function5();
} public static void function1() {
int i = Math.abs(-9);
System.out.println(i);
// 输出:9,求绝对值
} public static void function2() {
double d1 = Math.floor(6.5);
double d2 = Math.ceil(6.5);
System.out.println(d1);// 6.0
System.out.println(d2);// 7.0
} public static void function3() {
double d1 = Math.pow(2.0, 3.0);
System.out.println(d1);
// 2的3次方,输出:8.0
double d2 = Math.sqrt(4.0);
System.out.println(d2);
// 4开发,输出2.0
} public static void function4() {
for (int i = 0; i < 10; i++) {
double d = Math.random();
System.out.println(d);
//打印随机数,介于0到1
}
} public static void function5() {
double d = Math.round(1.4234);
System.out.println(d);
//输出1.0,得到四舍五入值
}
}

Arrays类:数组工具类,帮助我们对数组进行一些操作:

有些方法可以在日常开发中为我们节省很多代码

示例:

package demo;

import java.util.Arrays;

public class ArraysDemo {
public static void main(String[] args) {
function1();
function2();
function3();
} public static void function1(){
//对数组升序排列,这里用了比冒泡排序性能高很多的快排
int[] arr = {5,4,8,7,3,1,6};
Arrays.sort(arr);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
//升序打印
} public static void function2(){
//数组的二分查找法,我的第6篇文章有原理介绍,与这里的原理大致上相同
int[] arr = {11,4,5,7,9,13,1};
//二分法前提是有序数组
Arrays.sort(arr);
int index = Arrays.binarySearch(arr, 7);
System.out.println(index);//排序后7的所有是3
//这里需要注意:如果这个元素在数组中不存在
//那么返回一个负数:(-插入点-1)
} public static void function3(){
int[] arr = {1,2,3,4,5};
String string = Arrays.toString(arr);
System.out.println(string);
//输出:[1, 2, 3, 4, 5] 字符串
//原理在我的前几篇文章中写过
}
}

有时候数组超过long型的大小,需要计算,怎么办?

BigInteger类:大数运算

示例:

package demo;

import java.math.BigInteger;

public class BigIntegerDemo {
public static void main(String[] args) {
function();
} public static void function() {
BigInteger b1 = new BigInteger("6666666666666666666666666666666");
BigInteger b2 = new BigInteger("1234567891234567891234567891231123123");
BigInteger b3 = b1.add(b2);// b1+b2
System.out.println(b3);//
BigInteger b4 = b1.subtract(b2);// b1-b2
System.out.println(b4);// -1234561224567901224567901224564456457
BigInteger b5 = b1.multiply(b2);// b1*b2
System.out.println(b5);// 很长一个数,这里不再复制
BigInteger b6 = b2.divide(b1);// b2/b1
System.out.println(b6);// }
}

BigDecimal类:浮点大数运行,提高浮点数运算精度

示例:

package demo;

import java.math.BigDecimal;

public class BigDecimalDemo {
public static void main(String[] args) {
System.out.println(0.09+0.01);//输出0.99999
System.out.println(1.0-0.32);//输出0.67999
//发现这里会出现不合适的结果
//原因:计算机二进制中,表示浮点数不精确造成的
//解决方法:BigDecimal类
function1();
function2();
}
public static void function1(){
BigDecimal b1 = new BigDecimal("0.09");
BigDecimal b2 = new BigDecimal("0.01");
BigDecimal b3 = b1.add(b2);//b1+b2
System.out.println(b3);//得到0.10,正确 BigDecimal b4 = new BigDecimal("1.0");
BigDecimal b5 = new BigDecimal("0.32");
BigDecimal b6 = b4.subtract(b5);//b4-b5
System.out.println(b6);//0.68,正确 BigDecimal b7 = b1.multiply(b2);//b1*b2
System.out.println(b7);//0.0009,正确
}
public static void function2(){
//除法方面有一些区别,需要注意下
BigDecimal b1 = new BigDecimal("1.301");
BigDecimal b2 = new BigDecimal("101");
//BigDecimal b3 = b1.divide(b2);//如果不整除这里会出现异常
BigDecimal b3 = b1.divide(b2,2,BigDecimal.ROUND_HALF_UP);
//第二个参数是保留两位小数的意思
//第三个参数是保留模式:最接近的数字舍入(即为四舍五入保留模式),还有很多其他模式
System.out.println(b3);//保留两位,得到0.02的结果
} }

Java学习笔记26(Math类、Arrays类、BigInteger类、BigDecimal类)的更多相关文章

  1. Java学习笔记26(异常)

    异常的定义: Java代码在运行过程中发生的问题就是异常 异常类:出现问题就会常见异常类对象,并抛出异常的相关信息,异常的位置,原因 异常体系: Throwable类是java中所有错误或异常的父类 ...

  2. [Day17]常用API(System、Math、Arrays、BigInteger、BigDecimal)

    1.基本类型包装类 1.1 8种基本类型对应的包装类 字节型 byte Byte 短整型 short Short 整型 int Integer 长整型 long Long 字符型 char Chara ...

  3. 【Java学习笔记之十二】Java8增强的工具类:Arrays的用法整理总结

    本文将整理 java.util.Arrays 工具类比较常用的方法:  本文介绍的方法基于JDK 1.7 之上.  1.  asList方法 @SafeVarargs public static &l ...

  4. Java学习笔记43(打印流、IO流工具类简单介绍)

    打印流: 有两个类:PrintStream,PrintWriter类,两个类的方法一致,区别在于构造器 PrintStream:构造方法:接收File类型,接收字符串文件名,接收字节输出流(Outpu ...

  5. Java学习笔记33(集合框架七:Collections工具类)

    数组有工具类,方面操作数组 集合也有工具类:Collections 常用方法示例: package demo; import java.util.ArrayList; import java.util ...

  6. Java学习笔记之——String和Arrays常用方法

    一.String常用方法 1.subString(int beginIndex,int endIndex) 截取字符串 从beginIndex开始截取,截取endIndex-beginIndex的长度 ...

  7. Java学习笔记之---API的应用

    Java学习笔记之---API的应用 (一)Object类 java.lang.Object 类 Object 是类层次结构的根类.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个 ...

  8. 0025 Java学习笔记-面向对象-final修饰符、不可变类

    final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...

  9. 0013 Java学习笔记-面向对象-static、静态变量、静态方法、静态块、单例类

    static可以修饰哪些成员 成员变量---可以修饰 构造方法---不可以 方法---可以修饰 初始化块---可以修饰 内部类(包括接口.枚举)---可以修饰 总的来说:静态成员不能访问非静态成员 静 ...

随机推荐

  1. 機器學習基石 (Machine Learning Foundations) 作业1 Q15-17的C++实现

    大家好,我是Mac Jiang.今天和大家分享Coursera-台湾大学-機器學習基石 (Machine Learning Foundations) -作业1的Q15-17题的C++实现. 这部分作业 ...

  2. vue-router实例

    最近刚刚用vue写了个公司项目,使用vue-cli构建的,算是中大型项目吧,然后这里想记录并且分享一下其中的知识点,希望对大家有帮助,后期会逐渐分享:话不多说,直接上代码!! main.js // T ...

  3. (转)解决jdk1.8中发送邮件失败(handshake_failure)问题

    解决jdk1.8中发送邮件失败(handshake_failure)问题 作者 zhisheng_tian 2016.08.12 22:44* 字数 1573 阅读 2818评论 6喜欢 9 暑假在家 ...

  4. 17089 最大m子段和

    17089 最大m子段和 时间限制:1000MS  内存限制:65535K提交次数:0 通过次数:0 题型: 编程题   语言: G++;GCC;VC Description "最大m子段和 ...

  5. PL/SQL Developer使用技巧(部分)

    PL/SQL Developer使用技巧(部分) 关键字自动大写 在sql命令窗口中输入SQL语句时,想要关键字自动大写,引人注目该怎么办呢? 一步设置就可以达成了.点击Tools->Prefe ...

  6. Java中数据类型及其之间的转换(转)

    Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种:1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits).2 ...

  7. H5之前端操作文件

    js是否能够操作文件? js在HTML5以前浏览器端是无法操作文件的,但HTML5中给a标签增加了一个download属性,只要有这个属性,点击这个链接时浏览器就不在打开链接指向的文件,而是改为下载( ...

  8. linux系统下,安装centos7.0系统,配置网卡出现的问题(与centos5.x、centos6.x版本,有差异)

    1.新建虚拟机时,自己下载的是centos64系统,选择系统时,默认选择centos,而未选择centos64位,导致犯了一个低级错误,导致后面网卡安装一直有问题 2.查看ip命令与centos5.x ...

  9. 使用SplitContainer来实现隐藏窗口的部分内容(转)

    有两种方法: (1) Splitter:比较老的方法 (2) SplitContainer:比较新的方法 最终界面如下: 方法一:使用Splitter实现 (1) 在窗口中添加一个Panel控件,即P ...

  10. c语言库函数测试

    1.函数名: abort功  能: 异常终止一个进程用  法: void abort(void);程序例: #include <stdio.h> #include <stdlib.h ...