Java基础:常见API(Math,System,Runtime,Object,BigInteger,BigDecima)

news/2024/4/20 19:42:43/文章来源:https://blog.csdn.net/Orange_sparkle/article/details/129242352

1.常见API

1.1 Math类

向上取整是向着数轴右边走的意思, 负数也是. 也可以叫进一法, 不论正数负数都会往右走一.

向下取整是向着数轴左边走. 也可以叫去尾法, 不论正负数都会将小数点后的数字去掉.

1.1.2 练习

// 判断有多少水仙花数int count = 0;for (int i = 100; i < 1000; i++) {int ge = i % 10;int shi = i / 10 % 10;int bai = i / 100 % 10;if (i == Math.pow(ge, 3) + Math.pow(shi, 3) + Math.pow(bai, 3)){count++;}}System.out.println("有" + count + "个水仙花数");

1.2 System类

System.exit(), 里面写0表示虚拟机正常停止, 写1表示虚拟机异常停止.

如果源数组和目的地数组都是基本数据类型, 那么两者的数据类型必须一致. 否则会报错.

源数组和目的地数组的长度也必须考虑, 如果超出则会报错.

如果数据源数组和目的地数组都是引用数据类型,那么子类类型可以赋值给父类类型.

1.3Runtime

Runtime表示当前虚拟机的运行环境

1.4 Object

Object只有无参构造方法

1.4.1 常用方法

(1) toString

方法返回的字符串是: 包名+类名+@+地址值.

细节:

System.out.println和toString一样也能打印出地址值

system:类名out:静态变量
system.out:获取打印的对象println( ):方法
参数:表示打印的内容核心逻辑:
当我们打印一个对象的时候,底层会调用对象的toString方法,把对象变成字符串。然后再打印在控制台上,打印完毕换行处理。

如果不想打印地址值的话, 我们可以重写toString方法.(ptg插件可以在生成javabean的时候生成toString方法)

当sout中传递过来是一个对象时,会在底层使用toString方法

(2) equals()

只能比较地址值是否相同, 如果相比属性值, 可以重写equals方法. alt+insert中可以选择自动生成.

(3) clone

把A对象的属性值完全拷贝给B对象,也叫对象拷贝,对象复制

细节 : 我们不能直接使用clone, 因为它是protect的, 所以我们需要在封装的类中重写clone方法, 并且在开头要implements一个cloneable接口(该接口中不含抽象方法). 

Cloneable
如果一个接口里面没有抽象方法
表示当前的接口是一个标记性接口
现在Cloneable表示一旦了实现,那么当前类的对象就可以被克隆
如果没有实现,当前类的对象就不能克隆

实现clone的步骤:

1.重写0bject中的clone方法
2.让javabean类实现Cloneable接口
3.创建原对象并调用clone就可以了。

浅克隆

浅克隆是只克隆地址值, 缺点是当其中任一对象的字符串或数组中的值发生变化, 另一个也发生相应的变化.

深克隆

深克隆是直接创建一个新的数据, 将新的数组的地址值赋给新的对象. 字符串的地址值相同是因为串池复用.

object的clone方法是浅克隆.

想要实现深克隆需要用到第三方工具

1.5 objects

Objects是一个工具类,提供了一些方法去完成一些功能。

1.6 BigInteger

1.6.1 构造方法

(1) BigInteger(4, r), 表示[0, 15]中的随机数, 15 = 2^4 - 1.

(2) 第二个构造方法中的参数必须是整数

(3) 1.字符串中的数字必须是整数 2.字符串中的数字必须要跟进制吻合。比如二进制中,那么只能写0和1,写其他的就报错。

(4) 静态方法获取BigInteger的对象, 内部有优化
细节:
1.能表示范围比较小,只能在1ong的取值范围之内,如果超出1ong的范围就不行了。
2.在内部对常用的数字:-16~16进行了优化。提前把-16 ~ 16先创建好BigInteger的对象,如果多次获取不会重新创建新的。

1.6.2 基本使用

biginteger是对象, 是不能使用加减乘除的.

1.6.3 存储方式

将大整数对应的二进制数以32位进行分组, 再将3组的二进制值转为各自对应的十进制值, 最后再按照顺序放入数组当中.

signum表示大整数的正负, 为-1则是负数, 0则是0, 1则是正数.

 1.6.4 总结

1.7 BigDecima

1.7.1构造方法

