一:相关数字类

–整数 Short, Int, Long
–浮点数 Float, Double
–大数类 BigInteger(大整数), BigDecimal(大浮点数)
–随机数类 Random
工具类 Math
java.math包

二:基本类型回顾

short,16位,2个字节,有符号的以二进制补码表示的整数–(--, -^-^-),默认值0
int, 32位,4个字节,有符号的以二进制补码表示的整数–(---, -^-^-),默认值0
long, 64位,8个字节,有符号的以二进制补码表示的整数–-,,,,,,(-^)--,,,,,,(^ -),默认值0L
        short a1=;
System.out.println(a1); int b1=;
System.out.println(b1); long c1=2147483647; //若是 在int范围类,会隐式转换
System.out.println(b1); long c2=2147483648L; //若是 超出int范围类,必须在后面加上L,不然会报错The literal 2147483648 of type int is out of range
System.out.println(b1);
float,单精度,32位,4个字节,符合IEEE 754标准的浮点数,默认值0.0f。float的范围为1.40129846432481707e- to 3.40282346638528860e+38 (无论正负).
double,双精度,32位,4个字节,符合IEEE 754标准的浮点数,默认值0.0d。double的范围为4.94065645841246544e-324d to 1.79769313486231570e+308d (无论正负)
float和double都不能用来表示很精确的数
        //float f=1.23;    //错误,必须在后面加上f
float f=1.23f; double d=4.56d;
double e=4.564667877777979464646; //正确,可以省略d System.out.println(f); //1.23
System.out.println((double)f); //1.2300000190734863小转大,精度缺失
System.out.println((float)e); //4.5646677会截断 System.out.println(f==1.22999999999f); //true
System.out.println(f-1.2299999999f); //0.0 System.out.println(d==4.55999999999999999); //true
System.out.println(d-4.55999999999999999); //0.0

三:大数字类(重点)

(一)大整数类BigInteger:支持无限大整数运算

        BigInteger b1=new BigInteger("");
BigInteger b2=new BigInteger("");
System.out.println(b1+"+"+b2+"="+b1.add(b2));
System.out.println(b1+"*"+b2+"="+b1.multiply(b2));
System.out.println(b1+"/"+b2+"="+b1.divide(b2));
System.out.println(b1+"-"+b2+"="+b1.subtract(b2));
System.out.println("min in b1 b2:"+b1.min(b2));
System.out.println("max in b1 b2:"+b1.max(b2));
System.out.println("b1==b2?:"+b1.equals(b2));
//求商取余,返回的是两个数据,用数组接收
BigInteger res[]=b2.divideAndRemainder(b1);
System.out.println(b1+"/"+b2+"="+res[]+"......"+res[]);
int flag=b1.compareTo(b2);
if(flag==) {
System.out.println("b1==b2");
}else if(flag<) {
System.out.println("b1<b2");
}else{
System.out.println("b1>b2");
}

java中equals和compareTo的区别---解惑

(二)大浮点数BigDecimal:支持无限大小数运算

        BigDecimal b1 = new BigDecimal("123456789.987654321"); // 声明BigDecimal对象
BigDecimal b2 = new BigDecimal("987654321.123456789"); // 声明BigDecimal对象
System.out.println("b1: " + b1 + ", b2:" + b2);
System.out.println("加法操作:" + b2.add(b1)); // 加法操作
System.out.println("减法操作:" + b2.subtract(b1)); // 减法操作
System.out.println("乘法操作:" + b2.multiply(b1)); // 乘法操作
//需要指定位数,防止无限循环,或者包含在try-catch中
System.out.println("除法操作:" + b2.divide(b1,,BigDecimal.ROUND_HALF_UP)); // 除法操作 System.out.println("最大数:" + b2.max(b1)); // 求出最大数
System.out.println("最小数:" + b2.min(b1)); // 求出最小数 int flag = b1.compareTo(b2);
if (flag == -)
System.out.println("比较操作: b1<b2");
else if (flag == )
System.out.println("比较操作: b1==b2");
else
System.out.println("比较操作: b1>b2");

注意:尽量采用字符串赋值

System.out.println(new BigDecimal("2.3"));
System.out.println(new BigDecimal(2.3));
2.3
2.29999999999999982236431605997495353221893310546875

注意:除法需要指定位数,防止除不尽,无限循环。或者异常捕获

四:Random 随机数类

nextInt() 返回一个随机int
nextInt(int a) 返回一个[,a)之间的随机int
nextDouble()返回一个[0.0,1.0]之间double
ints 方法批量返回随机数组
此外:Math.random() 返回一个[0.0,1.0]之间doub

(一)Random类

        //第一种办法,采用Random类
Random rd=new Random();
System.out.println(rd.nextInt());
System.out.println(rd.nextInt()); System.out.println(rd.nextInt());
System.out.println(rd.nextInt()); System.out.println(rd.nextLong());
System.out.println(rd.nextDouble());
System.out.println(rd.nextBoolean());
System.out.println(rd.nextBoolean());
System.out.println(rd.nextFloat());
-

0.05085002528976956
true
true
0.3958646

(二)使用Math.random参数随机数

     //第二种,生成一个范围内的随机数 例如0到时10之间的随机数
//Math.random[0,1)
System.out.println(Math.round(Math.random()*));

(三)JDK8新增ints

