当前位置: 首页 > news >正文

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 比较

==号比较的是什么

  1. 基本数据类型比较的是数据值
  2. 引用数据类型比较的是地址值
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 道题

第一题&#xff1a;移除链表元素 题目描述&#xff1a; 给你一个链表的头节点head和一个整数val&#xff0c;请你删除链表中所有满足Node.val val的节点&#xff0c;并返回新的头节点 。 列表中的节点数目在范围 [0, 10^4] 内1 < Node.val < 500 < val < 50 /…...

轴承远程监控系统解决方案

一、项目背景 随着现代机械设备朝着高集成、高精密度、系统化、自动化的方向发展&#xff0c;在工业生产中一旦机器发生故障&#xff0c;即使局部失灵&#xff0c;都可能导致设备工作失效&#xff0c;甚至造成整个自动化车间停产&#xff0c;从而给工业生产带来巨大的损失。轴承…...

阿里云轻量服务器Workbench root远程连接和一键连接的区别

阿里云轻量应用服务器远程连接支持Workbench root用户连接和Workbench一键连接&#xff0c;Workbench root需要输入root密码&#xff0c;一键连接不需要输入密码&#xff0c;但是也无法获得root权限&#xff0c;阿里云百科来详细说下阿里云轻量应用服务器远程连接说明&#xff…...

带你用纯C实现一个内存池(图文结合)

为什么要用内存池 为什么要用内存池&#xff1f;首先&#xff0c;在7 * 24h的服务器中如果不使用内存池&#xff0c;而使用malloc和free&#xff0c;那么就非常容易产生内存碎片&#xff0c;早晚都会申请内存失败&#xff1b;并且在比较复杂的代码或者继承的屎山中&#xff0c…...

ChatGPT使用案例之图像生成

ChatGPT使用案例之图像生成 这里一节我们介绍一下ChatGPT的图像生成&#xff0c;这里我们使用代码来完成&#xff0c;也就是通过API 来完成&#xff0c;因为ChatGPT 本身是不能生成图片的&#xff0c;言外之意我们图片生成是ChatGPT通过其他方式生成的 Images API提供了三种与…...

蚁群算法优化旅行问题

%%%%%%%%%%%%蚁群算法解决 TSP 问题%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%初始化%%%%%%%%%%%%%%%%%%% clear all; %清除所有变量 close all; %清图 clc; %清屏 m 50; %蚂蚁个数 Alpha 1; %信息素重要程度参数 Beta 5; %启发式因子重要程度参数 Rho 0.1; %信息素蒸发系数 G 20…...

树数据结构

什么是树数据结构&#xff1f; 树数据结构是一种层次结构&#xff0c;用于以易于导航和搜索的方式表示和组织数据。它是由边连接的节点集合&#xff0c;节点之间具有层次关系。树的最顶端的节点称为根&#xff0c;它下面的节点称为子节点。每个节点可以有多个子节点&#xff0c…...

Spring Boot整合Redis并提供多种实际场景的应用

Spring Boot整合Redis并提供多种实际场景的应用1. 整合Redis2. 场景应用2.1 缓存2.2 分布式锁2.3 计数器2.4 发布/订阅3. 总结Spring Boot是一个快速构建基于Spring框架的应用程序的工具&#xff0c;它提供了大量的自动化配置选项&#xff0c;可以轻松地集成各种不同的技术。Re…...

VR全景图片,助力VR全景制作,720全景效果图

VR全景图片是指通过全景相机或多相机组合拍摄全景画面&#xff0c;并进行拼接处理生成全景图像的过程。VR全景图片的应用范围广泛&#xff0c;包括旅游和景区、房地产、汽车、艺术和文化、电影和娱乐等领域。本文将详细介绍VR全景图片的类型、应用场景、市场前景和发展趋势。 一…...

Kali Linux20款重要软件

