D0822-API01

2023-11-10

Math类

工具类有:Math , Objects , Arrays , LocalDateTime,

Period , Duration , DateTimeFormatter

Math类中包含一些对数据进行数学运算的方法,而该类中的方法全都是静态的。像这样的类称之为工具类

public static int abs(int a)           //对一个数据求绝对值
public static double ceil(double n)    //对一个小数向上取整
public static double floor(double n)   //对一个小数向下取整
public static int round(double n)      //对一个小数进行四舍五入
public static int max(int a,int b)     //求两个数的最大值
public static int min(int a,int b)     //求两个数的最小值 
public static double random()          //生成[0,1)范围内的随机数

System类

public static void exit(int n)  //退出Java虚拟机,规定当 n=0 时为正常退出
public static long currentTimeMillis()  //获取当前距离1970年1月1日0时0分0秒的毫秒值
public static void arraycopy(Object src, int srcPos,Object dest,int destPos,int lendth)
    把源数组中的元素复制到目标数组中。
    参数:
        src - 源数组。
        srcPos - 源数组中的起始位置。
        dest - 目标数组。
        destPos - 目标数据中的起始位置。
        length - 要复制的数组元素的数量。

Object类

Object是所有类的父类,任何一个子类都可以调用Object的方法。

public String toString()
    把一个对象转换字符串。 字符串格式: 包名+类名@地址值。
    每次打印对象,底层会自动去调用toString()方法。
	注意:自己写的类,如果不想打印地址就可以复写toString()方法  
	快捷键:alt+inert-->toString()

public boolean equals(Object obj)
    用来比较两个对象是否“相等“。
    默认比较的是地址值,底层用的是"=="
    注意:自己写的类,如果不想比较地址值可以重写equals()方法,比较自己的内容.有些类已经重写 toString
    快捷键:alt+inert-->Equals and HashCode

Objects类

Objects类是一个工具类,经常用于对一个对象进行判空的处理。JDK7以后才有的

public static String toString(Object s)
    把一个对象转换为字符串
public static String toString(Object s,String defalutStr)
    把一个对象转换为字符串, 如果对象为null,返回默认字符串
public static boolean isNull(Object s)
    判断一个对象是否为null  等价于 s==null
public static boolean nonNull(Object s)
    判断一个对象不为null	等价于 s!=null

BigDecimal类

BigDecimal可以做一些小数的精确运算,还可做一些较大数据的运算。

public BigDecimal add(BigDecimal augend) 
    对两个数进行加法运算
public BigDecimal subtract(BigDecimal subtrahend)  
    对两个数进行减法运算
public BigDecimal multiply(BigDecimal multiplicand)  
    对两个数进行乘法运算
public BigDecimal divide(BigDecimal divisor)  
    对两个数进行除法运算
public BigDecimal divide(BigDecimal divisor,int num,int type)  
    对两个数进行除法运算,可以保留小数个数.
    参数:
    	BigDecimal divisor: 除数
    	int num:保留小数个数
    	int type: 保留小数的方式
    			BigDecimal.ROUND_HALF_UP	最后一位小数四舍五入	
    			BigDecimal.ROUND_UP	 		最后一位小数不管满不满5都进1  
    			BigDecimal.ROUND_FLOOR 		最后一位小数不管慢不满5都舍弃 
 	
注意:需要运算的两个数,必须先封装尾BigDecimal对象,然后通过上面的方法进行运算。

基本数据类型包装类

每一个基本数据类型都有一个对应的包装类,并且提供了一些方法给开发人员使用。

基本数据类型		包装类
byte			Byte
short			Short
int				Integer
long			Long
float			Float
double			Double
boolean			Boolean
char			Character

获取Integer对象

其他基本数据类型有相似的操作

Integer num1=Integer.valueOf(100);
Integer num2=Integer.valueOf("100");

自动装箱和自动拆箱

为了方便基本数据类型和包装类能够直接运算,Java提供了自动装箱和自动拆箱的机制。

//自动装箱: 基本类型(int) 自动转换为 包装类(Integer)
Integer num=100;
//自动拆箱: 包装类(Integer) 自动转换为 基本类型(int)
int num2=num;

包装类的数据转换

如果一个字符串是纯数字的字符串(如: "12345"),不能做数值的数学运算,必须把字符串转换为数值,才能做数学运算。 这样的转换方法在包装类中已经提供了.

  • 字符串转其他的基本数据类型