二进制的整数部分我们知道是通过每一位的二进制数乘以2的次方后的数相加得到, 次幂从右往左递减, 小数也是如此, 次幂从右往左递减(-1, -2, -3...), 所以有些特定的小数部分很难表达出来, 需要占用很多字节. 但是long和double的字节数都有限, 所以会出现计算不准确的情况.

细节:
1.如果要表示的数字不大,没有超出double的取值范围, 建议使用静态方法
2.如果要表示的数字比较大,超出了double的取值范围,建议使用构造方法
3.如果我们传递的是0~10之间的整数,包含0,包含10,那么方法会返回已经创建好的对象,不会重新new

1.7.2基本使用

1.7.3 存储方式

先将String中每一个符号进行拆分, 然后查找对应的ASCII码表对应的数字放入数组当中.

1.7.4 总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_75084.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在没有任何额外包的情况下使用 NodeJS 下载文件

如何在没有任何额外包的情况下使用 NodeJS 下载文件 您可以下载文件&#xff08;图像、文本或任何类型的文件&#xff09;并使用 NodeJS 内置 https和 fs模块将其保存到您的文件系统。 该 https模块允许您使用 NodeJS 创建 HTTPS 请求&#xff0c;同时该 fs模块授予您访问文件…

【论文精读11】MVSNet系列(2018-2022)总结

MVSNet系列总结1.MVSNet ECCV20182.RMVSNet CVPR20193.P-MVSNet ICCV20194.MVSCRF ICCV20195.PointMVSNet ICCV20192019年的这四篇文章各有特点&#xff0c;其中RMVSNet、PointMVSNet更是打开了可以继续沿着往下做的思路&#xff1a;6.cascade MVSNet CVPR20207.UCSNet CVPR202…

Python-GEE遥感云大数据分析、管理与可视化技术及多领域案例实践应用

随着航空、航天、近地空间等多个遥感平台的不断发展&#xff0c;近年来遥感技术突飞猛进。由此&#xff0c;遥感数据的空间、时间、光谱分辨率不断提高&#xff0c;数据量也大幅增长&#xff0c;使其越来越具有大数据特征。对于相关研究而言&#xff0c;遥感大数据的出现为其提…

Python基础—while循环

(1)while循环&#xff1a; 语法格式&#xff1a; while 条件&#xff1a;   执行语句1……   执行语句2…… 适用条件&#xff1a;无限循环 死循环 while True:print(条件是真的&#xff01;)代码实例&#xff1a; i 0 # 创建一个计数的变量 while i < 5: # Truepr…

一个容易被忽视的标签 —— iframe

前言 甲问&#xff1a;说说你知道的HTML标签。 乙于是说了一大堆标签&#xff0c;比如div&#xff0c;span等等。 甲说&#xff1a;那你知道 iframe 标签吗&#xff1f; 乙这时候迟疑了片刻&#xff0c;缓缓说出&#xff1a;知道它&#xff0c;但是不太了解这个标签。 HTM…

Linux文件属性--软连接和硬链接

文章目录软链接硬链接软链接和硬链接的区别软链接 软链接&#xff08;Soft Link&#xff09;又叫符号链接&#xff08;Symbolic Link &#xff09;&#xff0c;是linux特殊文件的一种&#xff0c;文件类型为l,它的数据是它所链接的文件或目录的路径。软链接可以跨磁盘和 分区…

动手学深度学习(第二版)学习笔记 第三章

第三章 线性神经网络 代码&#xff1a;d2l-zh/pytorch/chapter_linear-networks 3.1 线性回归 3.1. 线性回归 — 动手学深度学习 2.0.0 documentation 解析解 线性回归的解可以用一个公式简单地表达出来&#xff0c;这类解叫作解析解&#xff08;analytical solution&…

git在工作中的正常使用

开发A和B功能后进行发版。。 一、拉取代码 git clone http://ntc.ntsvars.com:8090/lvweijie/test.git二、开发功能A任务 创建A任务本地分支 #创建A分支&#xff0c;并切换A分支 git checkout -b A三、开发A任务 四、提交A功能文件到本地分支 git add .五、添加提交A功能备…

AcWing3485. 最大异或和

先看题目&#xff1a; 说实话&#xff0c;我看到这道题就想用滑动窗口&#xff0c;但是滑了一下发现不太对啊&#xff0c;如果我用滑动窗口的话&#xff0c;那么最后肯定是一个固定长度为m的窗口在持续计算&#xff0c;区间长度小于m的区间的异或和肯定会被遗漏。然后我就想怎么…

