Java基础快速入门:BigDecimal与Integer包装类

Java中String与Integer的equals比较原理与解决方案 在Java编程中,equals方法是对象比较的核心机制,遵循严格的类型检查原则。当比较String与Integer等不同类型对象时,由于继承体系差异,直接调用equals会返回false。理解这一现象需要掌握Java类型系统和equals方法的实现契约,包括自反性、对称性等五大原则。实际开发中,可通过显式类型转换、parseInt值比较或Objects工具类实现跨类型比较。该机制在集合操作、数据验证等场景尤为重要,正确处理类型差异能避免常见的逻辑错误。本文通过String与Integer的典型对比案例,深入 阅读详情

本文纲要

1 ) BigDecimal高精度计算

  1. 为什么需要BigDecimal
  2. BigDecimal的构造方法
  3. 四则运算
  4. 除法与舍入模式

2 ) 基本数据类型包装类——Integer

  1. 包装类概述
  2. Integer对象的创建
  3. 自动装箱与自动拆箱
  4. 类型转换:int与String互转
  5. 案例:字符串数字解析

BigDecimal 高精度计算

项目模块结构

mybigdecimal/
├── MyBigDecimalDemo.java        // 初始精度丢失演示 
├── MyBigDecimalDemo2.java       // 构造方法演示 
├── MyBigDecimalDemo3.java       // 四则运算(精确计算)
└── MyBigDecimalDemo4.java       // 除法舍入模式演示 

1 ) 为什么需要BigDecimal

在 Java 中直接对小数进行运算可能会出现精度丢失的问题。例如输出 10.0 / 3.0 的结果,并不是我们期望的无限循环小数 3.333...,而是一个带有额外位数的结果。这是因为计算机底层会将十进制小数转换为二进制进行计算,再转回十进制,这种转换过程对于小数会引入微小的误差。虽然误差很小,但在金融、证券等对精度要求极高的场景中是不可接受的。BigDecimal 类正是为解决这类问题而存在。

package com.wb.demo;
 
public class MyBigDecimalDemo {
    public static void main(String[] args) {
        System.out.println(10.0 / 3.0);  // 输出可能为 3.3333333333333335 
    }
}

2 ) BigDecimal的构造方法

创建 BigDecimal 对象时,建议使用参数为字符串的构造方法,以避免 double 数值本身带来的精度问题。直接传入 double 值(如 new BigDecimal(10.0))会保留底层的二进制误差,而传入字符串则能精确表示。

package com.wb.demo;
 
import java.math.BigDecimal;
 
public class MyBigDecimalDemo2 {
    public static void main(String[] args) {
        BigDecimal bd1 = new BigDecimal(10.0);      // double构造 
        BigDecimal bd2 = new BigDecimal("0.3");     // String构造 
 
        System.out.println(bd1);  // 输出 10 
        System.out.println(bd2);  // 输出 0.3 
    }
}

从输出可以看到,对于整数部分 10.0,BigDecimal 会自动去除末尾的零,直接显示 10。

3 ) 四则运算

BigDecimal 的加减乘除运算必须通过调用方法来完成,不能直接使用运算符。
方法分别为:

  • add(BigDecimal augend) → 加法
  • subtract(BigDecimal subtrahend) → 减法
  • multiply(BigDecimal multiplicand) → 乘法
  • divide(BigDecimal divisor) → 除法

重要提示:为了保证精确运算,必须使用字符串构造创建 BigDecimal 对象。若使用 double 构造,结果依然会包含误差。

package com.wb.demo;
 
import java.math.BigDecimal;
 
public class MyBigDecimalDemo3 {
    //如果想要进行精确运算,那么请使用字符串的构造 
    public static void main(String[] args) {
        // 错误示范:使用double构造依然不精确 
//        BigDecimal bd1 = new BigDecimal(0.1);
//        BigDecimal bd2 = new BigDecimal(0.2);
//        System.out.println(0.1 + 0.2);  // 0.30000000000000004 
 
        BigDecimal bd1 = new BigDecimal("0.1");
        BigDecimal bd2 = new BigDecimal("0.2");
 
        // 加法 
        BigDecimal add = bd1.add(bd2);
        System.out.println("和为" + add);   // 0.3 
 
        // 减法 
        BigDecimal subtract = bd1.subtract(bd2);
        System.out.println("差为" + subtract); // -0.1 
 
        // 乘法 
        BigDecimal multiply = bd1.multiply(bd2);
        System.out.println("积为" + multiply); // 0.02 
 
        // 除法 
        BigDecimal divide = bd1.divide(bd2);
        System.out.println("商为" + divide);   // 0.5 
    }
}

