Java_类的介绍_13

news/2024/11/16 19:46:31/

Math类

Math用于做数学运算。
Math类中的方法全部是静态方法,直接用类名调用即可
方法:
方法名 说明
public static int abs(int a) 获取参数a的绝对值:
public static double ceil(double a) 向上取整
public static double floor(double a) 向下取整
public static double pow(double a, double b) 获取a的b次幂
public static long round(double a) 四舍五入取整

代码实例:

public class MathDemo {public static void main(String[] args) {// 1.取绝对值:返回正数。System.out.println(Math.abs(10));System.out.println(Math.abs(-10.3));// 2.向上取整: 5System.out.println(Math.ceil(4.00000001)); // 5.0// 3.向下取整:4System.out.println(Math.floor(4.99999999)); // 4.0// 4.求指数次方System.out.println(Math.pow(2 , 3)); // 2^3 = 8.0// 5.四舍五入 10System.out.println(Math.round(4.49999)); // 4System.out.println(Math.round(4.500001)); // 5}
}

System系统类

System代表当前系统。
静态方法:
1.public static void exit(int status):终止JVM虚拟机,非0是异常终止。
2.public static long currentTimeMillis():获取当前系统此刻时间毫秒值。
3.可以做数组的拷贝。
arraycopy(Object var0, int var1, Object var2, int var3, int var4);
* 参数一:原数组
* 参数二:从原数组的哪个位置开始赋值。
* 参数三:目标数组
* 参数四:赋值到目标数组的哪个位置
* 参数五:赋值几个。

代码实例:

public class _system01 {public static void main(String[] args){System.out.println("程序开始运行");//System.exit(0);  //0 代表正常终止//得到当前虚拟机的毫秒值long time = System.currentTimeMillis();SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");System.out.println(sdf.format(time));System.out.println("程序结束运行");//可以数组拷贝(了解)int[] arr1 = new int[]{10,20,30,40,50,60,70};int[] arr2 = new int[6];  //6个0/**arraycopy(Object src,int  srcPos ,Object dest, int destPos,  int length)参数一:原数组参数二:从哪个索引位置开始赋值参数三:目标数组参数四:目标数组的开始索引:参数五:复制几个*/System.arraycopy(arr1,2, arr2 , 1 , 3);System.out.println(Arrays.toString(arr2));}
}

BigDecimal解决精度运算问题

  1. 引入:
    浮点型运算的时候直接+ * / 可能会出现数据失真(精度问题)。
    BigDecimal可以解决浮点型运算数据失真的问题。

