Java后端基础知识(String类型)

String类的创建方式

String的特点

1.引用数据类型
2.是final类,一旦创建内容不可修改
3.String类对象相等的判断用equals()方法完成,==是判断地址数值

String的创建方式

1.直接创建

String str="hello";

注意:直接创建创建的字符串直接赋值在常量池中
2.创建对象方式

String str=new String("hello");

注意:创建对象方式,创建对象时首先看池中是否有相同值的字符串,如果有则拷贝一份到堆中,然后返回堆的地址;如果没有,则在堆中创建一份,然后返回堆的地址。

String类的存储原理

String str1="hello";
String str2="hello";
System.out.print("str1==str2");//true
String str3=new String("lishuo");
String str4=new String("lishuo");
System.out.print("str3==str4");//false

在这里插入图片描述
str1和str2是String直接创建,直接赋值在常量池中,==比较的是常量中的内存地址‘str3和str4是创建对象方式,比较的是堆中的地址。

String常用方法

1.charAt(int index) 返回指定索引的字符

String str1="hello li";
System.out.println(str1.charAt(0));//h
System.out.println(str1.charAt(3));//l

2.replace(char oldchar,char newchar) 用新字符替换旧字符

String str1="abc";
String str2=str1.replace(a,b);
System.out.println(str2);//bbc

3.**equals()**比较字符串的内容是否相同
重点:equals和==的区别
String中的equals比较的是字符串的内容是否相同
"=="比较基本数据类型时,比较的是值;比较引用数据类型时,比较的是地址值

String str1="hello";
String str2=new String("hello");
System.out.println(str1==str2);//false
System.out.println(str1.equals(str2));//true

4.String实现字符串反转

public static void main(String[] args){
System.out.println(reverse("abc"));
}
public static String reverse(String str){
String newstr="";
for(i=str.length-1;i>0;i--){
newstr+=str.charAt(i);
}
return newstr;
}

5.toLowerCase()转为小写
6.toUpperCase()转为大写
还有很多方法,但不常用,用时查询即可

String和StringBuffer StringBuilder的区别

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/808873.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

09 Php学习:数组和排序

数组概念 在PHP中,数组是一种复合数据类型,用于存储多个值。以下是关于PHP数组的详细解释: 索引数组:索引数组是最基本的数组类型,其中每个元素都有一个唯一的数字索引,从0开始递增。 关联数组&#xff…

Android Studio开发学习(七)———RelativeLayout(相对布局)

在上期中我们对LinearLayout进行了详细的解析,LinearLayout也是我们用的比较多的一个布局,更多的时候更钟情于它的 weight(权重) 属性,等比例划分,对屏幕适配还是 帮助蛮大的;但是使用LinearLayout的时候也有一个问题,就是当界面比…

橘子学JDK之JMH-02(BenchmarkModes)

一、案例二代码 这次我们来搞一下官网文档的第二个案例,我删除了一些没用的注释,然后对代码做了一下注释的翻译,可以看一下意思。 package com.levi;import org.openjdk.jmh.annotations.*; import org.openjdk.jmh.runner.Runner; import …

【算法练习】29:插入排序学习笔记

一、插入排序的算法思想 原理:将一个无序的数据序列逐步转化为有序序列。算法将待排序的数组分为两个部分已排序部分和未排序部分。 时间复杂度:插入排序的时间复杂度在最坏、平均和最好情况下的表现相同,均为 ,其中 n 是待排序数…

极狐GitLab对接OAuth2实现SSO

本文作者:极狐(GitLab) 高级解决方案架构师 武让 GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 企…

Python处理PDF:在PDF文档中插入页眉和页脚

在处理篇幅较长、结构复杂的PDF文档时,页眉和页脚的设计与插入就显得尤为重要。它们不仅扮演着美化文档、提升专业度的角色,更承担了导航指引、信息标注的重要功能。 页眉通常用于展示文档的标题或章节名称,有助于读者在翻阅过程中迅速定位所…

Java - 赋值运算符

