news 2026/4/30 16:20:11

《 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/5/1 5:56:56

程序员必备的 6 个效率神器:2025 年开源 AI 平台盘点

在 AI 功能正快速成为应用标配的今天,选择一个合适的开源平台能极大提升开发效率、避免重复造轮子。我整理了 6 款值得关注的开源项目,评选时主要看了这几个方面:功能是否完整、上手难易度、扩展性如何、社区是否活跃,以及商业项目…

作者头像 李华
网站建设 2026/5/1 5:56:56

小白也能看懂的RLHF-PPO:原理篇

原文: https://mp.weixin.qq.com/s/8O7W8–x14-b1d3M9IS_3w LLM-RL往期文章推荐 小白也能看懂的RL-PPO 收藏!强化学习从入门到封神:5 本经典教材 8 大实战项目 7个免费视频,一站式搞定 小白也能看懂的RLHF:基础篇 在上一篇…

作者头像 李华
网站建设 2026/5/1 5:59:28

当AI成为你的生活搭档:让技术有温度地守护家庭

清晨六点,厨房的灯光自动亮起,恰到好处的亮度唤醒沉睡的身体;客厅的空气质量监测器悄悄启动新风系统,过滤掉夜间积聚的微尘;智能药盒准时响起轻柔提示,提醒母亲服用降压药。这不是科幻电影场景,…

作者头像 李华
网站建设 2026/5/1 5:57:55

cloudflare配合ikuai使用ipv6内网穿透

首先声明:文章是完全公开的,CSDN老是设置成VIP文章,我知道后都改回来了,也找不到客服怎么搞,坑。 感觉ipv6访问看自己家里的视频比ipv4快。所以就研究了两天终于把这个搞出来了。确实要比ipv4快。没有显卡硬解都感觉差…

作者头像 李华
网站建设 2026/5/1 5:57:26

华为ip-prefix

一. IP-Prefix的定义 IP-Prefix(IP前缀列表)是华为网络设备中用于精确匹配路由前缀的过滤工具。它通过前缀掩码范围的组合定义匹配规则,例如匹配192.168.1.0/24但排除192.168.1.0/26的子网。与传统ACL相比,其优势在于&#xff1a…

作者头像 李华