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

Java 04 API

API

简介
一些已经写好的应用程序编程接口

Object

toString
默认返回的是当前对象在堆内存中的地址值信息:类的全类名@十六进制哈希值
返回该对象的返回值
class A{
}
//返回的是地址哦
String s=A.toString();
//细节:使用打印语句,打印对象名的时候,println在源码层面,打印的就是对象的地址的值

在这里插入图片描述

说白了,实际上就是16进制的哈希值,
但是不好用,所以可以重写
equals
判断两个数值是否相等
==号比较的是两个数据的地址的值
equals比较的也是地址值,所以!!!比较的时候,一定记得要去重写一下equals这个函数,equals的本质实际上是this==object,所以比较鸡肋,建议重写

在这里插入图片描述

首先判断一下是否是传入的那个的子类,
其次需要向下进行转化,
也可以快捷键进行使用,

在这里插入图片描述

以上为快捷键生成的
Objects
也是object的一个子类
.equals
内部依赖于我们所写的equals,
//好处:内部带有一个非空的判断!
return (a==b)||(a!=null && a.equals(b));
.isNull
比较垃圾,可以不用记忆

Math类

成员全部都是static
abs
返回参数的绝对值
ceil
向上取整
floor
向下取整
round
四舍五入
max
返回比较大的那个数的值
pow
pow(a,b);
a的b次方
random
返回[0.0,1.0)的随机数字

System

exit
终止当前运行的java虚拟机,
非0表示异常终止
currentTimeMillis()
返回的是1970年1月1日0时0分0秒到现在所经历过的毫秒值
arraycopy
 /** void arraycopy(Object src,int srcPos,Object dest ,int destPos,int length):数组copy* 1.数据原来的数组* 2.起始索引* 3.目的地数组* 4.起始索引* 5.拷贝的个数* */

BigDecimal

解决小数运算中,出现的不精确的问题

在这里插入图片描述

最好用后面两个方法,因为第一个依旧不精确
add
加法
substract
减法
multiply
乘法
divide
除法
如果除不尽,所以会报错
因此,尽量不要用这个方法,加几个参数用来精确一下位数
(另外一个BigDecimal对象,精确几位,舍入模式);

在这里插入图片描述

up只后面的不要了,最后一位加1
down后面的都不要了,也不进行加1
doubleValue()
返回他的double类型

包装类

实际上就是将基本数据类型,包装成类(编程引用数据类型);

在这里插入图片描述

Integer
两种方法进行包装:
1.Integer(int value);//已经过时了
2.static Integer.valueOf(int i);
将数据类型转化出来
int x=intValue(a);//jdk5之后,出现了自动拆装箱
自动装箱:可以将基本数据类型,直接赋值给包装类的对象
自动拆箱:可以将包装类的数据,直接赋值给基本数据类型变量Integer i=num;
int j=i;
toBinaryString(int i)
返回二进制的字符串类型
toDctalString
返回八进制的字符串类型
toHexString
返回16进制的字符串类型
parseInt
将数字字符串转化为数字

其他的基本数据类型也是都是相等的

面试题
1.等于

在这里插入图片描述

在-128到127之间,他是返回的数组的元素,但是其它的,对象,它实际上返回的是他的地址的答案如果不想这么麻烦,可以使用equals进行比较

Arrays工具类

toString
将数组转化为字符串类型
【,,,】
equals
判断两个数组是否相同
binarySearch
二分查找法,需要数组排好序
int x=Arrays.binarySearch(arr,33);
//如果包含这个值,返回这个值的下表
//否者返回(-(插入点)-1);
sort
排序,默认升序排列,学了红黑树再说如何自定义排序
冒泡
选择
略
实际上就是从0开始,一直拿着0上面的元素和后面的元素进行比较
二分查找

http://www.xdnf.cn/news/7686.html

相关文章:

  • 【信息系统项目管理师】第12章:项目质量管理 - 26个经典题目及详解
  • Agent_Attention线性注意力推导
  • ubuntu terminal 查看opencv 版本,或者其他相关库或者包
  • 【LUT技术专题】DnLUT代码解读
  • UniVLA-香港大学-单系统带导航-2025.5.9-开源
  • 通过两个列表构建字典(python极其详细)
  • Redis哨兵(Sentinel)模式详解:构建高可用Redis架构
  • Oracle RAC ADG备库版本降级方案(19.20 → 19.7)
  • 大模型预训练、微调、强化学习、评估指导实践
  • 学习黑客 TELNET 来龙去脉
  • 5.2.4 wpf中MultiBinding的使用方法
  • 宝塔+fastadmin:给项目添加定时任务
  • Spring Boot 使用 jasypt配置明文密码加密
  • 第6章 C控制语句:循环
  • 攻防世界-题目名称-文件包含
  • MySQL 库的操作 -- 字符集和校验规则,库的增删查改,数据库的备份和还原
  • Java IO流操作
  • Prosys OPC:引领工业互联的OPC UA先锋
  • 游戏引擎学习第296天:层的雾效和透明度
  • 基于Spring Boot + Vue的教师工作量管理系统设计与实现
  • 监控易一体化运维:解锁工单管理效能,为运维工作提速
  • ZooKeeper 原理解析及优劣比较
  • 安达发|传统排产已过时?AI机器人+APS高级排产软件重塑制造业!
  • docker 查看镜像所在位置
  • Index-AniSora论文速读:探索Sora时代动画视频生成的前沿
  • Qt中解决Tcp粘包问题
  • Runtipi - 开源个人家庭服务器管理工具
  • C#调用GTS控制板
  • DeepSeek+PiscTrace+YOLO:迅速实现Mask掩码抠图
  • IEEE 802.1Q协议下封装的VLAN数据帧格式