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/8 22:17:47

ComfyUI节点手动安装与更新完整教程

ComfyUI节点手动安装与更新完整指南 在构建复杂AI图像生成工作流时,你是否曾遇到这样的场景:精心设计的工作流加载后,画布上突然冒出几个红色边框的节点?或者想用某个热门ControlNet功能,却发现插件管理器搜不到、下载…

作者头像 李华
网站建设 2026/6/9 13:33:29

LobeChat能否用于生成食谱?AI厨房助手上线体验

LobeChat能否用于生成食谱?AI厨房助手上线体验 在现代家庭厨房里,最常听到的可能不是锅铲翻炒声,而是“今天吃什么?”这个永恒难题。食材有限、口味多变、健康要求越来越高——传统搜索引擎和菜谱App往往给出一堆不相关的选项&…

作者头像 李华
网站建设 2026/6/7 6:17:38

深入理解Java中的Synchronized:从字节码到锁升级全解析

引言 在多线程编程的世界里,线程安全是我们必须面对的核心挑战之一。想象一下,在电商商城的秒杀场景中,库存的扣减如果处理不当,很可能导致超卖问题;在营销抽奖系统中,奖品的发放如果没有正确的同步机制&am…

作者头像 李华
网站建设 2026/6/9 18:39:59

Python面向对象编程入门指南

Python学习笔记-Day7 面积对象 面向对象编程(Object Oriented Programming,简称 OOP,面向对象程序设计)是一种程序设计思想。用面向过程的思想设计程序时,程序是一条条指令的顺序执行,当指令变得多起来时&a…

作者头像 李华
网站建设 2026/6/9 17:17:31

UVa 1450 Airport

问题描述 一个大城市有一个年客流量 400040004000 万的国际机场,但该机场以世界上最为拥堵的机场之一而臭名昭著。在这个机场,只有一条跑道。因此,跑道上总是挤满了等待起飞的飞机。有两条路可以接近跑道,分别称为西路 WWW 和东路…

作者头像 李华
网站建设 2026/6/8 12:57:54

LobeChat能否分析摄像头画面?视觉信息融合

LobeChat能否分析摄像头画面?视觉信息融合 在智能家居设备日益复杂的今天,确保无线连接的稳定性已成为一大设计挑战。然而,在AI交互领域,另一个更深层的问题正浮出水面:我们的聊天助手是否能真正“看见”世界&#xff…

作者头像 李华