当前位置: 首页 > news >正文

常用API

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)四舍五入取整

工具类的编写规则:

1.不能被继承,使用final关键字修饰类

2.不能创建对象,使用private关键字修饰构造方法

3.对外提供静态方法(通过类名访问)

public class MathTest {//演示:Math的应用public static void main(String[] args) {int a = 10;int b = 20;//求最大值int max = Math.max(a, b);//求最小值int min = Math.min(a, b);//计算次幂double num = Math.pow(2, 3);//随机数int random = (int) (Math.random()*100);//Random r = new Random();  //int n = r.next(100)//范围0~99//四舍五入long round = Math.round(4.7);System.out.println(max);//20System.out.println(min);//10System.out.println(num);//8.0System.out.println(random);//94System.out.println(round);//5}
}

System工具类

常用方法:
方法名说明
public static void exit(int status)终止当前运行的 Java 虚拟机,非零表示异常终止
public static long currentTimeMillis()返回当前时间(以毫秒为单位)
public class SystemTest {//演示:System类的使用public static void main(String[] args) {//要知道方法执行多长时间(毫秒)//在方法执行前:获取毫秒值long beginTime = System.currentTimeMillis();//获取当前系统时间的毫秒值method();//在方法执行后:获取毫秒值long endTime = System.currentTimeMillis();System.out.println("方法执行时间:" + (endTime - beginTime) + "毫秒");//方法执行时间:10毫秒
//        System.exit(0);}public static void method() {int count = 0;for (int i = 0; i < 10000000; i++) {if (i % 2 == 0) {count++;}}}
}

BigInteger类

BigInteger介绍:java.math.BigInteger类是一个引用数据类型,可以用来对一些大整数做运算。当超出基本数据类型数据范围的整数运算时就可以使用BigInteger了。
构造方法描述
BigInteger(String value)可以将整数的字符串,转换为BigInteger对象

BigInteger解决什么问题?

解决程序中出现long无法储存的整数使用BigInteger

BigInteger的加,减,乘,除的方法名是什么?

