Java常用的API

跟着黑马的Java学习视频学者本篇常用的API

Math

在这里插入图片描述

public static int abs(int a) {return (a < 0) ? -a : a;
}public static double ceil(double a) {return StrictMath.ceil(a);
}public static double floor(double a) {return StrictMath.floor(a);
}public static double pow(double a, double b) {return StrictMath.pow(a, b); // default impl. delegates to StrictMath}
}public static int max ( int a, int b){return (a >= b) ? a : b;
}

System

(1)虚拟机停止 System.exit(0);

System.out.println("hello1");
System.exit(0);
System.out.println("hello2");

在这里插入图片描述

(2) 返回当前系统的时间毫秒值形式 public static long currentTimeMillis()

public class TestCurrentTimeMillis {public static void main(String[] args) {long start1 = System.currentTimeMillis();for (int i = 2; i < 10000; i++) {if (isPrimer1(i)) {System.out.println(i);}}long end1 = System.currentTimeMillis();System.out.println("isPrimer1 execution time: " + (end1 - start1) + "ms");long start2 = System.currentTimeMillis();for (int i = 2; i < 10000; i++) {if (isPrimer2(i)) {System.out.println(i);}}long end2 = System.currentTimeMillis();System.out.println("isPrimer2 execution time: " + (end2 - start2) + "ms");}// 判断一个数是否为质数(未优化)public static boolean isPrimer1(int number) {if (number <= 1) return false;for (int i = 2; i < number; i++) {if (number % i == 0) {return false;}}return true;}// 判断一个数是否为质数(优化,只需检查到其平方根)public static boolean isPrimer2(int number) {if (number <= 1) return false;for (int i = 2; i <= Math.sqrt(number); i++) {if (number % i == 0) {return false;}}return true;}}

(3)System.arraycopy方法进行数组拷贝

对于基本数据类型数组(如int[]):

   int[] arr1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};int[] arr2 = new int[10];System.arraycopy(arr1, 0, arr2, 4, 3);

对于引用数据类型数组(这里假设有一个父类Person和子类Student的关系):

   Student s1 = new Student("张三", 23);Student s2 = new Student("李四", 24);Student s3 = new Student("王五", 25);Student[] brr1 = {s1, s2, s3};Person[] brr2 = new Person[3];System.arraycopy(brr1, 0, brr2, 0, 3);
 for (int i = 0; i < brr2.length; i++) {// 强转如果数据源数组和目的地数组都是引用数据类型,那么子类类型可以赋值给父类类型Student stu=(Student) brr2[i];System.out.println(stu.getName() + " " + stu.getAge());}

object是顶级父类,只有无参构造

/*object是顶级父类,只有无参构造*/
public class APi_03Object {public static void main(String[] args) {// Student类的实例化和equals()方法使用部分已注释掉String str = "abc";StringBuilder sb = new StringBuilder("abc");// 比较String对象和StringBuilder对象的内容是否相等System.out.println(str.equals(sb.toString())); // true,因为sb.toString()返回"abc"System.out.println(sb.toString().equals(str)); // true,同样比较的是字符串内容// 以下两行代码会抛出编译错误,因为StringBuilder的equals()方法不会直接与String比较// System.out.println(str.equals(sb));// System.out.println(sb.equals(str));}
}

Clone

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

基本数据类型: 存储的是真实的值
引用数据类型: 存储的是另一个空间的地址值

(1)浅克隆

不管对象内部的属性是基本数据类型还是引用数据类型,都完全拷贝过来
public static void main(String[] args) {int[] data = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0};User u1 = new User(1, "张三", "123", "CC", data);User u2 = (User) u1.clone();System.out.println(u1.arrToString());System.out.println(u2.arrToString());//        验证浅克隆int[] arr = u1.getData();arr[0] = 100;System.out.println(u1.arrToString());System.out.println(u2.arrToString());
}

(2)深克隆

基本数据类型拷贝过来字符串复用引用数据类型会重新创建新的

@Override
protected Object clone() throws CloneNotSupportedException {//        先把克隆对象中的数组获取出来int[] data = this.data;
//        创建新的数组int[] newdata = new int[data.length];for (int i = 0; i < data.length; i++) {newdata[i] = data[i];}User u = (User) super.clone();u.data = newdata;return u;
}
public static void main(String[] args) {int[] data = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0};User u1 = new User(1, "张三", "123", "CC", data);User u2 = (User) u1.clone();System.out.println(u1.arrToString());System.out.println(u2.arrToString());//        验证浅克隆int[] arr = u1.getData();arr[0] = 100;System.out.println(u1.arrToString());System.out.println(u2.arrToString());
}

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

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

