Java基础学习(6)
Java基础学习
- 一 字符串
- 1.1 API 与 API文档
- 1.1.1 如何使用帮助文档查找想要导用的方法
- 1.2 String 概述
- 1.3 创建String对象的两种方式
- 第一种
- 第二种
- 1.4 Java常用字符串方法
- 1.4.1 比较
- 1.4.2 字符串通过索引取出
- 1.4.3 取出字符串中的单个字符
- 1.4.4 替换出字符串当中的字符
- 1.4.5 取出字符串中对应位置的字符
- 1.4.6 StringBuilder类
- 1.4.7 StringJoiner
- 二 字符串原理
- 2.1 字符串存储的内存原理
- 2.2 ==号比较的到底是什么
- 小题一练
一 字符串
1.1 API 与 API文档
定义:
API就是应用程序编程接口⇒ 指的就是JDK中提供的各种功能的Java类- 这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。
1.1.1 如何使用帮助文档查找想要导用的方法
-
打开API帮助文档
-
点击显示,并找到索引下面的输入
-
在输入框中输入类名并点击显示
-
查看类所在的包
-
查看类的描述
-
查看构造方法
-
查看成员方法
JDK文件库
1.2 String 概述
打开API帮助文档点击显示,并找到索引下面的输入在输入框中输入类名并点击显示查看类所在的包查看类的描述查看构造方法查看成员方法
String 是属于java.lang包中,会自动加载,所以在用的时候不需要导包
字符串不可改变,他们在创建的后不能被改变
1.3 创建String对象的两种方式
第一种
String name = "爱哦苏"
第二种

//空参构造 创建了一个空参 ⇒ ""
String s2 = new String();//传递一个字符串,根据传递的字符串,再创建一个新的字符串对象
String s3 = new String("asoud");//传递一个字符串数组,根据字符串的内容在创建一个新的字符串对象
//运用场景:修改字符串的内容,通过将其转变为数组,改变其想改变的元素,在转换为字符串就可以达到改变字符串的效果
char[] chs = {"a","b","c"};
String s4 = new String(chs); //==> abc//传递一个字节数组,根据字节数组的内容在创建一个新的字符串对象
//运用场景:以后网络中都是通过数据的形式进行传输字节信息
//一般要把字节数字转化为字符串进行运用,所以就要用这个构造
byte[] bte = {98,99,100,101};
String s5 = new string{bte};//bcde
注意:(用第一个方法,直接创建的字符串)
当使用双引号直接赋值时,系统会检查该字符串在串池中是否存在不存在:创建新的存在:复用
注意 :(用第二个方法创建的字符串)
他所创建出来的字符串不会进行寻找,若有一样的字符串,他依然会创建一个新的空间去存储字符串,所以这种会浪费空间
1.4 Java常用字符串方法
1.4.1 比较
==号比较的是什么
- 基本数据类型比较的是数据值
- 引用数据类型比较的是地址值
String s1 = "abc";
String s2 = "abc";//存储在String串池当中
System.out.printIn(s1 == s2); //返回值 ==> trueString s3 = new String("abc"); //存储在堆区
System.out.printIn(s3 == s2); //返回值 ==> false ==>因为他们之间的地址不相同
字符串比较
boolean equals方法(要比较的字符串)
完全一样结果才是true,否则为false
boolean equalslgnoreCase(要比较的字符串)忽略大小写的比较
String s1 = "abc";
String s3 = new String("abc"); //存储在堆区
System.out.printIn(s1.equals(s3)); //返回值 ==> true
我们在做比较字符串的时候就必须利用包装的方法进行比较
1.4.2 字符串通过索引取出
public char charAt(int index): 根据索返回字符
public int length(): 返回此字符串的长度
数组的长度: 数组名.length
字符串的长度:字符串对象.length()
1.4.3 取出字符串中的单个字符
chatAt(下标) 其下标原理与数组类似
String str = "abc";
for(int i = 0 ; i<str.length;i++){//将每一个字符都打印出来int result = str.charAt(i); // a b c
}
1.4.4 替换出字符串当中的字符
replace("要替换的内容","取代它的内容")
String phone = "15426978236TMD";System.out.println(phone.replace("TMD","***"));

1.4.5 取出字符串中对应位置的字符
substring(起始位置,截至位置) 包前不包后
substring(起始位置) 从这个位置开始到最后
public class 手机屏蔽器 {public static void main(String[] args) {String phone = "15426978236TMD";System.out.println(phone.replace("TMD","***"));String start = phone.substring(0,3);String end = phone.substring(7);String result = "";result = result+start+"****"+end;System.out.println(result);}
}
1.4.6 StringBuilder类