FSP:Flow of Solution Procedure (CVPR 2017) 原理与代码解析

paper&#xff1a;A Gift From Knowledge Distillation: Fast Optimization, Network Minimization and Transfer Learningcode&#xff1a;https://github.com/HobbitLong/RepDistiller/blob/master/distiller_zoo/FSP.py背景深度神经网络DNN逐层生成特征。更高层的特征更接近…

决策树在sklearn中的实现

目录 一.模块sklearn.tree 二.建模基本流程 三.DecisionTreeClassifier重要参数 1.criterion 2.random_state & splitter 3.剪枝参数max_depth 4.剪枝参数min_samples_leaf & min_samples_split 5.max_features & min_impurity_decrease 6.class_weight …

Python IDE:对于 Python 初学者来说,最好的 IDE 是什么?

Python 是科技界最简单、使用最广泛的编程语言之一。它是一种高级通用编程语言&#xff0c;强调代码可读性并使用面向对象的方法。Python可以用来完成很多任务&#xff0c;包括网站开发、软件开发、 自动化 和数据分析 专业开发人员使用Python开发各种流行的软件程序&#xff0…

深入理解Spring MVC上

Spring MVC 是一种基于 Spring 框架的 Web 框架&#xff0c;它提供了一种基于 Model-View-Controller&#xff08;MVC&#xff09;的设计模式&#xff0c;用于构建 Web 应用程序。在 Spring MVC 中&#xff0c;Controller 接受并处理 HTTP 请求&#xff0c;并将其转发给适当的 …

多表left join 慢sql问题

作为个人记录&#xff0c;后续再填坑a对p是1对多 ,p对llup 1对多SELECTa.id,p.id,t1.id FROMliv_series_product aINNER JOIN liv_product p ON p.id a.product_idLEFT JOIN ( SELECT llup.id, llup.product_id, llup.room_id FROM liv_live_user_product llup WHERE llup.ro…

Tomcat部署及多实例

Tomcat部署及多实例一、Tomcat简介1、Tomcat核心组件2、什么是JSP二、Tomcat数据流向1、Tomcat数据流向2、Tomcat-Nginx数据流向三、Tomcat服务部署安装1、安装jdk包2、解压Tomcat所需的安装包3、在/etc/profile添加环境变量4、启动服务并查看5、在浏览器网页验证6、创建用户&a…

为什么硬件性能监控很重要

当今的混合网络环境平衡了分布式网络和现代技术的实施。但它们并不缺少一个核心组件&#xff1a;服务器。保持网络正常运行时间归结为监控和管理导致网络停机的因素。极有可能导致性能异常的此类因素之一是硬件。使用硬件监控器监控网络硬件已成为一项关键需求。 硬件监视器是…

优化知识管理方法丨整理零碎信息,提高数据价值

信息流时代&#xff0c;知识成集合倍数增长&#xff0c;看似我们学习了很多知识&#xff0c;但知识零碎无系统&#xff0c;知识之间缺乏联系&#xff0c;没有深度&#xff0c;所以虽然你很努力&#xff0c;但你发现自己的能力增长特别缓慢&#xff0c;你需要整理知识将零散的知…

蓝桥杯:染色时间

蓝桥杯&#xff1a;染色时间https://www.lanqiao.cn/problems/2386/learning/?contest_id80 问题描述 输入格式 输出格式 样例输入输出 样例输入 样例输出 评测用例规模与约定 解题思路&#xff1a;优先队列 AC代码(Java)&#xff1a; 问题描述 小蓝有一个 n 行 m 列…

std::chrono笔记

文章目录1. radio原型作用示例2. duration原型&#xff1a;作用示例3. time_point原型作用示例4. clockssystem_clock示例steady_clock示例high_resolution_clock先说感觉&#xff0c;这个库真恶心&#xff0c;刚接触感觉跟shi一样&#xff0c;特别是那个命名空间&#xff0c;太…

vue2 diff算法

diff是什么 diff 算法是一种通过同层的树节点进行比较的高效算法 其有两个特点&#xff1a; ♥比较只会在同层级进行, 不会跨层级比较 ♥在diff比较的过程中&#xff0c;循环从两边向中间比较 diff 算法的在很多场景下都有应用&#xff0c;在 vue 中&#xff0c;作用于虚拟 dom…