相关文章

学习JavaEE的日子 Day29 yield,join,线程的中断,守护线程,线程局部变量共享,线程生命周期

Day29 多线程 12. 线程的礼让 Thread.yield(); 理解&#xff1a;此方法为静态方法&#xff0c;此方法写在哪个线程中&#xff0c;哪个线程就礼让 注意&#xff1a;所谓的礼让是指当前线程退出CPU资源&#xff0c;并转到就绪状态&#xff0c;接着再抢 需求&#xff1a;创建两个…

Kimi和ChatGPT做古诗词阅读理解,谁更胜一筹?

前几天发过一篇Kimi整理会议的体验教程&#xff0c;没想到大家很感兴趣&#xff0c;这次再来拿Kimi做古诗词阅读理解看看&#xff0c;同时也对比下ChatGPT的效果。 ChatGPT是几乎家喻户晓的AI大模型&#xff0c;Kimi和它对比有哪些异同点呢&#xff1f; 首先它们都是基于对话…

【Flink架构】关于FLink BLOB的组织架构:FLIP-19: Improved BLOB storage architecture:官网解读

文章目录 一. BlobServer架构1.BlobClient2. BlobServer3. BlobCache4. LibraryCacheManager 二、BLOB的生命周期1. 分阶段清理2. BlobCache的生命周期3. BlobServer 三、文件上下载流程1. BlobCache 下载2. BlobServer 上传3. BlobServer 下载 四. Flink中支持的BLOB文件类型1…

uniapp流浪动物救助小程序Java宠物领养小程序springboot

uniapp流浪动物救助小程序Java宠物领养小程序springboot 代码40块&#xff0c;需要的私聊 前台基于uniapp小程序 后台管理基于springbootvue前后端分离项目 开发语言&#xff1a;Java 框架&#xff1a;springboot vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xf…

VTK 示例 基本的流程-事件交互、球体、

流程可以总结如下&#xff1a; 导入所需的头文件&#xff1a; 首先&#xff0c;导入了一系列 VTK 头文件&#xff0c;这些文件包含了所需的类和函数声明。 创建对象&#xff1a; 创建了两个球体&#xff08;一个较大&#xff0c;一个较小&#xff09;&#xff0c;一个平面&…

FANUC机器人KAREL语言程序结构(入门)

一、karel语言程序结构 FANUC机器人keral语言编程结构如下图所示&#xff1a; Keral指令对应的基础用法如下所示&#xff1a; 二、创建一个简单的写屏程序 依照对应的karel语法写写入下列程序 运行对应的程序进行测试&#xff1a;

南网科研院携手百度智能云,入选信通院AI原生应用优秀案例

为呈现AI原生研发和应用成效&#xff0c;提供AI原生相关技术、服务、部署、运营、基础设施等选型参考&#xff0c;近期&#xff0c;中国信息通信研究院发布了AI原生技术及应用优秀案例&#xff0c;由南方电网公司输配电部牵头、南方电网科学研究院有限责任公司&#xff08;以下…

Web安全攻防世界01 fileinclude(宜兴网信办)

<html> <head><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /></head> //规定 HTML 文档的字符集<br /> <b>Notice</b>: Undefined index: language in <b>/var/www/html/index.ph…

Docket常见的软件部署1

1 安装MySQL # 查看MySQL镜像 docker search mysql # 拉起镜像 docker pull mysql:5.7 # 创建MySQL数据映射卷&#xff0c;防止数据不丢失 mkdir -p /hmoe/tem/docker/mysql/data/ # 启动镜像 docker run -d --name mysql -e MYSQL_ROOT_PASSWORD123456 -p 3306:3306 -v /home…

牛客NC79 丑数【中等 堆、优先级队列 Java,Go,PHP Go和PHP中我自己实现了优先级队列】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/6aa9e04fc3794f68acf8778237ba065b 思路 注意&#xff1a; 数据范围&#xff1a;0≤n≤2000&#xff0c; 2000肯定到不了&#xff0c;最多到1690&#xff0c;相同题目链接&#xff1a;https://www.lintcode.com…