add,subtract,divide,multiply
import java.math.BigInteger;
public class BigIntegerDemo {public static void main(String[] args) {//创建大整数对象BigInteger num1 = new BigInteger("1000");BigInteger num2 = new BigInteger("100");//运算BigInteger result1 = num1.add(num2);System.out.println(result1);//1100BigInteger result2 = num1.subtract(num2);System.out.println(result2);//900BigInteger result3 = num1.divide(num2);System.out.println(result3);//10BigInteger result4 = num1.multiply(num2);System.out.println(result4);//100000}
}

BigDecimal类

BigDecimal介绍:java.math.BigDecimal可以对大浮点数进行运算,保证运算的准确性。BigDecimal的精确性高于float和double
构造方法名描述
BigDecimal(String val)将 BigDecimal 的字符串表示形式转换为 BigDecimal
//使用构造方法,创建对象
BigDecimal num1 = new BigDecimal("12312312312312311.123123123123");
BigDecimal num2 = new BigDecimal("1000000000000000.9999999999");//四则运算
BigDecimal result1 = num1.add( num2 );//加运算BigDecimal result2 = num1.subtract( num2 );//减运算

BigDecimal解决什么问题?

用来存储超出double范围的小数

BigDecimal的加,减,乘,除的方法名是什么?

add,subtract,divide,multiply
import java.math.BigDecimal;
public class BigDecimalDemo {public static void main(String[] args) {//创建对象BigDecimal num1 = new BigDecimal("100.2");BigDecimal num2 = new BigDecimal("2.2");//运算System.out.println("加运算:"+(num2.add(num1)));//加运算:102.4System.out.println("减运算:"+(num1.subtract(num2)));//减运算:98.0System.out.println("乘运算:"+(num1.multiply(num2)));//乘运算:220.44// System.out.println("除运算:"+(num1.divide(num2)));//当除不尽时,会引发异常(解决方案:设置保留有效小数位数)//                                 保留小数位数     小数的取舍方式BigDecimal result = num1.divide(num2,3,BigDecimal.ROUND_HALF_UP );//45.545System.out.println(result);}
}

Arrays类

Arrays类介绍:java.util.Arrays是数组的工具类,里面有很多静态的方法用来对数组进行操作(如排序和搜索)

Arrays类:针对数组提供了一系列方法

Arrays的方法:

1.数组元素排序(默认升序)

2.数组转换为字符串

import java.util.Arrays;
import java.util.Random;public class ArraysDemo {//需求:随机生成10个[0,100]之间的整数,放到整数数组中,按照从小到大的顺序排序并打印元素内容public static void main(String[] args) {//解决需求1: 定义数组,存储10个随机整数int[] array = new int[10];//创建随机数字对象Random r = new Random();for (int i = 0; i < array.length; i++) {int num = r.nextInt(101);array[i] = num;}//测试看看数组中的元素值System.out.println(Arrays.toString(array));//把数组转换为字符串//解决需求2: 对数组中的元素进行排序Arrays.sort(array);System.out.println(Arrays.toString(array));//把数组转换为字符串//打印数组中元素的格式: 元素1  元素2String str = Arrays.toString(array);//str="[2, 3, 5, 7, 27, 31, 52, 54, 76, 76]";str = str.substring(1, str.length()-1 );//去除前后:中括号str = str.replaceAll(",", " ");//使用" "代替","System.out.println("排序后:" + str);/**运行结果:[35, 38, 97, 6, 46, 96, 31, 74, 97, 30][6, 30, 31, 35, 38, 46, 74, 96, 97, 97]排序后:6  30  31  35  38  46  74  96  97  97*/}
}

包装类

什么是包装类?

Java把8种基本类型,进行了封装,变为包装类
基本数据类型包装类型
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

包装类解决程序中的什么问题?

1、实现String类型和7种基本类型(没有char)之间的转换

String str = “1234”; < => int类型

2、在后面学习mysql时会大量使用到包装类(包装类中可以存储null数据)

包装类怎么使用?

使用包装类:解决String类型和基本类型之间数据转换

基本类型数据 => String类型

1.直接拼接空字符串

2.使用String的valueOf静态方法
举例:
int num =100;String str = num+“”;
String str = String.valueOf( num );

String类型 => 基本类型数据

除了Character之外,都有静态方法parseXxx方法可以完成字符串转换基本数据类型。

举例:
String str =“1234”;
int num = Integer.parseInt( str );

String s = “true”;
boolean flag = Boolean.parseBoolean( s )

public class Demo1 {public static void main(String[] args) {//把字符串转换为int类型数据String str="123";int num = Integer.parseInt(str);System.out.println(num);//把字符串转换为double类型数据String str2="3.14";double num2 = Double.parseDouble(str2);System.out.println(num2);}
}

包装类在使用中的细节

1. 在把String类型数据,转换为基本类型数据时,容易发生:NumberFormatException异常 (原因:String类型数据,不符合要转换的基本类型数据格式)
public class Demo2 {public static void main(String[] args) {//把字符串转换为int类型数据String str="123AAA";//字符串不是纯数字//在把字符串转换为对应的基本类型数据时,务必保证字符串符合基本类型数据的格式int num = Integer.parseInt(str);//出现异常:NumberFormatExceptionSystem.out.println(num);}
}
运行结果:报错NumberFormatException
  1. 包装类在使用时存在:自动装箱、自动拆箱

基本数据类型自动转换为对应的包装类型叫做装箱

包装类型转自动换为对应的基本数据类型叫做拆箱。

  • 自动装箱 : Integer.valueOf( 数值 )

  • 自动拆箱: Integer对象.intValue()