4 ) 除法与舍入模式

当两个数除不尽时,直接调用 divide(BigDecimal divisor) 会抛出 ArithmeticException,因为 BigDecimal 不知道如何处理无限小数。

此时必须使用重载的 divide 方法,指定保留的小数位数和舍入模式。

方法签名:public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)

  • divisor:另一个 BigDecimal 对象
  • scale:小数点后精确到多少位
  • roundingMode:舍入模式,常用的常量有:
  • BigDecimal.ROUND_UP → 进一法(向上取)
  • BigDecimal.ROUND_FLOOR → 去尾法(向下取)
  • BigDecimal.ROUNDHALFUP → 四舍五入
package com.wb.demo;
 
import java.math.BigDecimal;
 
public class MyBigDecimalDemo4 {
    public static void main(String[] args) {
        BigDecimal bd1 = new BigDecimal("0.3");
        BigDecimal bd2 = new BigDecimal("4");  // 0.3 / 4 = 0.075 
 
        // 不带舍入模式的除法——当除不尽时会抛出异常,此处会报错 
        /* BigDecimal divide = bd1.divide(bd2);
           System.out.println(divide); */
 
        // 参数一:参与运算的另一个对象 
        // 参数二:表示小数点后精确到多少位 
        // 参数三:舍入模式 
        //     进一法  BigDecimal.ROUND_UP 
        //     去尾法  BigDecimal.ROUND_FLOOR 
        //     四舍五入 BigDecimal.ROUNDHALFUP 
        BigDecimal divide = bd1.divide(bd2, 2, BigDecimal.ROUNDHALFUP);
        System.out.println(divide);  // 输出 0.08 
    }
}

若换用 BigDecimal.ROUND_FLOOR,输出为 0.07。
若换用 BigDecimal.ROUND_UP,输出为 0.08。

基本数据类型包装类——Integer

项目模块结构

myinteger/
├── MyIntegerDemo1.java          // Integer常量获取int范围 
├── MyIntegerDemo2.java          // 获取Integer对象(过时构造与valueOf)
├── MyIntegerDemo3.java          // 自动装箱拆箱 
├── MyIntegerDemo4.java          // 类型转换 
└── MyIntegerDemo5.java          // 字符串数字解析案例 

1 ) 包装类概述

Java 为 8 种基本数据类型提供了对应的包装类,目的是将基本类型包装成对象,从而可以在对象中定义各种操作数据的方法。

常见的包装类及对应关系如下:

  • byte → Byte
  • short → Short
  • int → Integer
  • long → Long
  • float → Float
  • double→ Double
  • char → Character
  • boolean→ Boolean

大多数包装类只需将基本类型首字母大写,但 int 和 char 较为特殊,分别是 Integer 和 Character。

例如,通过 Integer 类可以直接获取 int 类型的最大值和最小值:

package com.wb.myinteger;
 
public class MyIntegerDemo1 {
    public static void main(String[] args) {
        //需求:我要判断一个整数是否在 int 范围内?
        System.out.println(Integer.MAX_VALUE);  // 2147483647 
        System.out.println(Integer.MIN_VALUE);  // -2147483648 
    }
}

2 ) Integer对象的创建

创建 Integer 对象有几种方式,早期的构造方法已经过时,推荐使用静态方法 Integer.valueOf(int i) 或 Integer.valueOf(String s)。它们均返回 Integer 实例。

package com.wb.myinteger;
 
public class MyIntegerDemo2 {
    public static void main(String[] args) {
        // 构造方法(均已过时)
        Integer i1 = new Integer(100);
        Integer i2 = new Integer("100");
        System.out.println(i1);  // 100 
        System.out.println(i2);  // 100 
 
        // 静态方法 valueOf(推荐)
        Integer i3 = Integer.valueOf(200);
        Integer i4 = Integer.valueOf("200");
        System.out.println(i3);  // 200 
        System.out.println(i4);  // 200 
    }
}

3 ) 自动装箱与自动拆箱