  2. BigDicimal类:
    1. 包:java.math.
    2. 创建对象的方式(最好的方式:)
    public static BigDecimal valueOf(double val) :包装浮点数成为大数据对象。
    3. 方法声明
    public BigDecimal add(BigDecimal value) 加法运算
    public BigDecimal subtract(BigDecimal value) 减法运算
    public BigDecimal multiply(BigDecimal value) 乘法运算
    public BigDecimal divide(BigDecimal value) 除法运算
    public double doubleValue():把BigDecimal转换成double类型。

public static void main(String[] args){double a = 0.1,b = 0.2;BigDecimal a1 = BigDecimal.valueOf(a);BigDecimal b1 = BigDecimal.valueOf(b);BigDecimal c = a1.add(b1); //加法BigDecimal c1 = a1.subtract(b1); //减法BigDecimal c2 = a1.multiply(b1); //乘法BigDecimal c3 = a1.divide(b1); //除法System.out.println(c);//BigDecimal 只是解决精度问题的手段,double数据才是目的。最后要变类型double r = c1.doubleValue();}

包装类

  1. 引入:
    Java认为一切皆对象。引用数据类型就是对象了。
    但是在Java中8基本数据类型不是对象,只是表示一种数据的类型形式,这8种数据类型显得很突兀。
    Java为了一切皆对象的思想统一,把8种基本数据类型转换成对应的类,这个类称为
    基本数据类型的包装类。

    基本数据类型 包装类(引用数据类型)
    byte Byte
    short Short
    int Integer(特殊)
    long Long

      float                     Floatdouble                    Doublechar                      Character(特殊)boolean                   Boolean
    

自动装箱:可以直接把基本数据类型的值或者变量赋值给包装类。
自动拆箱:可以把包装类的变量直接赋值给基本数据类型。

小结:
自动装箱:可以直接把基本数据类型的值或者变量赋值给包装类。
自动拆箱:可以把包装类的变量直接赋值给基本数据类型。

public class PackegeClass {public static void main(String[] args) {int a = 12 ;Integer a1 = 12 ;  // 自动装箱Integer a2 = a ;   // 自动装箱double b = 99.9;Double b1 = 99.9; // 自动装箱Double b2 = b ;   // 自动装箱Integer c = 100 ;int c1 = c ;      // 自动拆箱
/*************************重要区别******************/int d = 12;        //基本数据类型的d不能为nullInteger d1 = null; // 引用数据类型的默认值可以为nullInteger d2 = 0;Integer it = Integer.valueOf(12);  // 手工装箱!// Integer it1 = new Integer(12); // 手工装箱!Integer it2 = 12;Integer it3 = 111 ;int it33 = it3.intValue(); // 手工拆箱int it333 = it3;}
}

包装类的特殊功能

  1. Java为包装类做了一些特殊功能,以便程序员使用。
    包装类作为类首先拥有了Object类的方法。
    包装类作为引用类型的变量可以存储null值。

  2. 具体来看特殊功能主要有:

    1. 可以把基本数据类型的值转换成字符串类型的值。(没啥用)
      – 调用toString()方法。
      – 调用Integer.toString(基本数据类型的值)得到字符串。
      – 直接把基本数据类型+空字符串就得到了字符串。

    2. 把字符串类型的数值转换成对应的基本数据类型的值。(真的很有用)
      – Xxx.parseXxx(“字符串类型的数值”)
      – Xxx.valueOf(“字符串类型的数值”):推荐使用!

  3. 小结:
    包装类可以把字符串类型的数值转换成对应的基本数据类型的值(真的很有用)

public class PackageClass02 {public static void main(String[] args) {// 1.把基本数据类型的值转成字符串Integer it = 100 ;// a.调用toString()方法。String itStr = it.toString();System.out.println(itStr+1);// b.调用Integer.toString(基本数据类型的值)得到字符串。String itStr1 = Integer.toString(it);System.out.println(itStr1+1);// c.直接把基本数据类型+空字符串就得到了字符串。String itStr2 = it+"";System.out.println(itStr2+1);// 2.把字符串类型的数值转换成对应的基本数据类型的值。(真的很有用)String numStr = "23";//int numInt = Integer.parseInt(numStr);int numInt = Integer.valueOf(numStr);System.out.println(numInt+1);String doubleStr = "99.9";//double doubleDb = Double.parseDouble(doubleStr);double doubleDb = Double.valueOf(doubleStr);System.out.println(doubleDb+0.1);}
}

http://www.ppmy.cn/news/560935.html

相关文章

C#串口官方库

public const int InfiniteTimeout -1; 只读 -1值,对象超时 public SerialPort(); 串口默认构造 public SerialPort(IContainer container); 接口 SerialPort(串口名, 波特率, 校验, 数据位, 停止位); COM1, 96N81 // 属…

Windows下的Win32串口编程

在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信。串口通信方便易行,应用广泛。 一般情况下,工控机和各智能仪表通过RS485总线进行通信。RS485的通信方式是半双工的,只能由…

Win32 API 串口编程

目录 一串口通信基础 1.1串口通信原理与特点 1.2串口通信的传输方式 1.3串口通信的同步技术 1.4串行接口标准 二 API函数实现串口通信 2.1打开串口 2.1.1串口是否有驱动 2.1.2连接串口 2.1.3串口逻辑端口号大于10无法打开问题…

【工具教程】CH340 USB转串口芯片驱动安装说明

本文由FPGA爱好者小梅哥编写,未经作者许可,本文仅允许网络论坛复制转载,且转载时请标明原作者。 CH340 USB转串口芯片驱动安装说明 目前很多的开发板都使用CH340作为USB转串口的方案,芯路恒FPGA开发板上也提供了一路USB转串口接…

linux下c的串口收发

linux下c的串口收发录 转自: https://blog.csdn.net/weixin_41471318/article/details/116230465 文章目录 linux下c的串口收发录转自: https://blog.csdn.net/weixin_41471318/article/details/116230465 前言一、直接打开串口二、使用步骤1.引入库2.源…

C#编写串口助手

C#编写串口助手 借鉴了很大部分下面文章的内容,我也修改了很多,最后完善成了一个完整的串口助手。 C#编写串口助手 1.UI设置 ①创建Windows窗口应用程序。 文件—新建—项目,选择Visual C#,选择Windows窗体应用程序&#xff0…

Debian系列-USB转串口(CH340)调试及cutecom串口调试工具安装

Debian系列-USB转串口(CH340)调试及cutecom串口调试工具安装 文章目录 Debian系列-USB转串口(CH340)调试及cutecom串口调试工具安装摘要1 CH340驱动测试2 cutecom 串口调试助手安装3 测试 关键字: CH340、 USB、 cutocom、 debian、 linux 摘要 今天要搞的是串…

windows C语言读串口数据

(1)这种方式真的很奇怪,乍一看咋都不像打开串口的,但是真的可以打开。不过在这段代码里并没有配置串口,所以必须借助串口助手才可以,就是先用串口助手打开串口,然后这段程序才可以正常运行。可能…