//需求1:"12345"转换为12345
int num1=Integer.parseInt("12345");

//需求2: “3.14”转换为3.14
double num2=Double.parseDouble("3.14");

//需求3: "6.88"转换为6.88
float num3=Float.parseFloat("6.88");

...
  • 其他类型转换为字符串
1.直接和""做拼接,因为任何一个数据和字符串做拼接结果都是字符串
	String s=100+"";

2.可以使用String类的valueOf方法
	String s1=String.valueOf(100);
	String s2=String.valueOf(3.14);

数组的高级操作

二分查找

二分查找对于数组中的元素必须要有从小到大的顺序,否则不能做二分查找。

二分查找的思路:
	1.获取数组的开始和结束的索引
		int start=0;
		int end=array.length-1;
	2.循环的获取start和end中间的元素
		int mid=(start+end)/2;
	3.让array[mid]和目标数据进行比较
		大了:end=mid-1;
		小了:start=mid+1;
		中了: 直接返回mid
		
Arrays 类中为二分查找提供了 public static int binarySearch(int[] array,int key)  方法
       并为数组的排序提供了 public static void sort(int[] array)  方法

冒泡排序

把相邻的两个元素进行比较,把大的往后放。

1.如果数组的长度为n,一共要比较n-12.每一轮比较的次数比上一轮少1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R7dUV9HI-1598542320575)(assets/1598085280514.png)]

//对数组进行排序
public static void sort(int[] array){
    //1.数组的长度为array.length,比较的轮数是 array.length-1
    for(int i=0;i<array.length-1;i++){
        //2.每一轮比较的次数比上一轮少一次
        for(int j=0;j<array.length-1-i;j++){
            //相邻的元素进行比较,大的往后放
            if(array[j]>array[j+1]){
                int temp=array[j];
                array[j]=array[j+1];
                array[j+1]=temp;
            }
        }
    }
}

Arrays类

Arrays是一个工具类。Arrays类中提供了一些对数组进行操作的方法(比如:查找和排序)

public static int binarySearch(int[] array,int key)
    对数组的元素进行二分查找
public static void sort(int[] array)
    对数组进行排序。
public static String toString(int[] array)
    把数组转换为字符串  格式:"[元素1,元素2,元素3]"

递归

方法自己调用自己,这种方式叫做递归。

public static void main(String[] args) {
    int sum = getSum(5);
    System.out.println(sum);
}
//方法:求1~n的和
public static int getSum(int n){
    if(n==1){
        return 1;
    }else {
        return getSum(n-1)+n; //n-1以内的和加上n,如:(1+2+3+4)+5
    }
}