在这个实战中,我们将学习赋值运算符的使用方法。首先,我们将介绍简单赋值运算符的基本概念和语法格式。然后,我们将通过案例演示来加深对赋值运算符的理解。接下来,我们将对比Java和Python这两种不同的编程语言,探讨它…

电能质量管理解决方案探讨 安科瑞 许敏

电能质量在线监测装置 本办法对发电企业(包括分布式电源)、电网企业、用电企业的电能质量管理均有明确要求,要求在发电企业并网点、电网企业非线性设施、用电企业公共连接点设置电能质量监测装置,这会促进市场对电能质量在线监测…

理解 编译和链接

目录 1. 翻译环境和运行环境 2. 翻译环境 2.1 预处理(预编译) 2.2 编译 2.2.1 词法分析: 2.2.2 语法分析 2.2.3 语义分析 2.3 汇编 2.4 链接 3. 运行环境 1. 翻译环境和运行环境 在ANSI C的任何一种实现中,存在两个不同…

Linux开发--进程

经典五问: 1.什么是程序?什么是进程? 从是否运行进行判断: gcc xxx -o pro,磁盘中生成的pro文件,就是程序 进程是程序一次运行活动 程序是静态的概念,进程是动态的概念。 2.如何查看系统中的进程: 在l…

二叉树练习day.6

654.最大二叉树 链接:. - 力扣(LeetCode) 题目描述: 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前…

MySQL——全文检索

不是所有的数据表都支持全文检索 MySQL支持多种底层数据库引擎,但是并非所有的引擎支持全文检索 ,目前最常用引擎是是MyISAM和InnoDB;前者支持全文检索,后者不支持。 booolean模式操作符 实验: 表productnotes &…

线程池参数如何设置

线程池参数设置 hello丫,各位小伙伴们,好久不见了! 下面,我们先来复习一下线程池的参数 1、线程池参数有哪些? corePoolSize(核心线程数):线程池中的常驻核心线程数。即使这些线程…

Java与Kotlin语言的特色之处

一、Java特色之处: 1.多异常捕获 一个try块可能捕获到多个异常,可以使用多个catch块分别处理每个异常,也可以使用一个catch块处理多个异常(多个异常使用管道符|分隔)。 多个catch块代码: try{ }catch(IOExc…

FMEA与各设计工具之间有哪些联系——SunFMEA软件

在设计领域,FMEA与其他设计工具之间存在着紧密的关系,这些工具共同支持设计师在产品开发的各个阶段做出明智的决策,今天SunFMEA软件和大家一起了解FMEA与各设计工具之间的联系。 首先,FMEA与CAD(计算机辅助设计&#…

搭建PyTorch神经网络进行气温预测(手写+调包两种方法)(保证学会!)+找到神经网络的最优情况

代码上有注释!!!!!! 本篇主要包括三大部分: 第一部分:导入数据集导入第三方库数据集简单介绍与可视化数据集简单预处理 第二部分:手写神经网络代码实现气温预测&#…

论文学习D2UNet:用于地震图像超分辨率重建的双解码器U-Net

标题::Dual Decoder U-Net for Seismic Image Super-Resolution Reconstruction ——D2UNet:用于地震图像超分辨率重建的双解码器U-Net 期刊:IEEE Transactions on Geoscience and Remote Sensing 摘要:从U-Net派生…

linux中rpm包与deb包的区别及使用

文章目录 1. rpm与deb的区别2. deb软件包的格式和使用2.1 deb软件包命令遵行如下约定2.2 dpkg命令2.3 apt-命令 3. Unix和Linux的区别Reference 1. rpm与deb的区别 有的系统只支持使用rpm包安装,有的只支持deb包安装,混乱安装会导致系统问题。 关于rpm和…

手拉手安装启动Kafka2.13

启动Kafka本地环境需Java 8以上 Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 Kafka启动…

【ubuntu20.04】安装GeographicLib

下载地址 GeographicLib: Installing GeographicLib 我们是ubuntu20.04 ,所以下载第一个 GeographicLib-2.3.tar.gz 接着跟着官方步骤安装,会出错!!!!马的 官方错误示例:tar xfpz Geographi…