java.math包
    BigDecimal
    BigInteger
    MathContext
    RoundingMode这是枚举
    
    BigDecimal
        不可变的,任意精度的有符号十进制数,适合商业计算中,数字很长的数字运算
        方法add,subtract,multiply,divide

package java_20180210_api_datetime;

import java.math.BigDecimal;
import java.math.MathContext; public class BigDemo { public static void main(String[] args) { // long l1=1213133242353245345345;
BigDecimal d1=new BigDecimal("20");
BigDecimal d3=new BigDecimal("5");
System.out.println(d1.add(d3));
System.out.println(d1.subtract(d3));
System.out.println(d1.multiply(d3));
System.out.println(d1.divide(d3));
System.out.println(d1.doubleValue());
System.out.println(d1.toString());
System.out.println(d1.toPlainString()); BigDecimal d2=new BigDecimal("134.56", new MathContext(2));
System.out.println(d2.toPlainString()); } }

数学运算类
    Math
    Random
    
    Math是java.lang中的类
    Random是java.util中的类

package java_20180211_api_math;

import java.util.Random;

public class MathDemo {

    public static void main(String[] args) {
System.out.println(Math.abs(-12.34));
System.out.println(Math.ceil(5.324));
System.out.println(Math.floor(-234.876));
for (int i = 0; i < 10; i++) {
System.out.println(Math.random());
} System.out.println("==============");
int i = 0;
do {
i++;
int max=100;
int min=60;
Random random = new Random(); int s = random.nextInt(max)%(max-min+1)+min;
System.out.print(s);
System.out.print(" ");
} while (i<10); System.out.println("==============");
//下面这个5是种子值
Random r1=new Random(5);
for (int j = 0; j < 10; j++) {
//加10就代表10-20之间的一个数字
System.out.println(r1.nextInt(11)+10);
}
} }

比较
    Comparable
    Comparator
    
    Comparable是一个函数式接口(只有一个抽象方法的接口)。java.lang.Comparable<T>
        为现有类提供一种比较的能力
    Comparator是一个函数式接口。java.util.Comparator<T>
        将两个类进行比较,在集合排序中会大量使用
    二者比较
        Comparable接口为子类提供比较的能力
        Comparator接口封装了比较的逻辑,可用于策略设计模式,其子类常作为排序方法中的参数

package java_20180211_api_math;

public class User implements Comparable<User> {
int age; @Override
public int compareTo(User o) {
if (age > o.age) {
return 1;
} else if (age < o.age) {
return -1;
}
return 0;
}
}
==================
package java_20180211_api_math; public class CompDemo { public static void main(String[] args) { User u1=new User();
u1.age=40;
User u2=new User();
u2.age=20; if (u1.compareTo(u2)>0) {
System.out.println("u1>u2");
} else if(u1.compareTo(u2)<0){
System.out.println("u1<u2");
}else {
System.out.println("u1==u2");
}
} }
=====================
package java_20180211_api_math; import java.util.Comparator; public class CompDemo2 implements Comparator<User> { @Override
public int compare(User o1, User o2) {
if (o1.age > o2.age) {
return 1;
} else if (o1.age < o2.age) {
return -1;
}
return 0;
}
}

迭代
    Iterable
    Iterator
    
    java.lang.Iterable<T>
    如果想要一个类放在foreach中遍历,就必须实现Iterable<T>这个接口,一般都是数组

package java_20180211_api_math;

import java.util.Iterator;

class Student {
String name; public Student(String name) {
this.name = name;
}
} class Clazz implements Iterable<Student> {
Student[] students; public Clazz(int num) {
students = new Student[num];
} int index = 0; public void add(Student s) {
students[index++] = s;
} @Override
public Iterator<Student> iterator() {
return new Iterator<Student>() {
int index = 0; @Override
public Student next() {
return students[index++];
} @Override
public boolean hasNext() {
return index != students.length;
}
};
}
} public class IterDemo { public static void main(String[] args) {
Clazz c1 = new Clazz(3);
Student s1 = new Student("s1");
Student s2 = new Student("s2");
Student s3 = new Student("s3");
c1.add(s1);
c1.add(s2);
c1.add(s3);
// for (Student stu : c1.students) {
// System.out.println(stu.name);
// }
for (Student stu : c1) {
System.out.println(stu.name);
}
}
}

java8_api_math的更多相关文章

随机推荐

  1. git clone 带用户名密码

    git使用用户名密码clone的方式: git clone http://username:password@remote eg: username:  abc@qq.com, pwd: test, ...

  2. HTML+css基础认识

    标签:<div><span                                                                              ...

  3. redis 脑裂等极端情况分析

    脑裂真的是一个很头疼的问题(ps: 脑袋都裂开了,能不疼吗?),看下面的图: 一.哨兵(sentinel)模式下的脑裂 如上图,1个master与3个slave组成的哨兵模式(哨兵独立部署于其它机器) ...

  4. RF新手常见问题总结

    RF新手常见问题总结--(基础篇) 1. 经常有人问这个元素找不到,一般先排除这两个地方,再自己找找A:是否等待了足够的时间让元素加载 (增加sleep xx, wait Until xxx)B:  ...

  5. 使用mbedtls的使用说明和AES加密方法(原来的PolarSSL)

    关于PolarSSL mbed TLS(以前称为PolarSSL)是TLS和SSL协议的实现,并且需要相应的加密算法和支持代码.这是双重许可与Apache许可证 2.0版(与GPLv2许可也可).网站 ...

  6. mac安装破解的Navicat

    原文:https://www.jianshu.com/p/f42785e55b6b 原始文档没操作成功,折腾了一下午,后来在如下地址看的简洁版的,突然发现一句重要的话,豁然开朗. 原文链接:https ...

  7. WCF分布式3-InstanceContext和ConcurrencyMode

    WCF中,如果将实现契约(接口)的服务配置默认为 InstanceContextMode = InstanceContextMode.Single, 也就是说这个服务对象,客户端调用这个对象的接口时, ...

  8. JS调用本地设备

    JS 允许通过 navigator.mediaDevices.getUserMedia(options) 直接调用本地的设备,比如麦克风,摄像头等.因为该操作涉及到用户隐私,所以调用的时候会弹框请求权 ...

  9. TP5 生成二维码

    首先下载这个类:http://phpqrcode.sourceforge.net/ 把下载的文件放到vendor下面 public function getWchatQrcode($users_id= ...

  10. css尺寸(大小)属性

    尺寸属性:用来控制元素大小的属性,单位为长度单位. 尺寸属性的使用场景 当使用相对长度单位定义尺寸时,元素的大小跟随窗口大小变化. 为保证元素的正常显示,需要设定元素的最大.最小长度. 手机端开发时需 ...