(1)BigIntege:实现任意精度的整数运算.(2)BigDecimal:实现任意精度的浮点运算. 例如: 使用BigDecimal进行浮点数比较 import java.math.BigDecimal; public class HelloWorld{ public static void main(String[] args){ BigDecimal a=BigDecimal.valueOf(1.0); a=a.subtract(BigDecimal.valueOf(0.1)); //s…
java.math包提供了java中的数学类 包括基本的浮点库.复杂运算以及任意精度的数据运算   '可以看得到,主要包括三个类一个枚举 BigDecimal和BigInteger接下来会详细介绍 先说下另外两个   RoundingMode 舍入行为/ 近似模式   对于很多计算,都可能涉及到精度的问题 比如两个数进行除法, 十进制下,1/3  结果为无限循环小数 显然计算机中不可能保存这个无限循环的小数,那么这个 0.3333333...... 你到底要近似成为多少? 0?  0.5? 0.…
java.math包提供了java中的数学类 包括基本的浮点库.复杂运算以及任意精度的数据运算   '可以看得到,主要包括三个类一个枚举 BigDecimal和BigInteger接下来会详细介绍 先说下另外两个   原文地址:[十五]java.math包简介,RoundingMode与MathContext RoundingMode 舍入行为/ 近似模式     对于很多计算,都可能涉及到精度的问题 比如两个数进行除法, 十进制下,1/3  结果为无限循环小数 显然计算机中不可能保存这个无限循…
package com.MyUtils.file; [java] view plain copy import java.io.File; import java.io.FileFilter; import java.io.IOException; import java.net.JarURLConnection; import java.net.URI; import java.net.URISyntaxException; import java.net.URL; import java.u…
List,Set,Map在java.util包下都是接口 List有两个实现类:ArrayList和LinkedListSet有两个实现类:HashSet和LinkedHashSetAbstractSet实现了Set A:LinkedList实现了List接口: B: AbstractSet实现了Set接口: C: HashSet继承自AbstractSet基类: D: WeakMap继承自 AbstractMap…
java.io 包下的类有哪些 + 面试题 IO 介绍 IO 是 Input/Output 的缩写,它是基于流模型实现的,比如操作文件时使用输入流和输出流来写入和读取文件等. IO 分类 传统的 IO,按照流类型我们可以分为: 字符流 字节流 其中,字符流包括 Reader.Writer:字节流包括 InputStream.OutputStream. 传统 IO 的类关系图,如下图所示: IO 使用 了解了 IO 之间的关系,下面我们正式进入实战环节,分别来看字符流(Reader.Writer)…
1.引言 借用<Effactive Java>这本书中的话,float和double类型的主要设计目标是为了科学计算和工程计算.他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的.然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合.但是,商业计算往往要求结果精确,这时候BigDecimal就派上大用场啦. 2.BigDecimal简介 BigDecimal 由任意精度的整数非标度值 和32 位的整数标度 (scale) 组成.如果为零或正数…
springboot 在启动时候,常启动不起来,检查发现是不同包下面有同名的service和serviceImpl,按理说不同包下是可以有同名的类存在的,但是启动就是启动不了,报错说 org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'roleServiceImpl' for bean class [com.example.servic…
Math类: java.lang.Math 类中包含基本的数字操作,如指数.对数.平方根和三角函数. java.math是一个包,提供用于执行任意精度整数(BigInteger)算法和任意精度小数(BigDecimal)算法的类. java.lang.Math 类中包含E和PI两个静态常量,以及进行科学计算的类(static)方法,可以直接通过类名调用. public static final Double E = 2.7182818284590452354 public static fina…
Atomic原子类:为基本类型的封装类Boolean,Integer,Long,对象引用等提供原子操作. 一.Atomic包下的所有类如下表: 类摘要 AtomicBoolean 可以用原子方式更新的 boolean 值. AtomicInteger 可以用原子方式更新的 int 值. AtomicIntegerArray 可以用原子方式更新其元素的 int 数组. AtomicIntegerFieldUpdater<T> 基于反射的实用工具,可以对指定类的指定 volatile int 字段…
注意:float虽然是4个自减,但是它的取值范围却比8个字节的long要大. float和double只能用来作科学计算或者是工程计算,但在商业计算中我们要用java.math.BigDecimal,通过使用BigDecimal类可以解决上述问题,实例代码如下: package ex;   import java.math.*;   public class BigDecimalDemo {     public static void main(String[] args){         …
返回本章节 返回作业目录 需求说明: 分别计算两个整数加.减.乘.除的结果并显示,要求除法保留两位小数. 实现思路: 接收用户控制台输入的两个整数. 实现两个整数的加.减.乘.除的运算并输出结果. 除法结果要求保留两位小数. 实现代码: import java.util.Scanner; public class ChangeType { public static void main(String[] args) { Scanner sc = new Scanner(System.in); S…
如java.io.LineNumberInputStream(deprecated),是装饰模式(decorate)的实现: 如java.io.OutputStreamWriter,是适配器模式(adapter)的实现: 引用知乎海纳老师的说法,这样看java.io包中的类的名称就能大概知道使用方法了: Adaptor所要解决的问题是适配,它的目的在于接口的转换. 而Proxy恰恰相反,它的目的在于保持接口不变,而改变接口定义的方法的行为. 代理的示意图: 海纳老师课程学习: 1.“我们能不使用…
Atomic原子类:为基本类型的封装类Boolean,Integer,Long,对象引用等提供原子操作. 一.Atomic包下的所有类如下表: 类摘要 AtomicBoolean 可以用原子方式更新的 boolean 值. AtomicInteger 可以用原子方式更新的 int 值. AtomicIntegerArray 可以用原子方式更新其元素的 int 数组. AtomicIntegerFieldUpdater<T> 基于反射的实用工具,可以对指定类的指定 volatile int 字段…
Android 网络编程相关的包 : 9 包, 20 接口, 103 类, 6 枚举, 14异常; -- Java包 : java.net 包 (6接口, 34类, 2枚举, 12异常); -- Android包 : android.net 包 (1接口, 19类, 3枚举, 1异常), android.net.http 包 (6类), android.net.nsd 包 (3接口, 2类), android.net.rtp (4类), android.net.sip 包 (1接口, 9类, 1…
Android 网络编程相关的包 : 9 包, 20 接口, 103 类, 6 枚举, 14异常; -- Java包 : java.net 包 (6接口, 34类, 2枚举, 12异常); -- Android包 : android.net 包 (1接口, 19类, 3枚举, 1异常), android.net.http 包 (6类), android.net.nsd 包 (3接口, 2类), android.net.rtp (4类), android.net.sip 包 (1接口, 9类, 1…
推荐几章很有用的文章 java操作参考文档 http://www.cnblogs.com/hoojo/archive/2011/06/02/2068665.html http://blog.csdn.net/java2000_wl/article/details/7982934 http://www.111cn.net/jsp/55/51020.htm http://blog.csdn.net/mcpang/article/details/8731065 http://javacrazyer.i…
感谢这两位博主的文章,文章源于: https://www.cnblogs.com/chenpi/p/5375805.html https://blog.csdn.net/fanrenxiang/article/details/80623884 版本:dk1.5后提供了,java.util.concurrent.atomic包 作用:方便程序员在多线程环境下,无锁的进行原子性操作 底层:原子变量的底层使用了处理器提供的原子指令,但是不同的CPU架构可能提供的原子指令不一样,也有可能需要某种形式的内…
CountDownLatch 跟join的区别 CountDownLatch用处跟join很像,但是CountDownLatch更加灵活,如果子线程有多个阶段a.b.c; 那么我们可以实现在a阶段完成后(在a阶段后 ,b.c阶段之前, latch.countDown();),就可以往下运行,主线程并不用等子线程把b.c阶段都跑完. latch.countDown() 其实是state -1 操作,latch.await() 其实一直在判断state == 0 如果为0就不再等待向下执行,基于AQ…
1.功能:此类的实例用于生成伪随机数流 2.方法(Random的方法有很多,在此只解释说明我认为比较常用的几个方法) (1)next(int bits):生成下一个伪随机数 (2)nextDouble():返回下一个伪随机数,它是取自此随机数生成器序列的.在 0.0(包括) 和 1.0(不包括) 之间均匀分布的 double 值. (3)nextFloat():返回下一个伪随机数,它是取自此随机数生成器序列的.在0.0(包括) 和 1.0(包括) 之间均匀分布的 float 值. (4)next…
util是utiliy的缩写,意为多用途的,工具性质的包这个包中主要存放了:集合类(如ArrayList,HashMap等),随机数产生类,属性文件读取类,定时器类等类.这些类极大方便了Java编程,日常java编程中,经常要用到这些类. 介绍 Java的实用工具类库java.util包.在这个包中,Java提供了一些实用的方法和数据结构.例如,Java提供日期(Data)类.日历 (Calendar)类来产生和获取日期及时间,提供随机数(Random)类产生各种类型的随机数,还提供了堆栈(St…
介绍Java的实用工具类库java.util包.在这个包中,Java提供了一些实用的方法和数据结构.本章介绍Java的实用工具类库java.util包.在这个包中,Java提供了一些实用的方法和数据结构.例如,Java提供日期(Data)类.日历(Calendar)类来产生和获取日期及时间,提供随机数(Random)类产生各种类型的随机数,还提供了堆栈(Stack).向量(Vector) .位集合(Bitset)以及哈希表(Hashtable)等类来表示相应的数据结构. 图8.1给出了java.…
问题描述及方案 假设我们在做电商项目,在进行计算时这个丢失精度在产品价格计算就会出现问题,很有可能造成我们手里有9.99元然后后面会有一堆9,但是呢这些钱无法购买一个10元的商品. 在某些编程语言中有专门处理货币的类型,但是Java没有,不过没关系我们可以通过BigDecimal来解决这个问题. 下面我们来看几个例子. testOne 这个呢就是Java本身对于浮点计算的时候会丢失精度,一定要注意,一定要注意,它所引起的事情呢基本没有小事,如果在线上订购量大的话,会引起大的故障, 可能会导致下不…
1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.Java的I/O流提供了读写数据的标准方法.任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法. Java.io是大多数面向数据流的输入/输出类的主要软件包.此外,Java也对块传输提供支持,在核心库 java.nio中采用的便是块IO. 流IO的好处是简单易用,缺点是效率较低.块IO效率很高,但编程比较…
好大的链接给原作 Q: 在java怎样将BigInteger类型的数据转成int类型的? A:BigInteger的intValue()可以获得int类型数值. Q: java.math.BigInteger有位数限制么?比如long是2的64次方. A:从BigInteger的源码可以看出来,在BigInteger内部数值是通过:int[] mag存放数据的,总共可以存放2147483647个int数据,而每个int数据由4个字节表示,所以BigInteger理论上可以存放的数据最大为2214…
多人开发同一个项目时,会出现类名称相同的情况.package就是为了避免类或接口名称重复而采用的一种措施.实际上包就是有一定层次结构的文件夹,*.class文件要保存当前类声明的和包对应的文件夹中. 包的定义格式:package 包名[.子包名]; 编译时:javac –d . Hello.java                   -d选项为源文件生成相应的目录结构. 没有给源文件设包名时,java将这样的文件自动看作是隶属于该目录的默认包中. 父包和子包只是表示存在某种逻辑上的联系,在用法…
1.运算符 (1)算术运算符 A:+,-,*,/,%,++,-- B:+的用法 [a.加法] [b.正号] [c.字符串连接付] C:/和%的区别 [数据做除法的时候,/取的是商,%取的是余数] D:++和--的用法 [a.单独使用时:放在 操作数据的前面和后面效果是一样的,a++或者++a效果是一样的] [b.参与操作运算时-放在操作数的前面:先自增或者自减,再参与操作] [c.参与操作运算时-放在操作数的后面:先参与操作,再自增或者自减] [例子解析] (2)赋值运算符 A:=,+=,*=,…
从今天开始简单开始读一遍jdk的源码,估计这个时间会很长,慢慢啃吧....(首先说一句抱歉,因为很多图都是直接百度扣的,图太多了不能为每一个图附上原版链接,不好意思!) 在网上看了很多的教程,读源码有一定的顺序,按照包的顺序:java.lang包,java.util包,java.util.concurrent包,java.util.concurrent.atomic包,java.lang.reflect包,java.lang.annotation包,java.util.concurrent.lo…