ring[] args) {
int sum = getSum(5);
System.out.println(sum);
}
//方法:求1~n的和
public static int getSum(int n){
if(n==1){
return 1;
}else {
return getSum(n-1)+n; //n-1以内的和加上n,如:(1+2+3+4)+5
}
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

D0822-API01 的相关文章

随机推荐

  • 判断IP地址有效性

    gt File Name newfile1 cpp gt Author pzz gt Mail 837157806 qq com gt Created Time 2014 2 24 14 06 47 include
  • 嵌入式 Linux 入门(九、Linux 下的磁盘管理)

    嵌入式 Linux 入门第九课 了解 linux 下的磁盘管理 学会挂载移动硬盘设备 矜辰所致 前言 嵌入式 Linux 专栏更新到现在 我们都还没有碰过开发板 本来想着前面的讲完至少先碰一碰开发板 让我们知道我们最终的目的是在开发板上运行
  • vue el-table的每行操作el-button添加单独的loading效果实现

    vue el table的每行操作el button添加单独的loading效果实现 效果图 实现代码 结语 效果图 实现代码
  • grep -v grep使用说明

    目录 一 ps ef 二 grep java 三 grep job 四 grep v grep 五 awk print 2 六 xargs kill 9 当我们要杀掉某个应用服务进程时 一般会执行以下命令 ps ef grep java g
  • 微信小程序getPhoneNumber快速获取用户手机号组件

    小程序中有很多地方都会用到注册用户信息的地方 用户需要填写手机号等 有了这个组件可以快速获取微信绑定手机号码 无须用户填写 1 getPhoneNumber这个组件通过button来实现 别的标签无效 将button中的open type
  • Java复制数组(深拷贝,浅拷贝)

    1 Object clone 简单直接 只能对源数组完整地复制 此方法是深拷贝 也就是如果clone 那么clone 的新数组修改不会影响老数组 但是能使用该方法为基本数据类型加上string String 有final修饰 不可变 基本数
  • 在线安装visual studio时failed signature validation的原因和解决办法

    这两天给笔记本重装了系统 笔记本的系统是windows 8 1 在装visual studio的时候想换个2017试试 就使用在线的方式装了个2017 community 感觉不错 所以准备把开发的虚拟机里面的2015也换成2017 开发虚
  • T1 mapping的用途

    弥漫性反应性纤维化 其特征是心脏中胶原蛋白的不成比例积累 长期以来被认为是舒张功能障碍 心力衰竭和心源性猝死病因的重要因素 因此 心肌间质成为强烈关注的主题 但结构变化的弥散性使得通过使用常规T1加权成像几乎不可能检测到间质纤维化 在过去几
  • 如何看待区块链下的新型共享经济?

    有业内人士认为 区块链技术天然适合大规模协作的一些应用场景 在共享经济当中 不仅涉及的参与主体多 环节复杂 而且要同时协调一个大规模数量的参与者 这是应用区块链技术的一片沃土 区块链对共享经济带来的颠覆性意义已经不言而喻 共享经济的所有参与
  • Android开发之单位详解(dp、sp、px、in、pt、mm)

    开发这么长时间 一直没关注过长度单位的用法 一直都是一根筋的使用者dp sp 后来才发现 除了这两个以外 Android还提供了pt px in mm 开发中看到有很多人不太理解dp sp和px的区别 现在这里介绍一下dp和sp dp也就是
  • golang 接口

    接口 一组method 签名的组合 通过interface 来定义对象的一组行为 interface 就是一组抽象方法的集合 interface 类型 interface 类型定义了一组方法 如果某个对象实现了某个接口中的方法 则此对象就实
  • Java读配置文件

    读取配置文件的方案 public String getProperty String name String k Properties prop new Properties String key null String val null
  • 华为OD机试 - 跳格子2(Java)

    题目描述 小明和朋友玩跳格子游戏 有 n 个连续格子组成的圆圈 每个格子有不同的分数 小朋友可以选择以任意格子起跳 但是不能跳连续的格子 不能回头跳 也不能超过一圈 给定一个代表每个格子得分的非负整数数组 计算能够得到的最高分数 输入描述
  • Android-Service的生命周期

    与Activity类似 Service也有自己的生命周期函数 在不同的时刻 系统会调用对应的Service生命周期函数 不过与Activity声明周期相比 Service的声明周期更加简单 我们通过官方给出的一张图片来体会一下 Servic
  • Low Elements--AT

    题目描述 Given is a permutation P1 PN of 1 N Find the number of integers i 1 i N that satisfy the following condition For an
  • Selenium3 - 当启动selenium时,跳过配置的chromedriver,使用内置低版本浏览器启动

    报错 今天我在运行selenium的时候 发现会直接弹出一个名为NW js的弹窗且其chromium 是68 我寻思我配的chromedriver已经是94 的了 虽然它也能正常启动但是用着怎么也不对劲 我搜索良久没有答案 就仔细检查了一下
  • 利用爬虫下载批量图片

    这是利用python爬取豆瓣Top250电影图片 并下载在本地的一个文件夹中的例子 用了urllib request urlretrieve 直接上代码了 注释说的很清楚哦 import urllib import urllib reque
  • CMD命令

    打开命令提示符 1 添加服务 输入 sc create 服务名称 binPath 目录的绝对路径 exe 2 删除服务 输入 sc delete 服务名称 3 修改服务描述 输入 sc description 服务名称 描述
  • 过拟合以及解决办法

    过拟合 先谈谈过拟合 所谓过拟合 指的是模型在训练集上表现的很好 但是在交叉验证集合测试集上表现一般 也就是说模型对未知样本的预测表现一般 泛化 generalization 能力较差 如图所示 图片来源 coursera 吴恩达机器学习公
  • D0822-API01

    Math类 工具类有 Math Objects Arrays LocalDateTime Period Duration DateTimeFormatter Math类中包含一些对数据进行数学运算的方法 而该类中的方法全都是静态的 像这样的