Java常用API合集(一)

文章目录

    • 一、StringBuilder类
      • 1.1 方法演示
      • 1.2 String 和StringBuilder互转
      • 1.3 String 和StringBuilder效率对比
      • 1.4 应用案例
    • 二、StringJoiner类
    • 三、Math类
    • 四、System类
    • 五、Runtime类

一、StringBuilder类

  • StringBuilder代表可变字符串对象,相当于是一个容器,它里面的字符串是可以改变的,就是用来操作字符串的。
  • 好处:StringBuilder比String更合适做字符串的修改操作,效率更高,代码也更加简洁。

1.1 方法演示

接下来我们用代码演示一下StringBuilder的用法

public class Test{public static void main(String[] args){StringBuilder sb = new StringBuilder("itehima");//1.拼接内容sb.append(12);sb.append("黑马");sb.append(true);//2.append方法,支持临时编程sb.append(666).append("黑马2").append(666);System.out.println(sb); //打印:12黑马666黑马2666//3.反转操作sb.reverse();System.out.println(sb); //打印:6662马黑666马黑21//4.返回字符串的长度System.out.println(sb.length());//5.StringBuilder还可以转换为字符串String s = sb.toString();System.out.println(s); //打印:6662马黑666马黑21}
}

1.2 String 和StringBuilder互转

  • 1.StringBuilder转换为String
    public String toString0:通过toString0就可以实现StringBuilder转换为String
  • 2.String转换为String Builder
    public StringBuilder(String s):通过构造方法就河以实现把String转换为StringBuilder

1.3 String 和StringBuilder效率对比

在实际开发中为什么要用StringBuilder对字符串进行操作呢?因为它的效率比String更高,我们可以下面两段代码验证一下。