从 JDK 1.5 开始,Java 提供了自动装箱和自动拆箱机制,让基本类型与包装类之间的转换更加简洁。
装箱:将基本数据类型转换为对应的包装类对象。底层自动调用 valueOf 方法。
拆箱:将包装类对象转换为对应的基本数据类型。

示例代码及解读:

package com.wb.myinteger;
 
public class MyIntegerDemo3 {
    public static void main(String[] args) {
        // 自动装箱:int → Integer 
        Integer i1 = 100;          // 底层执行 Integer i1 = Integer.valueOf(100);
        System.out.println(i1);
 
        // 自动拆箱:Integer → int 
        int i2 = i1;               // 底层执行 int i2 = i1.intValue();
        System.out.println(i2);
 
        // 综合案例 
        Integer i3 = 100;          // 自动装箱 
        i3 += 200;                 // 等价于 i3 = i3 + 200;
        // 过程:
        //   1) i3 自动拆箱为 int 值 100 
        //   2) 100 + 200 = 300 
        //   3) 将 int 300 自动装箱为 Integer 对象赋值给 i3 
        System.out.println(i3);   // 300 
 
        // 细节:若包装类对象为 null,拆箱时会抛出 NullPointerException 
        Integer i4 = null;
        if (i4 != null) {
            i4 += 200;
            System.out.println(i4);
        }
        // 如果 i4 为 null,执行 i4 += 200 会引发 NullPointerException,
        // 因此建议在使用前做非空判断。
    }
}

4 ) 类型转换:int与String互转

在实际开发中,经常需要将字符串数字转换为 int 参与计算,或将 int 转换为字符串进行拼接或展示。

String → int:使用 Integer.parseInt(String s) 静态方法。

String s1 = "100";
int i1 = 200;
int i2 = Integer.parseInt(s1);   // 将字符串 "100" 转为 int 100 
System.out.println(i2 + i1);     // 300,而不是 "100200"

int → String:两种常用方式。

int i3 = 100;
// 方式一:拼接空字符串 
String s2 = i3 + "";
System.out.println(s2 + 100);   // 100100(字符串操作)
 
// 方式二:使用 String.valueOf(int)
String s3 = String.valueOf(i3);
System.out.println(s3 + 100);   // 100100 

完整演示:

package com.wb.myinteger;
 
public class MyIntegerDemo4 {
    public static void main(String[] args) {
        // String 转 int 
        String s1 = "100";
        int i1 = 200;
        System.out.println(s1 + i1);            // 100200 —— 字符串拼接 
        int i2 = Integer.parseInt(s1);
        System.out.println(i2 + i1);            // 300 —— 整数加法 
 
        // int 转 String 
        int i3 = 100;
        String s2 = i3 + "";                    // 方式一 
        System.out.println(s2 + 100);          // 100100 
        String s3 = String.valueOf(i3);         // 方式二 
        System.out.println(s3 + 100);          // 100100 
    }
}

5 ) 案例:字符串数字解析

需求:将字符串 "91 27 46 38 50" 中的每个数字提取出来,存入 int 数组并遍历输出。

解题步骤:

  1. 将字符串按空格分割为字符串数组;
  2. 创建等长的 int 数组;
  3. 遍历字符串数组,使用 Integer.parseInt() 转换并存储;
  4. 遍历 int 数组输出结果。
package com.wb.myinteger;
 
public class MyIntegerDemo5 {
    //需求:有一个字符串:“91 27 46 38 50”,把其中的每一个数存到int类型的数组中 
    public static void main(String[] args) {
        String s = "91 27 46 38 50";
        // 1. 获取字符串中的每一个数字,按空格切割 
        String[] strArr = s.split(" ");
 
        // 2. 创建一个等长的int类型数组 
        int[] numberArr = new int[strArr.length];
 
        // 3. 把strArr中的数据进行类型转换并存入int数组 
        for (int i = 0; i < strArr.length; i++) {
            int number = Integer.parseInt(strArr[i]);
            numberArr[i] = number;
        }
 
        // 4. 遍历int类型的数组并输出 
        for (int i = 0; i < numberArr.length; i++) {
            System.out.println(numberArr[i]);
        }
    }
}

运行结果将依次打印:91、27、46、38、50。

总结

以上内容涵盖了 BigDecimal 高精度计算以及 Integer 包装类的核心用法,配合示例代码可以帮助快速上手

后续可在此基础上进一步学习其他包装类及 BigDecimal 更高级的舍入策略等