  1. 包装类中有常量池(数据值没有超出常量池范围,就直接从常量池中获取对象)

注意事项 :

3.1. 包装类对象的初始值为null(是一个对象)。

3.2. Java中除了float和double的其他基本数据类型,都有常量池。

整数类型:[-128,127]值在常量池

字符类型:[0,127]对应的字符在常量池

布尔类型:true,false在常量池

3.3. 在常量池中的数据 , 会进行共享使用,减少频繁创建,从而提高性能,不在常量池会创建新的对象

String类的常用方法举例

public class StringDemo1 {/*已知字符串,完成需求String str = "I Love Java, I Love Heima";判断是否存在  “Java”判断是否以Heima字符串结尾判断是否以Java开头判断 Java在字符串中的第一次出现位置判断  itcast 所在的位置*/public static void main(String[] args) {String str = "I Love Java, I Love Heima";boolean result = str.contains("Java");System.out.println(result);boolean result2 = str.endsWith("Heima");System.out.println(result2);boolean result3 = str.startsWith("Java");System.out.println(result3);int index = str.indexOf("Java");System.out.println(index);int itcast = str.indexOf("itcast");System.out.println(itcast);}
}
运行结果:
true
true
false
7
-1
public class StringDemo2 {/*已知字符串,完成右侧需求String str = "I Love Java, I Love Heima";需求:1.将所有 Love 替换为 Like ,打印替换后的新字符串2.截取字符串 "I Love Heima"3.截取字符串 "Java"*/public static void main(String[] args) {String str = "I Love Java, I Love Heima";String replace = str.replace("Love", "like");System.out.println(replace);String substring = str.substring(13);System.out.println(substring);System.out.println(str.substring(7,11));}
}运行结果:
I like Java, I like Heima
I Love Heima
Java
public class StringDemo3 {/*已知字符串,完成右侧需求String str = "I Love Java, I Love Heima";需求:1 计算字符 a 出现的次数(要求使用toCharArray)2 计算字符 a 出现的次数(要求使用charAt)3 将字符串中所有英文字母变成小写4 将字符串中所有英文字母变成大写*/public static void main(String[] args) {String str = "I Love Java, I Love Heima";int count=0;char[] chs = str.toCharArray();for (int i = 0; i < chs.length; i++) {if(chs[i] == 'a'){count++;}}System.out.println(count);System.out.println(str.toUpperCase());System.out.println(str.toLowerCase());}
}
运行结果:
3
I LOVE JAVA, I LOVE HEIMA
i love java, i love heima

http://www.dtcms.com/a/285011.html

相关文章:

  • 通过nginx 解决跨域问题
  • Selector的用法
  • 现在遇到一个问题 要使用jmeter进行压测 jmeter中存在jar包 我们还要使用linux进行发压,这个jar包怎么设计使用
  • 《错误记录》java: 警告: 源发行版 17 需要目标发行版 17
  • C++11新特性(上)——右值引用,移动语义,引用折叠,完美转发,初始化列表,可变参数模版,lambda,包装器
  • 通过轮询方式使用LoRa DTU有什么缺点?
  • CMake综合学习2: 构建高效可靠的C++中型服务项目以及现代CMake全链条指南
  • 【CodeTop】每日练习 2025.7.17
  • 面试Redis篇-深入理解Redis缓存雪崩
  • 关于vector中的erase的强调
  • 从一到无穷大 #48:Vector Bucket,S3如何把向量玩成新范式?
  • imx6ull-系统移植篇9——bootz启动 Linux 内核
  • Spark 之 HashJoin
  • Langchain和Faiss搭建本地知识库对比
  • python东方财富api股票数据获取程序
  • Vue3从入门到精通
  • Django `transaction.atomic()` 完整使用指南
  • SWD和JTAG区别
  • 【47】MFC入门到精通——MFC编辑框 按回车键 程序闪退问题 ,关闭 ESC程序退出 问题
  • git merge 和 git rebase 的区别
  • LoRA:大模型低秩适配技术全景——原理、演进与高效微调革命
  • MongoDB社区版安装(windows)
  • 第4.3节 iOS App生成追溯关系
  • 联发科MT6897 5G智能手机应用处理器 软件寄存器表:通用闪存(UFS)
  • Kafka——无消息丢失配置怎么实现?
  • C++:list
  • 博客摘录「 Springboot入门到精通(超详细文档)」2025年7月4日
  • ubuntu 22.02 带外进单用户拯救系统
  • 人工智能之数学基础:概率论和数理统计在机器学习的地位
  • 什么是 M4A 和 WAV?这两种音频互转会导致音质发生变化吗