当前位置: 首页 > 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.lryc.cn/news/591847.html

相关文章:

  • 【深度学习新浪潮】AI在finTech领域有哪些值得关注的进展?
  • Redis中什么是看门狗机制
  • Paimon 动态分桶
  • 大型语言模型的白日梦循环
  • 【软件测试】软件测试分类与方法解析:目标到工具
  • LINUX例行性工作(计划任务)实验操作 ---at和crontab以及系统级别的计划任务
  • Python学习之——序列化与反序列化
  • 链路聚合实训
  • 解决 MyBatis/MyBatis-Plus 中 UUID 类型转换错误的最佳实践
  • MS Project替代方案:5款项目管理工具测评,8Manage PM为何更优?
  • vue svg实现一个环形进度条组件
  • 进程终止机制详解:退出场景、退出码与退出方式全解析
  • STM32 IAR 生成工程后配置
  • 时序数据库选型指南︰为什么IoTDB成为物联网场景首选?
  • UML用例规范,use case diagram
  • halcon 检测直线
  • OpenCV学习笔记二(色彩空间:RGB、HSV、Lab、mask)
  • DocsGPT:您的智能知识助手,解锁高效信息检索
  • 前端之HTML学习
  • 项目实战(18)-POE分离器
  • 渗透总结一
  • 手机兼容测试服务提供商对比分析:如何选择最合适的测试平台
  • 学习软件测试掌握什么基本知识?
  • 在VsCode上使用开发容器devcontainer
  • windows内核研究(驱动开发 第一个驱动程序和调试环境搭建)
  • VSCODE常规设置
  • 删除百度同步空间桌面图标
  • Elasticsearch+Logstash+Filebeat+Kibana部署【7.1.1版本】
  • 全桥LLC 分立电感变压器计算
  • Docker实战:使用Docker部署IT工具箱Team·IDE