Kali Linux 是一个流行的网络安全测试平台&#xff0c;它包含了大量的工具和应用程序&#xff0c;以下是其中20款最常用的软件和工具&#xff1a; Metasploit&#xff1a;Metasploit 是一个广泛使用的漏洞评估工具&#xff0c;可以帮助安全专业人员测试系统中的漏洞。Aircrack…...

C语言测试五

windows是什么类型的系统&#xff08;实时还是分时&#xff09;&#xff1f;有什么区别&#xff1f; 分时操作系统。如果在单核的情况下&#xff0c;分时操作系统多个进程共用一个单核&#xff0c;该单核会将其执行时间分成相应的时间片&#xff0c;每个进程占用一定的时间片&a…...

【微服务~原始真解】Spring Cloud —— 访问数据库整合Druid数据源

&#x1f50e;这里是【秒懂云原生】&#xff0c;关注我学习云原生不迷路 &#x1f44d;如果对你有帮助&#xff0c;给博主一个免费的点赞以示鼓励 欢迎各位&#x1f50e;点赞&#x1f44d;评论收藏⭐️ &#x1f440;专栏介绍 【秒懂云原生】 目前主要更新微服务&#xff0c;…...

前端入门必刷题,经典算法—两数之和

优美的前⾔ 年轻的码农哟~ 你是不是⼀直在思考⾃我提升的问题~ 思来想去&#xff0c;决定从算法抓起&#xff08;单押&#xff09;~ 拿起⼜放下&#xff0c;经历过多少次放弃&#xff08;单押 ✖ 2&#xff09;~ 决定了&#xff01;这次让我来帮你梳理&#xff08;单押 ✖ 3&a…...

‘海外/国外‘地区微博签到shu据(正题在第二部分)

最近失眠&#xff0c;研究了项关于weibo爬虫的新功能&#xff0c;种种原因&#xff0c;大家可跳过第一部分的引用直接看第二部分。 内容来源&#xff1a;健康中国、生命时报、央视等​​​​ 失眠标准一&#xff1a;3个“30分钟” ● 入睡困难&#xff0c;从躺下想睡到睡着间隔…...

Springboot——SB整合Mybatis的CURD(基于注解进行开发)

此处是根据需求实现基本操作 上面这里涉及到了条件分页查询&#xff0c;还有增加和批量删除员工信息&#xff0c;右边编辑就是先查询后更新操作&#xff0c;叫做查询回显&#xff0c;然后在原有基础上进行更新 环境准备 在下面的入门案例的整体环境下把数据库表换成empSpring…...

现在大专生转IT可行吗?

当然可行的。 大专也是人&#xff0c;为什么不可以选择喜欢的专业学习&#xff0c;现在大学生遍地都是&#xff0c;学历已经不是限制你发展的因素了。有的人就是不擅长理论学习&#xff0c;更喜欢技术。IT也只是一个普普通通的技术行业&#xff0c;跟其他技术行业一样&#xf…...

XC7A50T-1CSG324I、XC7A50T-2CSG324I Artix-7 FPGA可编程门阵列

Artix-7 FPGA能够在多个方面实现更高的性价比&#xff0c;这些方面包括逻辑、信号处理、嵌入式内存、LVDS I/O、内存接口&#xff0c;以及收发器。MicroBlaze CPU针对Xilinx FPGA进行了优化&#xff0c;是一种可高度配置的32位RISC处理器&#xff0c;可为微控制器、实时处理器和…...

linux安装图片处理软件ImageMagick

下载地址&#xff1a; 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 安装命令&#xff1a; tar -zxvf ImageMagick-7.1.1-4.tar.…...

【Java基础】JavaCore核心-反射技术

文章目录1.什么是反射技术2.反射-获取类对象方式3.反射-获取声明构造器4.反射-对象创建实战5.反射-方法和属性实战6.反射-属性值操作实战7.反射-invoke运行类方法1.什么是反射技术 Java的反射&#xff08;reflection&#xff09;机制是指在程序的运行状态中 可以构造任意一个类…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...