代码的自由之旅:用AI写出无版权烦恼的Verilog 他们还基于这个数据集,训练了一个名叫“FreeV”的AI模型,不仅能写出好用的Verilog代码,还把版权侵权的风险降到了仅3%。为了让AI安全地写Verilog,研究团队提出了三个“法宝”:一个检测AI是否会生成侵权代码的测试方法、一个干净的Verilog数据集FreeSet,还有一个基于FreeSet训练的AI模型FreeV。AI的记忆力超强,能记住训练时见过的代码。测试发现,一些用Verilog数据训练过的AI,比如VeriGen,生成侵权代码的概率从9%涨到了15%,说明它们可能学了不该学的代码。 阅读详情

相关推荐

谷歌浏览器崩溃排查:闪退、卡死、网页打不开的修复指南

浏览器多进程架构通过进程隔离、GPU加速和扩展沙箱提升网页渲染效率,但配置损坏、扩展冲突、显卡驱动异常或系统资源不足时,常会以闪退、卡死、白屏、内存占用飙升和能上微信却打不开网页等形式暴露。排查价值在于先分层定位系统、进程、配置扩展与网页内容,再用无痕模式、chrome://crashes、chrome://gpu和浏览器任务管理器收集证据,避免盲目重装。对办公、开发运维和日常维护场景,禁用扩展、关闭硬件加速、刷新DNS缓存、重置配置文件乃至干净重装,都是可复用的工程化处置手段。围绕谷歌浏览器崩溃的典型症状

weixin_34138056的博客 426

Day14 Java学习笔记之《常用API&包装类&数组的高级操作》