   public static void test01(){StringBuilder sb=new StringBuilder();for(int i=0;i<1000000;i++){sb.append("abc");}System.out.println(sb);}public static void test02(){String s="";for(int i=0;i<1000000;i++){s= s + "abc";System.out.println(i+":"+s);}System.out.println(s);}

经过验证,直接使用Stirng拼接100万次,等了1分钟,还没结束,我等不下去了;但是使用StringBuilder做拼接,不到1秒钟出结果了

1.4 应用案例

需求:要求将java的int类型数组,转成"【1,2,3】"格式的样式输出。

public class Test{public static void main(String[] args){String str = getArrayData( new int[]{11,22,33});System.out.println(str);}//方法作用:将int数组转换为指定格式的字符串public static String getArrayData(int[] arr){//1.判断数组是否为nullif(arr==null){return null;}//2.如果数组不为null,再遍历,并拼接数组中的元素StringBuilder sb = new StringBuilder("[");for(int i=0; i<arr.length; i++){if(i==arr.legnth-1){sb.append(arr[i]).append("]");;}else{sb.append(arr[i]).append(",");}}//3、把StirngBuilder转换为String,并返回。return sb.toString();}
}

二、StringJoiner类

我们前面使用StringBuilder拼接字符串的时候,代码写起来还是有一点麻烦,而StringJoiner号称是拼接神器,不仅效率高,而且代码简洁。

下面演示一下StringJoiner的基本使用

public class Test{public static void main(String[] args){StringJoiner s = new StringJoiner(",");s.add("java1");s.add("java2");s.add("java3");System.out.println(s); //结果为: java1,java2,java3//参数1:间隔符//参数2:开头//参数3:结尾StringJoiner s1 = new StringJoiner(",","[","]");s1.add("java1");s1.add("java2");s1.add("java3");System.out.println(s1); //结果为: [java1,java2,java3]}
}

使用StirngJoiner改写前面把数组转换为字符串的案例

public class Test{public static void main(String[] args){String str = getArrayData( new int[]{11,22,33});System.out.println(str);}//方法作用:将int数组转换为指定格式的字符串public static String getArrayData(int[] arr){//1.判断数组是否为nullif(arr==null){return null;}//2.如果数组不为null,再遍历,并拼接数组中的元素StringJoiner s = new StringJoiner(", ","[","]");for(int i=0; i<arr.length; i++){//加""是因为add方法的参数要的是String类型s.add(String.valueOf(arr[i]));}//3、把StringJoiner转换为String,并返回。return s.toString();}
}

三、Math类

Math是数学的意思,该类提供了很多个进行数学运算的方法,如求绝对值,求最大值,四舍五入等,话不多说,直接上代码。

public class MathTest {public static void main(String[] args) {// 目标:了解下Math类提供的常见方法。// 1、public static int abs(int a):取绝对值(拿到的结果一定是正数)//    public static double abs(double a)System.out.println(Math.abs(-12)); // 12System.out.println(Math.abs(123)); // 123System.out.println(Math.abs(-3.14)); // 3.14// 2、public static double ceil(double a): 向上取整System.out.println(Math.ceil(4.0000001)); // 5.0System.out.println(Math.ceil(4.0)); // 4.0// 3、public static double floor(double a): 向下取整System.out.println(Math.floor(4.999999)); // 4.0System.out.println(Math.floor(4.0)); // 4.0// 4、public static long round(double a):四舍五入System.out.println(Math.round(3.4999)); // 3System.out.println(Math.round(3.50001)); // 4// 5、public static int max(int a, int b):取较大值//   public static int min(int a, int b):取较小值System.out.println(Math.max(10, 20)); // 20System.out.println(Math.min(10, 20)); // 10// 6、 public static double pow(double a, double b):取次方System.out.println(Math.pow(2, 3)); // 2的3次方   8.0System.out.println(Math.pow(3, 2)); // 3的2次方   9.0// 7、public static double random(): 取随机数 [0.0 , 1.0) (包前不包后)System.out.println(Math.random());}
}

四、System类

这是系统类,提供了一些获取获取系统数据的方法。比如获取系统时间。

/*** 目标:了解下System类的常见方法。*/
public class SystemTest {public static void main(String[] args) {// 1、public static void exit(int status)://   终止当前运行的Java虚拟机。//   该参数用作状态代码; 按照惯例,非零状态代码表示异常终止。System.exit(0); // 人为的终止虚拟机。(不要使用)// 2、public static long currentTimeMillis()://    获取当前系统的时间//    返回的是long类型的时间毫秒值:指的是从1970-1-1 0:0:0开始走到此刻的总的毫秒值,1s = 1000mslong time = System.currentTimeMillis();System.out.println(time);for (int i = 0; i < 1000000; i++) {System.out.println("输出了:" + i);}long time2 = System.currentTimeMillis();System.out.println((time2 - time) / 1000.0 + "s");}
}

五、Runtime类

这个类可以用来获取JVM的一些信息,也可以用这个类去执行其他的程序。话不多少,上代码。

/***  目标:了解下Runtime的几个常见方法。*/
public class RuntimeTest {public static void main(String[] args) throws IOException, InterruptedException {// 1、public static Runtime getRuntime() 返回与当前Java应用程序关联的运行时对象。Runtime r = Runtime.getRuntime();// 2、public void exit(int status) 终止当前运行的虚拟机,该参数用作状态代码; 按照惯例,非零状态代码表示异常终止。// r.exit(0);// 3、public int availableProcessors(): 获取虚拟机能够使用的处理器数。System.out.println(r.availableProcessors());// 4、public long totalMemory() 返回Java虚拟机中的内存总量。System.out.println(r.totalMemory()/1024.0/1024.0 + "MB"); // 1024 = 1K     1024 * 1024 = 1M// 5、public long freeMemory() 返回Java虚拟机中的可用内存量System.out.println(r.freeMemory()/1024.0/1024.0 + "MB");// 6、public Process exec(String command) 启动某个程序,并返回代表该程序的对象。// r.exec("D:\\soft\\XMind\\XMind.exe");Process p = r.exec("QQ");Thread.sleep(5000); // 让程序在这里暂停5s后继续往下走!!p.destroy(); // 销毁!关闭程序!}
}

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

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

相关文章

dcf写入机制

dcf写入机制 写入 dcf提供如下两个写入接口&#xff1a; dcf_write int dcf_write(unsigned int stream_id, const char* buffer, unsigned int length, unsigned long long key, unsigned long long *index);仅在leader节点调用。 dcf_universal_write int dcf_universal_w…

代码审计的未来趋势

代码审计的未来发展趋势&#xff0c;如人工智能、区块链、云计算等代码审计是一项非常重要的工作&#xff0c;可以帮助团队发现潜在的安全漏洞和缺陷。随着技术的不断发展&#xff0c;代码审计也在不断地发展和改进。本文将介绍代码审计的未来发展趋势&#xff0c;包括人工智能…

C++ 标准库-chrono 基本用法

文章目录 再C开发中&#xff0c;经常会遇到时间相关的问题&#xff0c;这里可以借助 <chrono>来帮我们解决问题。 <chrono> 是 C 标准库中的一个头文件&#xff0c;它提供了处理时间和日期的功能。这个库引入了一组类型和函数&#xff0c;用于在程序中进行时间点、…

Linux(22):X Window 设定介绍

X Window System X Window System 是个非常大的架构&#xff0c;他还用到网络功能。也就是说&#xff0c;其实 X 窗口系统是能够跨网络与跨操作系统平台的。 X Window系统最早是由 MIT (Massachusetts Institute of Technology&#xff0c;麻省理工学院) 在1984年发展出来的&…

day13 栈与队列(三)

day13 2023.12.11 代码随想录 今天刚出差回来&#xff0c;拉下了很多天的博客&#xff0c;慢慢补吧&#xff0c;每天做当天的任务&#xff0c;再补一篇博客。 1. 239滑动窗口最大值 本题就是每次窗口内容放在一个单调队列中&#xff0c;那么每次直接返回队头元素&#xff08;最…

register_chrdev函数使用

static struct class *led_class;static int major 0; /*记得static 不然可能会出现外部.c调用这个变量的可能*/static struct file_operations led_drv {.owner THIS_MODULE,.open led_drv_open,.read led_drv_read,.write led_drv_write,.release led_drv…

Python中的继承:概念、用法与示例

目录 一、引言 二、继承的概念 三、继承的用法 1、继承父类的属性和方法 2、添加新的属性和方法 3、覆盖父类的方法 四、示例代码展示 五、继承中的多态性 六、继承中的封装和抽象 七、继承中的多重继承 总结 一、引言 面向对象编程&#xff08;OOP&#xff09;是一…

「完美世界」石昊被诓入至尊道场,修炼无敌道,打跑天仙书院弟子

Hello,小伙伴们&#xff0c;我是拾荒君。 《完美世界》这部国漫&#xff0c;在粉丝的翘首期盼中&#xff0c;终于迎来了第141集的更新。这一集的内容&#xff0c;对于喜欢石昊和至尊道场劫难的观众来说&#xff0c;可谓是扣人心弦&#xff0c;让人目不转睛。 在这一集中&#…

【信息学奥赛】拼在起跑线上,想入道就别落下自己!

编程无难事&#xff0c;只怕有心人&#xff0c;学就是了&#xff01; 文章目录 1 信息学奥赛简介2 信息学竞赛的经验回顾3 优秀参考图书推荐《信息学奥赛一本通关》4 高质量技术圈开放 1 信息学奥赛简介 信息学奥赛&#xff0c;作为全国中学生学科奥林匹克“五大学科竞赛”之一…

ChatGPT使用:一个发包机器人的提示词

发包机器人&#xff1a; 设想&#xff1a;目前项目组有n条打包线会输出多个包&#xff0c;用户想获取最新的包是比较困难的&#xff0c;难点在于 1. 分支多&#xff1a;trunk&#xff0c;release&#xff0c;outer等&#xff0c;至少有3个分支&#xff1b; 2. 多平台&#x…

C++ 面向对象模型 小知识点

空类 大小 空类的 sizeof 结果是 1。原因&#xff1a;每个对象都应该在内存上有独一无二的地址&#xff0c;因此给空对象分配 1 个字节空间。 当定义了一个变量后&#xff0c;则类的大小为这个变量的大小。 类中 变量和函数是分开存储的。 静态成员变量&#xff0c;静态成员函数…

浅谈“前端已死”论

自我介绍一下&#xff0c;我目前是一个C#后端开发工程师&#xff0c;题目中所述的java和前端貌似跟我没有太大的关系&#xff0c;我想说&#xff0c;在这IT行业内&#xff0c;所有的东西都是互通的&#xff0c;最近公司也在搞B/S&#xff0c;也是使用了javavue的模式&#xff0…

Spring+SpringMVC+SpringBoot

Spring bean bean基础配置 bean别名配置 注意事项&#xff1a; 获取bean无论是通过id还是name获取。如果无法获取到&#xff0c;将抛出异常NoSuchBeanDefinitionException bean的作用范围配置 适合交给容器进行管理的bean 表现层对象、业务层对象、数据层对象、工具对象 不…

Vue3+ts实现页面跳转及参数传递

## 列表页 <script lang"ts" setup> import { reactive, toRefs } from vue // 1 引入useRouter路由信息方法 import { useRouter } from vue-router // 2 获取实例 const router useRouter()const gotoDetail (index: string) > {router.push({path: …

《opencv实用探索·十九》光流法检测运动目标

前言 光流法&#xff08;Optical Flow&#xff09;是计算机视觉中的一种技术&#xff0c;用于估计图像中相邻帧之间的像素位移或运动。它是一种用于追踪图像中物体运动的技术&#xff0c;可以在视频中检测并测量物体的运动轨迹。 光流的直观理解&#xff1a; 光流是一个视频中两…

智能物联网(IoT)VS AI物联网(AIoT)

#IoT# #AIoT# 智能物联网&#xff08;IoT&#xff09;和AI物联网&#xff08;AIoT&#xff09;区别 概念&#xff1a; 物联网&#xff08;IoT&#xff09;&#xff1a;即“万物相连的互联网”&#xff0c;是在互联网基础上延伸和扩展的网络&#xff0c;将各种信息传感设备与网…

离散型制造企业MES系统行业应用

离散型制造企业具有产品种类多、生产周期长、生产过程复杂等特点&#xff0c;因此&#xff0c;采用先进的生产管理系统对于提高企业的生产效率和管理水平至关重要。其中&#xff0c;制造执行系统&#xff08;MES&#xff09;在离散型制造企业中得到了广泛应用&#xff0c; 一、…

TensorBoard使用和问题解决

一、什么是TensorBoard? TensorBoard 是一组用于数据可视化的工具&#xff0c;它包含在流行的开源机器学习库 Tensorflow 中。TensorBoard 的主要功能包括&#xff1a; 可视化模型的网络架构跟踪模型指标&#xff0c;如损失和准确性等检查机器学习工作流程中权重、偏差和其他…

PDI/Kettle-9.2.0.0-R(对应jdk1.8)源码编译问题记录及源码结构简介

目录 &#x1f4da;第一章 前言&#x1f4d7;背景&#x1f4d7;目的&#x1f4d7;总体方向 &#x1f4da;第二章 代码结构初识基本结构&#x1f4d7;代码模块详情 ⁉️问题记录❓问题一&#xff1a;代码分支哪些是发布版本❗答&#xff1a;后缀-R的版本 ❓问题二&#xff1a;50…

Milesight VPN server.js 任意文件读取漏洞(CVE-2023-23907)

0x01 产品简介 MilesightVPN 是一款软件&#xff0c;一个 Milesight 产品的 VPN 通道设置过程更加完善&#xff0c;并可通过网络服务器界面连接状态。 0x02 漏洞概述 MilesightVPN server.js接口处存在文件读取漏洞&#xff0c;攻击者可通过该漏洞读取系统重要文件&#xff…