Dockerfile:自定义镜像

Dockerfile 是一个文本文件&#xff0c;其中包含了一系列用于自动化构建Docker镜像的指令。通过编写Dockerfile&#xff0c;开发者能够明确地定义一个软件应用及其运行环境应该如何被封装进一个可移植、可重复构建的Docker镜像中。 第一步&#xff1a;在/tmp文件下新建docker…

hadoop 查询hdfs资源信息的方式

hdfs dfsadmin -report &#xff3b;-live&#xff3d;&#xff3b;-dead&#xff3d;&#xff3b;-decommissioning&#xff3d;

前缀和算法(1)

目录 一维前缀和[模板] 一、题目描述 二、思路解析 三、代码 二维前缀和[模板] 一、题目描述 二、思路解析 三、代码 724.寻找数组的中心下标 一、题目描述 二、思路解析 三、代码 238.除自身以外数组的乘积 一、题目描述 二、思路解析 三、代码 一维前缀和[模…

SQLynx发布3.0.0版本:带来更流畅便捷的SQL开发体验

作为新一代的一站式数据库管理开发工具&#xff0c; SQLynx自发布上线以来&#xff0c;一直受到广大用户的好评与鼓励。 为了给用户提供更高效、更便捷、更可靠的数据库管理开发体验&#xff0c;SQLynx今日正式发布3.0.0版本&#xff0c;同步在麦聪软件官网上线&#xff0c;全…

0DAY漏洞是什么,如何进行有效的防护

零日漏洞&#xff0c;指的是软件或系统中未被公开的、未被厂商知晓的安全漏洞。这些漏洞未被修复&#xff0c;因此黑客可以利用它们进行攻击&#xff0c;而受害者往往无法防范。由于这些漏洞的存在时间很短&#xff0c;因此称之为“零日漏洞”&#xff0c;也称为“0day漏洞”。…

VMware ESXi部署macOS Monterey

正文共&#xff1a;1024 字 30 图&#xff0c;预估阅读时间&#xff1a;2 分钟 最早使用黑苹果是在2015年&#xff0c;装在了古老的Acer商务本上&#xff08;老樹發新芽&#xff0c;acer tm 4750g裝黑蘋果&#xff09;&#xff1b;上次安装黑苹果是在两年前&#xff08;VMware…

淘宝详情数据采集(商品上货,数据分析,属性详情,价格监控),海量数据值得get

淘宝详情数据采集涉及多个环节&#xff0c;包括商品上货、数据分析、属性详情以及价格监控等。在采集这些数据时&#xff0c;尤其是面对海量数据时&#xff0c;需要采取有效的方法和技术来确保数据的准确性和完整性。以下是一些关于淘宝详情数据采集的建议&#xff1a; 请求示…

学习可视化比较好用的网站Apache ECharts

Apache ECharts 是一个基于 JavaScript 的开源可视化图表库&#xff0c;它提供了直观、交互丰富且可高度个性化定制的数据可视化图表。这个库最初由百度团队开源&#xff0c;并在 2018 年初捐赠给了 Apache 基金会&#xff0c;成为 ASF 的孵化级项目。在 2021 年 1 月 26 日&am…

LabVIEW2024中文版软件安装包、工具包、安装教程下载

下载链接&#xff1a;LabVIEW及工具包大全-三易电子工作室http://blog.eeecontrol.com/labview6666 《LabVIEW2024安装图文教程》 1、解压后&#xff0c;双击install.exe安装 2、选中“我接受上述许可协议”&#xff0c;点击下一步 3、点击下一步&#xff0c;安装NI Package …

ChatGPT赋能大气科学:GPT与Python结合应用遥感降水数据处理、ERA5大气再分析数据的统计分析、干旱监测及风能和太阳能资源评估等

目录 专题一 AI领域常见工具讲解 专题二 POE平台及ChatGPT使用方法 专题三 提示词工程 专题四 科研常见应用场景 专题五 Python简明教程 专题六 GPT科研绘图 专题七 GPT辅助下载数据 专题八 遥感降水数据 专题九 数据产品评估 专题十 ERA5全球大气再分析数据 专题十…