API

API

快捷键
ctrl + alt + m(method) 抽取方法
ctrl + 鼠标左键 查看源码
alt + insert 生成 equals and hashcode
# API
1. API: 应用程序编程接口
2. Math(应用)
abs/ceil/floor/round/max/min/pow/random
3. System(应用)
exit/currentTimeMillis/arraycopy
1). 终止循环
break; // 中止当前循环
return; // 中止当前方法
System.exit(0); // 0表示正常退出 中止当前所有程序
System.exit(1); // 非0表示异常退出
2). 获取当前时间毫秒值(时间最小单位: 毫秒)
long time = System.currentTimeMillis();
1秒 = 1000毫秒
时间原点: 1970年1月1日0时0分0秒
3). System.arraycopy(original, index, dest, index2, length)
original : 源数组
index : 源数组的起始索引
dest : 目标数组
index2 : 目标数组的起始索引
length : 复制的长度
🌙案例:打印10000次的耗时
4. Object类中的toString方法
1). 面向对象编程(OOP:Object oriented programming)
父类是所有子类的共性抽取
2). native(本地方法)
(1) 本地方法的方法体是用 C/C++ 写在 JVM 中
(2) java中的本地方法看似没有方法体,实际上是在底层调用 C/C++ 代码
(3) 编程语言发展(以牺牲效率为代价,以提高阅读性)
1. 机器语言
2. 汇编语言
3. c语言
4. 面向对象语言
3). 抽象数据类型的对象
Student s = new Student("张三", 18);
System.out.println(s);
(1) 现象:
直接打印: 内存地址值
(2) 源码:
println打印一个Object类型的对象,
底层会默认先调用其toString方法转换成字符串
println打印一个String类型的对象
直接打印
(3)需求:
打印内存地址没有意义,想要输出对象的值
4). Object中的toString方法
(1) Object中toString方法
获取此对象的类型 + 内存地址的哈希码值
(2) 经常在开发测试时:
让我们的自定义类型重写toString方法,
这样此类型对象直接打印,会打印toString返回值
5. Object类中的equals方法
1). object中的equals方法
底层就是==,比较的是内存地址值
2). 需求: 比较内存地址没有意义,希望比较对象属性值
3). 实现: 重写equals方法
⭐基础面试题
// s1保存的是字符串常量池中常量"abc"的地址
String s1 = "abc";
// s2保存的是堆中对象String的地址
String s2 = new String("abc");
String s3 = "abc";
String s4 = new String("abc");
System.out.println(s1==s2); // false
System.out.println(s1==s3); // true
System.out.println(s2==s4); // false
// 因为String重写了equals方法,
System.out.println(s2.equals(s1)); // true
6. 函数式接口: 有且仅有一个抽象方法(需要被重写)的接口
有些抽象不需要被重写
equals 不需要被重写的抽象方法(接口中)
接口定义的跟Object类声明一致的方法,都不需要被重写
在类继承接口中,Dog是Object的子类,从Object继承过来的equals方法,变相重写了Animal
7. Objects(应用)
toString(对象)/toString(对象, 默认字符串)/isNull(对象)/onoNull(对象)
8. BigDecimal
1). 构造方法
BigDecimal(double val)
BigDecimal(String val)
2). 精度损失
float(8字节) 指数运算 8位当底数 24位当指数
2^0=1 2^1=2 2^2=4
1. 整型: 取值范围本质遍历字节所有的取值方式
2. 浮点型: 以一部分字节作为底数, 另一部分作为指数
问题:
1. 这样浮点型可以用少的字节数, 表示更大的数
2. 一些正常计算有可能精度丢失
3). 常用方法
add/subtract/multiply/divide/divide(另一对象, 精确几位, 舍入模式)
posted @   青核桃啊  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示