public class StringBuilderDom {public static void main(String[] args) {//1. 创建对象StringBuilder sb = new StringBuilder("abc");//2. 添加对象(int String double boolean都可以)sb.append(1);sb.append(1.2);sb.append(true);sb.append("abc");System.out.println(sb);}
}

反转
StringBuilder sb = new StringBuilder("abc");//3.反转sb.reverse();System.out.println(sb);//cba
//4.添加字符串sb.append("iop");sb.append("qwe");sb.append("asd");sb.append("zxc");//5. 将添加到库里面的所有字母全部被变成StringString str = sb.toString();// 6. 计算长度int len = sb.length();System.out.println(str+"\n"+len);

1.4.7 StringJoiner
- Stringjoiner跟StringBuilder一样,也可以看成是一个容器,创建之后里面的内容是可变的
- 作用:提高字符串的操作效率,而且代码编写特别简洁,但是目前市场上很少有人用
JDK 8 出现的


StringJoiner sj = new StringJoiner("---");
sj.add("aaa").add("bbb").add("ccc");
System.out.println(sj); //aaa---bbb---ccc
StringJoiner sj = new StringJoiner(",", "[","]");
sj.add("aaa").add("bbb").add("ccc");
System.out.println(sj); //[aaa,bbb,ccc]
二 字符串原理
2.1 字符串存储的内存原理
- 直接赋值会复用字符串常量池中的
- new出来不会复用,而是开辟一个新的空间
2.2 ==号比较的到底是什么
- 基本数据类型比较数据值
- 引用数据类型比较地址值
小题一练

由于里面是"a"+"b"+"c" 没有变量,所以在项目开始时就变为了"abc",所以返回的是true
相关文章:
Java基础学习(6)
Java基础学习一 字符串1.1 API 与 API文档1.1.1 如何使用帮助文档查找想要导用的方法1.2 String 概述1.3 创建String对象的两种方式第一种第二种1.4 Java常用字符串方法1.4.1 比较1.4.2 字符串通过索引取出1.4.3 取出字符串中的单个字符1.4.4 替换出字符串当中的字符1.4.5 取出…...
【LeetCode】链表练习 9 道题
第一题:移除链表元素 题目描述: 给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val val的节点,并返回新的头节点 。 列表中的节点数目在范围 [0, 10^4] 内1 < Node.val < 500 < val < 50 /…...
轴承远程监控系统解决方案
一、项目背景 随着现代机械设备朝着高集成、高精密度、系统化、自动化的方向发展,在工业生产中一旦机器发生故障,即使局部失灵,都可能导致设备工作失效,甚至造成整个自动化车间停产,从而给工业生产带来巨大的损失。轴承…...
阿里云轻量服务器Workbench root远程连接和一键连接的区别
阿里云轻量应用服务器远程连接支持Workbench root用户连接和Workbench一键连接,Workbench root需要输入root密码,一键连接不需要输入密码,但是也无法获得root权限,阿里云百科来详细说下阿里云轻量应用服务器远程连接说明ÿ…...
带你用纯C实现一个内存池(图文结合)
为什么要用内存池 为什么要用内存池?首先,在7 * 24h的服务器中如果不使用内存池,而使用malloc和free,那么就非常容易产生内存碎片,早晚都会申请内存失败;并且在比较复杂的代码或者继承的屎山中,…...
ChatGPT使用案例之图像生成
ChatGPT使用案例之图像生成 这里一节我们介绍一下ChatGPT的图像生成,这里我们使用代码来完成,也就是通过API 来完成,因为ChatGPT 本身是不能生成图片的,言外之意我们图片生成是ChatGPT通过其他方式生成的 Images API提供了三种与…...
蚁群算法优化旅行问题
%%%%%%%%%%%%蚁群算法解决 TSP 问题%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%初始化%%%%%%%%%%%%%%%%%%% clear all; %清除所有变量 close all; %清图 clc; %清屏 m 50; %蚂蚁个数 Alpha 1; %信息素重要程度参数 Beta 5; %启发式因子重要程度参数 Rho 0.1; %信息素蒸发系数 G 20…...
树数据结构
什么是树数据结构? 树数据结构是一种层次结构,用于以易于导航和搜索的方式表示和组织数据。它是由边连接的节点集合,节点之间具有层次关系。树的最顶端的节点称为根,它下面的节点称为子节点。每个节点可以有多个子节点,…...
Spring Boot整合Redis并提供多种实际场景的应用
Spring Boot整合Redis并提供多种实际场景的应用1. 整合Redis2. 场景应用2.1 缓存2.2 分布式锁2.3 计数器2.4 发布/订阅3. 总结Spring Boot是一个快速构建基于Spring框架的应用程序的工具,它提供了大量的自动化配置选项,可以轻松地集成各种不同的技术。Re…...
VR全景图片,助力VR全景制作,720全景效果图
VR全景图片是指通过全景相机或多相机组合拍摄全景画面,并进行拼接处理生成全景图像的过程。VR全景图片的应用范围广泛,包括旅游和景区、房地产、汽车、艺术和文化、电影和娱乐等领域。本文将详细介绍VR全景图片的类型、应用场景、市场前景和发展趋势。 一…...
Kali Linux20款重要软件
Kali Linux 是一个流行的网络安全测试平台,它包含了大量的工具和应用程序,以下是其中20款最常用的软件和工具: Metasploit:Metasploit 是一个广泛使用的漏洞评估工具,可以帮助安全专业人员测试系统中的漏洞。Aircrack…...
C语言测试五
windows是什么类型的系统(实时还是分时)?有什么区别? 分时操作系统。如果在单核的情况下,分时操作系统多个进程共用一个单核,该单核会将其执行时间分成相应的时间片,每个进程占用一定的时间片&a…...
【微服务~原始真解】Spring Cloud —— 访问数据库整合Druid数据源
🔎这里是【秒懂云原生】,关注我学习云原生不迷路 👍如果对你有帮助,给博主一个免费的点赞以示鼓励 欢迎各位🔎点赞👍评论收藏⭐️ 👀专栏介绍 【秒懂云原生】 目前主要更新微服务,…...
前端入门必刷题,经典算法—两数之和
优美的前⾔ 年轻的码农哟~ 你是不是⼀直在思考⾃我提升的问题~ 思来想去,决定从算法抓起(单押)~ 拿起⼜放下,经历过多少次放弃(单押 ✖ 2)~ 决定了!这次让我来帮你梳理(单押 ✖ 3&a…...
‘海外/国外‘地区微博签到shu据(正题在第二部分)
最近失眠,研究了项关于weibo爬虫的新功能,种种原因,大家可跳过第一部分的引用直接看第二部分。 内容来源:健康中国、生命时报、央视等 失眠标准一:3个“30分钟” ● 入睡困难,从躺下想睡到睡着间隔…...
Springboot——SB整合Mybatis的CURD(基于注解进行开发)
此处是根据需求实现基本操作 上面这里涉及到了条件分页查询,还有增加和批量删除员工信息,右边编辑就是先查询后更新操作,叫做查询回显,然后在原有基础上进行更新 环境准备 在下面的入门案例的整体环境下把数据库表换成empSpring…...
现在大专生转IT可行吗?
当然可行的。 大专也是人,为什么不可以选择喜欢的专业学习,现在大学生遍地都是,学历已经不是限制你发展的因素了。有的人就是不擅长理论学习,更喜欢技术。IT也只是一个普普通通的技术行业,跟其他技术行业一样…...
XC7A50T-1CSG324I、XC7A50T-2CSG324I Artix-7 FPGA可编程门阵列
Artix-7 FPGA能够在多个方面实现更高的性价比,这些方面包括逻辑、信号处理、嵌入式内存、LVDS I/O、内存接口,以及收发器。MicroBlaze CPU针对Xilinx FPGA进行了优化,是一种可高度配置的32位RISC处理器,可为微控制器、实时处理器和…...
linux安装图片处理软件ImageMagick
下载地址: wget https://download.imagemagick.org/archive/ImageMagick-7.1.1-4.tar.gz 或者 wget --no-check-certificate https://download.imagemagick.org/archive/ImageMagick-7.1.1-4.tar.gz 安装命令: tar -zxvf ImageMagick-7.1.1-4.tar.…...
【Java基础】JavaCore核心-反射技术
文章目录1.什么是反射技术2.反射-获取类对象方式3.反射-获取声明构造器4.反射-对象创建实战5.反射-方法和属性实战6.反射-属性值操作实战7.反射-invoke运行类方法1.什么是反射技术 Java的反射(reflection)机制是指在程序的运行状态中 可以构造任意一个类…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
【堆垛策略】设计方法
堆垛策略的设计是积木堆叠系统的核心,直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法,涵盖基础规则、优化算法和容错机制: 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则: 大尺寸/重量积木在下…...