文章目录1. API1.1 API概述【理解】1.2 如何使用API帮助文档【应用】2. 常用API2.1 Math(应用)2.2 System(应用)2.3 Object类的toString方法(应用)2.4 Object类的equals方法(应用)2.5 Objects (应用)2.6 BigDecimal (应用)3. 包装类3.1 基本类型包装类(记忆)3.2 Integer类(应用)3.3 自动拆箱和自动装箱(理解)3.4 int和String类型的相互转换(记忆)3.5 字符串数据排序案例(应用

weixin_46146855的博客 199

手把手教你用NE555+LM324搭建红外倒车雷达(附Multisim仿真文件)

本文详细介绍了如何使用NE555定时器和LM324运算放大器搭建一个红外倒车雷达系统。内容涵盖从核心原理拆解、模块电路设计(包括红外发射、接收放大、检波与电压比较)到实战焊接调试的全过程,并提供了Multisim仿真验证思路,帮助电子爱好者与初学者将模拟电路理论转化为可工作的实用项目。

echo99的专栏 680

java学习-13_常用API(1)

1.API 1.1 API概述【理解】 什么是API ​ API (Application Programming Interface) :应用程序编程接口 java中的API ​ 指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用。 2.常用API 2.1 Math(应用) 1、Math类概述 Math 包含执行基本数字运算的方法 2、Math中

chen1042246612的博客 212

SMPTE ST 2110 概论(一)

SMPTE ST 2110 概论(一)前言ST 2110与ST 2022-6ST 2110-10:基本结构与时序ST 2110-20:未压缩的视频流后续 前言 这是一份我在实习期间制作的,关于SMPTE ST 2110的简单介绍。 这篇文章主要以梳理总结 SMPTE ST 2110 的概念为主,关于具体的内容,比如IP数据报的格式、RTP时间戳的具体代码内容等等,大家可以查阅 SMPTE ST 2...

Cidd0422的博客 2万+

【100%通过率】华为od机试C卷【出差 / 员工派遣】Java&Go 实现

某公司部门需要派遣员工去国外做项目。现在,代号为 x 的国家和代号为 y 的国家分别需要 cntx 名和 cnty 名员工部门每个员工有一个员工号 (1,2,3,......),工号连续,从 1开始。部长派遣员工的规则:

MISAYAONE的博客 2642

5常用API 包装类 常见算法 Arrays工具类

JavaSE进阶-day05 一、常用API 1.API-基本使用【重要】(视频01) (6‘’) 1.什么是API ​ API (Application Programming Interface) :应用程序编程接口 ​ 简单来说:就是java帮我们已经写好的一些方法,我们直接拿过来用就行了 ​ API文档: 产品说明书 2.如何使用API帮助文档【应用】(演示) 打开帮助文档 找到索引选项卡中的输入框 看类在哪个包下 看类的描述 看构造方法 看成员方法 2.API

InLoadwetrust的博客 287

WinCC7.5 SP2 安装与授权(文末附授权软件)

安装部分参考了wincc7.5官网下载及安装配置(适配window10超详细教程) 主要介绍授权部分(仅供学习,商用请下载正版授权): 通过官网下载安装了WinCC7.5(需要在西门子官网注册账户,10积分下载)。 安装成功以后,还没授权,先别立即打开。 下载Sim_EBK_Install 复制链接到百度网盘中离线下载: 都是一样的软件,版本不同。有部分解压时需要输入密码,可选择方框里的不需要解压密码: 解压以后,打开: 最后检查秘钥授权是否成功 打开桌面(这是安装WinCC以后就有的): 左

skr? 7万+

Java常用API(常用API、包装类、递归、数组)

什么是API​ API (Application Programming Interface) :应用程序编程接口java中的API​ 指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用。

yqqの博客 244

微信小程序 - 最新详细实现用户保存下载视频到手机相册,将视频临时路径、在线播放地址(网络路径)URL存储到手机,弹出访问手机相册权限询问,支持视频格式mp4、avi、mov、wmv、flv、webm

微信小程序,视频,手机相册,保存,另存为,小程序保存到相册权限,writePhotosAlbum,一键保存视频到手机相册功能(视频来源为链接),第一次要获取用户授权,授权使用相册权限,小程序视频下载,如何把视频下载到相册,下载一个视频到本地相册,显示下载进度,可取消下载,视频下载到本地,微信小程序视频如何下载,保存视频到相机,页面播放视频并下载到本地,安卓系统,苹果ios保存到相册报错,权限拒绝后打不开,添加相册授权弹框拒绝后再也出不来了,实现保存视频到手机相册功能,将mp4在线视频下载并存储到用户的手机中

🏆 前端领域优质创作者 7631

Mastercam软件二次开发:使用C#进行Mastercam二次开发

C#(发音为“C Sharp”)是一种现代、面向对象的编程语言,由微软开发,首次发布于2000年。它结合了C和C++的强大功能,同时引入了Java的垃圾回收机制,使得C#在开发效率和运行性能之间找到了一个良好的平衡点。C#的设计目标是提高开发者的生产力,它支持多种编程范式,包括面向对象、泛型、委托和事件等,这使得它成为开发Windows应用程序、Web应用程序、游戏(尤其是使用Unity引擎)和企业级应用的理想选择。

kkchenjj的博客 2220

常用API、包装类、数组高级

1.0 API 1.1.0 Math类api 1.2.0 System类api 1.3.0 Object类api

m0_58885518的博客 580

【OS】AUTOSAR OS系统调用产生Trap的过程详解

AUTOSAR OS系统调用产生Trap的过程详解

qq_36056498的博客 2440

常用API

Math 包含执行基本数字运算的方法- Object 是类层次结构的根,每个类都可以将 Object 作为超类。所有类都直接或者间接的继承自该类,换句话说,该类所具备的方法,所有类都会有一份1. BigDecimal是用来进行精确计算的 2. 创建BigDecimal的对象,构造方法使用参数类型为字符串的。3. 四则运算中的除法,如果除不尽请使用divide的三个参数的方法。包装一个对象中的原始类型 int 的值。数组的高级操作 二分查找 (理解)- 二分查找概述、冒泡排序 、快速排序、Arrays ..

MemoryTa的博客 294

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Java学习篇13-常用API-01

Java常用API(Math、System、Object类的toString方法、Object类的equals方法、Objects、BigDecimal)、包装类(基本类型包装类、Integer类、自动拆箱和自动装箱)、int和String类型相互转换、字符串排序、递归、数组的操作(二分查找、冒泡排序、快速排序、Arrays)

Txtechcom的博客 91

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

JavaSE------------常用API01

1.API 1.1 API概述【理解】 什么是API ​ API (Application Programming Interface) :应用程序编程接口 java中的API ​ 指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用。 1.2 如何使用API帮助文档【应用】 打开帮助文档 找到索引选项卡中的输入框 在输入框中输入Random

swiftxx的博客 167

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Java常用API概述

什么是APIAPI (Application Programming Interface) :应用程序编程接口java中的API指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用。自定义异常概述当Java中提供的异常不能满足我们的需求时,我们可以自定义异常实现步骤定义异常类写继承关系提供空参构造提供带参构造代码实现异常类学生类。

Wangzc_1116的博客 261

day13-常用API-01

1.API 1.1 API概述【理解】 什么是API ​ API (Application Programming Interface) :应用程序编程接口 java中的API ​ 指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用。 1.2 如何使用API帮助文档【应用】 打开帮助文档 找到索引选项卡中的输入框 在输入框中输入Random

weixin_45417754的博客 178

JAVASE入门(day05_API01)

1.API 1.1 API概述【理解】 什么是API ​ API (Application Programming Interface) :应用程序编程接口 java中的API ​ 指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用。 1.2 如何使用API帮助文档【应用】 打开帮助文档 找到索引选项卡中的输入框 在输入框中输入Random

JAVA小章的博客 143

Java基础——Integer 与 BigDecimal 的互相转换(详细案例说明)

Integer是 Java 中的包装类型,用于表示 32 位的整型数据;BigDecimal是一种高精度的数值类型,常用于财务计算,避免浮点精度问题。将Integer转换为BigDecimal进行高精度计算。将BigDecimal转换为Integer处理整型数据。场景:处理可能为null的情况,返回默认值。转换方向方法优势注意事项构造函数 /valueOf()简单直接,性能高处理null值intValue()快速,精度严格控制小数部分处理,范围限制。

qq_42631788的博客 3760

java之Number与Math及Random类

number为包装类的抽象父类,不可直接创建对象所在包为java.lang意味着我们可以直接使用而不用导包Math类被final修饰,该类不能被继承Math构造器私有化,不能创建Math类的对象Math内部所有的属性和方法都被static修饰,可以通过类名.属性直接调用。.........

m0_60027772的博客 443

JAVA中BigDecimal数据类型

JAVA中BigDecimal数据 一点说明:float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供 较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。但是,货币计算往往要求结果精确,这时候可以使用int、long或BigDecimal。 用 解决的两个问题,BigDecimal类型数字比较(大小精度) -1,BigDecimal类型数据比较方法 -2,BIgDecimal中数据格式

yanxinzhao的博客 1508

Java API使用;Math类;System类;Object类;Objects类;BigDecimal类;基本数据类型包装类;数组的高级操作

1 API的基本使用 API: 应用程序接口,学习API就是学习JDK中给我们提供的类. 这些类在学习的时候需要去查看API文档进行学习,API就是JDK官方针对这些类提供的说明书. 学习某一个类的思路: 查看这个类所在的包,如果是java.lang包在使用的时候不需要进行导包操作 看这个类所对应的继承关系 查看这个类的描述(了解) 查看这个类开始的JDK版本 查看这个类的构造方法 ----->目的: 查看这个类应该如何创建对象 查看这个类的成员方法 2 Math类 Math类所在包就是java.

weixin_55800132的博客 359

包装类

包括标准输入,标准输出和错误输出流;访问外部定义的属性和环境变量;一种加载文件和库的方法;以及用于快速复制阵列的一部分的实用方法。专门处理时间的一个类。

szyy_的博客 65

【Java】 面试核心合集:BigDecimal、缓存池、多态、反射全解析

本文汇总 Java 后端面试高频核心考点,从金融业务BigDecimal选型原理与避坑、包装类缓存机制、面向对象多态、重载重写,到静态代码块执行顺序、反射全体系知识点,最后结合 Spring、MyBatis 源码落地场景逐一拆解。内容贴合日常开发与面试,干货密集,适合 Java 初学者夯实基础、面试突击复习==比较对象地址-128~127走缓存,同一个对象 →true128 超出缓存范围,每次valueOf()都会new 新对象→ 两个不同对象,地址不同 →false✅ 正确比较包装类值:用。

2401_89675417的博客 495

【Java】常用工具类 这些很常用噢~

本文系统讲解 Java 中最常用的工具类,包括 Math、Arrays、System、Objects、Scanner、Random、BigDecimal、包装类以及日期时间类。每个工具类都配有核心方法说明和代码示例,适合初学者快速上手

xingzi1019的博客 425
上一篇: Java基础快速入门: API常用类之Math,System,Object,Objects
下一篇: Java基础快速入门: 时间和日期处理全解析
Wang's Blog
博客等级 码龄12年 7433粉丝 2421原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值