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上面的元素和后面的元素进行比较
二分查找
复制代码
相关推荐
程序员小假3 分钟前
你会不会使用 SpringBoot 整合 Flowable 快速实现工作流呢?
java·后端
CPETW4 分钟前
同旺科技 USB TO SPI / I2C适配器(专业版)--EEPROM读写——C
c语言·开发语言·科技·stm32·单片机·嵌入式硬件·电子
来自外太空的鱼-张小张5 分钟前
java将pdf文件转换为图片工具类
java·python·pdf
代码中の快捷键12 分钟前
如何实现一个登录功能?
java·开发语言
虾球xz13 分钟前
CppCon 2015 学习:C++ devirtualization in clang
开发语言·c++·学习
保持学习ing35 分钟前
微服务--消息队列mq
java·微服务·消息队列·rabbitmq·消息转换器
zimoyin40 分钟前
Java/Kotlin selenium 无头浏览器 [Headless Chrome] 实现长截图 三种方式
java·selenium·kotlin
看到我,请让我去学习44 分钟前
C++核心编程(动态类型转换,STL,Lanmda)
c语言·开发语言·c++·stl
yuluo_YX1 小时前
Spring AI Alibaba Graph 实践
java·人工智能·spring
conkl1 小时前
Apache网页优化实战指南 - 让网站加载速度提升
linux·运维·服务器·开发语言·阿里云·apache