news 2026/6/9 22:47:55

《 7 天 Java API 通关计划 - Day1 》

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
《 7 天 Java API 通关计划 - Day1 》

一、什么是API?

API的全称是Application Programming Interface,中文译为应用程序编程接口,它是一组预先定义的规则、协议和工具的集合,用于实现不同软件组件之间的交互通信。

简单来说,API 就是一个工具箱,里面有已经设计好的锤子、钳子、扳手,我想用哪个我就直接拿过来用。

二、JDK 内置核心包

在 Java 中,“包(Package)” 是组织类和接口的核心机制,既包含JDK 内置的核心包(Java SE 标准库),也包含第三方框架 / 工具包(如 Spring、OSS SDK),还支持开发者自定义业务包

接下来主要介绍JDK 内置的核心包:

java.lang:Java程序的基础类,包含StringObjectIntegerExceptionThread等核心类,处理字符串、异常、线程等。不需要import,可以直接用。

java.util:常用工具类(集合、随机数生成器、日历、时钟等),含List/Map/Set集合、Date/Calendar日期、UUID生成唯一文件名、Properties读取配置等。

java.io:文件操作、输入/输出操作,含File本地文件读取、FileInputStream/FileOutput

Stream文件流,OSS 上传的数据源、BufferedReader读取配置文件等。

java.net:网络操作,URLHttpURLConnection原生 HTTP 请求,可直接调用 OSS REST API。

java.math:数字运算相关操作。

java.security:安全相关操作。

java.sql:数据库操作。

java.text:处理文字、日期、数字、信息的格式。

三、String类

String类的规则

String类在java.lang包下,可以直接使用。

1. 使用了final修饰,不能被继承。

2. 底层运用的char [ ]数组,不能被改变。

3. 拼接字符串会创建新对象,并且不会缓存到常量池中。

String常量池

String常量池 :直接量字符串创建会缓存在字符串常量池中

① 每当使用相同的直接量字符串,会在常量池中寻找进行复用,以减少内存开销。

② 当new对象时,一定会创建新的String字符串对象。

栈:存储局部变量(包括基本类型的值、对象的引用地址),属于线程私有,方法执行完自动释放。

堆:存储对象的实际内容(包括 String 的char[]数组、对象的元数据),所有线程共享,靠 GC 回收。

String的常用方法

Sting str = "我爱学习"; int len = str.length(); //返回当前字符串的长度 String str1 = " Hello Word "; String str2 = str1.trim(); //去除当前字符串两边的空白字符,返回Hello Word String str1 = "Hello"; String str2 = str1.toUpperCase(); //将当前字符串的英文部分全部变为大写,HELLO String str3 = str1.toLowerCase(); //将当前字符串的英文部分全部变为小写,hello String str1 = "www.baidu.com"; String str2 = str1.startsWith("www"); //判断当前字符串是否以www开头,返回布尔型,true String str3 = str1.endsWith(".cn"); //判断当前字符串是否以.cn结尾,返回布尔型,false String str1 = "我今天心情好,喝杯咖啡"; // 0 1 2 3 4 7 6 7 8 9 10 从零开始 String str2 = str1.charAt(7); //根据位置找字符

StringBuilder的常用方法

在不传参时,常量池中默认给到16的长度,若传参的话长度为:传参的长度+16

StringBuilder builder1 = new StringBuilder("你好"); StringBuilder builder2 = builer1.append(",世界"); //追加内容,返回:你好,世界 StringBuilder builder1 = new StringBuilder("你好世界"); // 0 1 2 3 StringBuilder builder2 = builder1.replace(1,4,"在干嘛"); //替换部分内容(含头不含尾),替换1-3的内容,返回你在干嘛 StringBuilder builder1 = new StringBuilder("我真的不爱Java!"); // 0 1 2 3 4 56789 StringBuilder builder2 = builder.delete(1,4); //删除部分内容(含头不含尾)。删除1-3的内容,返回我爱Java! StringBuilder builder1 = new StringBuilder("你好世界"); // 0 1 2 3 StringBuilder builder2 = builder.insert(2,"我的"); 在下标之前插入内容,当前内容后移,返回你好我的世界

String与StringBuilder的转换

String str = "java"; StringBuilder builder = new StringBuilder(str); //将String型的str转换为StringBuilder型的str String str1 = builder.toString(); //将StringBuilder型的str转换为String型的str

String、StringBuilder、StringBuffer的区别

String、StringBuffer和StringBuilder是在Java中用于处理字符串的三个类。它们之间的区别如下:
1. 可变性 :
String是不可变的类,即一旦创建了字符串对象,就不能修改其内容。对字符串进行拼接、插入或删除等操作会创建新的字符串对象。
StringBuffer和StringBuilder是可变的类,它们支持对字符串进行动态修改。可以对字符串进行拼接、插入删除和替换等操作,不会创建新的对象,而是在原有对象上进行修改。
2. 线程安全性 :
String是线程安全的,适用于多线程环境。这是因为String的不可变性,不会出现多个线程同时修改同一个字符串对象的情况。
StringBuffer是线程安全的,它的方法使用了synchronized关键字进行同步,保证了多线程环境下的安全性。
StringBuilder是非线程安全的,它的方法没有进行同步处理。在单线程环境下,StringBuilder的性能比StringBuffer更高。
3. 性能 :
String的不可变性给它带来了一些性能上的优化,比如字符串常量池的使用。但是在频繁的字符串拼接操作中,由于会创建大量的临时对象,性能会受到一定的影响。 StringBuffer和StringBuilder的可变性使得它们在频繁的字符串操作中性能更好,特别是 StringBuilder,因为它不再需要进行同步操作。

总结起来,如果需要对字符串进行频繁的操作和修改,并在多线程环境下使用,应选StringBuffer。如果只在单线程环境下进行字符串操作,并且性能要求较高,可以选择StringBuilder。如果字符串不需要修改,或者在多线程环境下使用,应选择不可变的String类。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 7:02:58

YOLOv5训练日志分析:Loss曲线怎么看?

YOLOv5训练日志分析:Loss曲线怎么看? 在实际目标检测项目的开发过程中,模型跑完第一个epoch后,开发者最关心的问题往往是:“这模型到底有没有在学?” 准确率还没上来,mAP还在爬升,但…

作者头像 李华
网站建设 2026/6/10 13:32:12

LobeChat能否召开虚拟会议?远程协作新模式

LobeChat能否召开虚拟会议?远程协作新模式 在远程办公日益普及的今天,团队每天被各种音视频会议填满:晨会、评审会、复盘会……时间碎片化严重,真正能专注做事的时间越来越少。有没有一种方式,既能保证信息同步和决策质…

作者头像 李华
网站建设 2026/6/10 13:36:39

海康和大华厂商的RTSP取流地址格式进行拉流直播

背景:系统需要对接摄像头,并展示监控实时画面方案:采用RTSP获取直播流参数说明:【rtsp://】:rtsp协议【admin】:登录账号【123456】:登录密码【192.168.1.10】:摄像机IP地址【554】&…

作者头像 李华
网站建设 2026/6/10 13:35:36

如何为LobeChat添加SSL证书实现HTTPS访问?

如何为 LobeChat 添加 SSL 证书实现 HTTPS 访问 在今天,越来越多开发者选择将 AI 聊天系统部署到私有环境中——无论是用于企业内部知识库、客服机器人,还是个人项目演示。LobeChat 凭借其现代化的 UI、对多种大语言模型(LLM)的良…

作者头像 李华