//JDK 8 新增方法
rd.ints(); //返回无限个int类型范围内的数据
int[] arr = rd.ints().toArray(); //生成10个int范围类的个数。
for (int i = ; i < arr.length; i++) {
System.out.println(arr[i]);
}
System.out.println("========================="); arr = rd.ints(, , ).toArray();
for (int i = ; i < arr.length; i++) {
System.out.println(arr[i]);
} System.out.println("========================="); arr = rd.ints().limit().toArray();
for (int i = ; i < arr.length; i++) {
System.out.println(arr[i]);
}

五:数字工具类java.lang.Math

绝对值函数abs
对数函数log
比较函数max、min
幂函数pow
四舍五入函数round等
向下取整floor
向上取整ceil
....

JAVA核心技术I---JAVA基础知识(数字相关类)的更多相关文章

  1. 《Java核心技术·卷Ⅰ:基础知识(原版10》学习笔记 第5章 继承

    <Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 目录 <Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 5.1 类.超类和子类 5.1 ...

  2. Java核心技术 卷1 基础知识-第一天

    基本数据类型 java是一种强数据类的的语言 共有8种基本数据类型 其中: 整型4种 int(4字节) short(2字节) long(8字节) byte(1字节) java中整型的范围与机器无关 长 ...

  3. [Java面试三]JavaWeb基础知识总结.

    1.web服务器与HTTP协议 Web服务器 l WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. l Internet上供外界访问的Web资源分为: • 静 ...

  4. Java学习之旅基础知识篇:数据类型及流程控制

    经过开篇对Java运行机制及相关环境搭建,本篇主要讨论Java程序开发的基础知识点,我简单的梳理一下.在讲解数据类型之前,我顺便提及一下Java注释:单行注释.多行注释以及文档注释,这里重点强调文档注 ...

  5. java 程序运行的基础知识【Java bytecode】

    聊聊文字,写一篇关于 java 基础知识的博文. JVM 线程栈 到 函数运行 每一个JVM线程来说启动的时候都会创建一个私有的线程栈.一个jvm线程栈用来存储栈帧,jvm线程栈和C语言中的栈很类似, ...

  6. Java学习1——计算机基础知识

    本文包含了一些计算机基础知识:计算机组成:Windows常用快捷键:DOS常用命令:计算机语言发展史.

  7. Java中浮点数的基础知识

    偶然查看Math.round的JDK public static int round(float a) { if (a != 0x1.fffffep-2f) // greatest float val ...

  8. Java学习之旅基础知识篇:面向对象之封装、继承及多态

    Java是一种面向对象设计的高级语言,支持继承.封装和多态三大基本特征,首先我们从面向对象两大概念:类和对象(也称为实例)谈起.来看看最基本的类定义语法: /*命名规则: *类名(首字母大写,多个单词 ...

  9. Java Script 学习笔记 -- 基础知识

    Java script 概述 java Script 的简介 JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为 ...

  10. JAVA面试题相关基础知识

        1.面向对象的特征有哪些方面 ①抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节 ...

随机推荐

  1. BZOJ4519[Cqoi2016]不同的最小割——最小割树+map

    题目描述 学过图论的同学都知道最小割的概念:对于一个图,某个对图中结点的划分将图中所有结点分成 两个部分,如果结点s,t不在同一个部分中,则称这个划分是关于s,t的割.对于带权图来说,将 所有顶点处在 ...

  2. LOJ6436 [PKUSC2018] 神仙的游戏 【FFT】

    题目分析: 题目要求前后缀相同,把串反过来之后是一个很明显的卷积的形式.这样我们可以完成初步判断(即可以知道哪些必然不行). 然后考虑一下虽然卷积结果成立,但是存在问号冲突的情况. 箭头之间应当不存在 ...

  3. php 排序数组array_multisort

    $arr[] = array('name'=>'a','flag'=>1); $arr[] = array('name'=>'b','flag'=>2); $arr[] = a ...

  4. apache 与 tomcat、PHP 关系

    Apache:web网络服务器,只支持静态网页,如HTML,C语言开发的 Tomcat:web网络服务器,是apache的扩展,且是个java代码解释器,可脱离apache独立使用,Servlet.J ...

  5. MT【256】2016四川高考解答压轴题

    (2016四川高考数学解答压轴题)设函数$f(x)=ax^2-a-\ln x,a\in R$. 1)讨论$f(x)$的单调性;2)确定$a$的所有可能值,使得$f(x)>\dfrac{1}{x} ...

  6. Dynamic CRM 2015学习笔记(5)CRM 2015 导入 OData Query Designer 解决方案

    以前一直使用OData Query Designer来生成.验证odata查询字符串,本想把它导入到CRM 2015的环境里,但报错: 到MSDN上发现太老版本的solution确实不能再导入到crm ...

  7. 面试---Python中的模块和包是什么?

    python模块是: 自我包含并且有组织的代码片段为模块. 表现形式为:写的代码保存为文件.这个文件就是一个模块.sample.py 其中文件名smaple为模块名字. python包是: 包是一个有 ...

  8. Spring Cloud Vault介绍

    https://mp.weixin.qq.com/s?__biz=MzU0MDEwMjgwNA==&mid=2247484838&idx=1&sn=6439ed96133dde ...

  9. js jquery 数组的合并 对象的合并

    转载自:http://www.cnblogs.com/xingxiangyi/p/6416468.html 1 数组合并 1.1 concat 方法 1 2 3 4 var a=[1,2,3],b=[ ...

  10. 省选前的JOI

    RT,发现找不到题,于是又开了新坑 JOI特色:重思考,代码难度(相比NOI系列)基本没有 (省选前到处挖坑2333) JOI 2017 Final 焚风现象 差分,莫得了 (不是看到200ms就tm ...