Java中的字符串

目录

一、三种构建字符串的方式

二、String对象的比较

三、字符串的修改

四、字符串常量池


一、三种构建字符串的方式

    String a = "hello";String b = new String("hello");char[] array = {'h', 'e', 'l', 'l', 'o'};String c = new String(array);

二、String对象的比较

String是引用类型,内部存储的是引用而非字符串本身,对于引用类型==比较的是引用中的地址,并非比较里面的内容;我们用equals方法来比较字符串中的内容是否一致,还有一种比较方法是运用compareTo来比较,与equals不同的是,equals返回的是boolean类型,而compareTo返回的是int类型。

具体比较方式:

1. 先按照字典次序大小比较,如果出现不等的字符,直接返回这两个字符的大小差值

2. 如果前k个字符相等(k为两个字符长度最小值),返回值两个字符串长度差值

注:compareToIgnoreCase可忽略大小写比较

三、字符串的修改

由于String具有不可变性,当对字符串进行修改操作时,本质上是创建一个新的字符串,这样的效率非常低,因此我们可以采取以下方法对字符串进行修改:

1、new一个StringBuilder或者StringBuffer命名为a

3、继续将要增添的内容追加到 a

4、利用toString方法将a转化为字符串String c

5、将 c 的引用赋值给 a  

        String b = "hello";StringBuilder a = new StringBuilder(b);a.append("world");String c = a.toString();b = c;System.out.println(b);

四、字符串常量池

在堆里面划分出了一个单独的区域用于存放字符串常量,称为字符串常量池,程序在使用字符串时,会先到字符串常量池中查找,如果池中存在,则直接用池里的,如果不存在,则会将其添加到池中

我们直接创建的字符串会直接去字符串常量池,如String s = "hello";使用new关键字创建的则不会入池,如String s = new String("hello"),此时要想入池则要用intern()方法手动入池

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

6.传输层协议、ACL

TCP和UDP协议 TCP/IP协议组的传输层协议 TCP(Transmission Control Protocol ) 传输控制协议 UDP(User Datagram Protocol ) 用户数据报协议 TCP协议 TCP是面向连接的、可靠的进程到进程通信的协议 TCP提供全双工服务,即数据可在同一时间双…

避免数据丢失!在NAS上保存Docker容器配置的正确姿势

引言 如果你使用NAS来管理家庭或小型企业的数据,那么Docker容器一定不陌生。它能快速部署各种应用,比如Jellyfin、Plex等多媒体服务器。然而,很多人却踩过一个坑:NAS关机重启后,Docker容器的配置居然丢了!辛苦搭建的环境瞬间化为乌有。别担心,今天就来分享一套实用的技…

【Java的动态代理】

Java中有两种实现动态代理的方式jdk动态代理和CGLIB动态代理 jdk动态代理: 基于接口的动态代理, 目标对象必须实现接口cglib动态代理: 基于字节生成技术(ASM代码生成库), 能在运行时对java类和接口进行扩展实现 那么动态代理这个技术到底能帮我们干啥? 个人感觉这个技术在框…

python怎么安装numpy

1、在python官网https://pypi.python.org/pypi/numpy中找到安装的python版本对应的numpy版本。 例如: python版本是: 下载的对应numpy版本是: 2、将numpy下载到python的安装目录下的scripts文件夹中; 3、然后在cmd中执行以下命…

计算机三级 数据库技术

第一章 数据库应用系统开发方法 1.1 数据库应用系统生命周期 软件工程:软件工程的思想,即用工程的概念、原理、技术和方法对软件生产、开发的全过程进行跟踪和管理 软件开发方法:瀑布模型、快速原型模型、螺旋模型 DBAS生命周期模型 1.2 规划与分析 系统规划与定…

网络编程套接字2

之前我们已经介绍了UDP套接字流程,接下来我们介绍TCP流套接字编程,TCP的一个核心特点,面向字节流,读写数据的基本单位就是字节。 1.API介绍 1.1ServerSocket:是创建TCP服务器Socket的API(专门给服务器用)…

偌依-防重复提交

其中的使用工具类可去偌依的代码中查找 需要配合 springboot自定义过滤器构建可重复读取inputStream的request(来源若依) springboot自定义过滤器构建可重复读取inputStream的request(来源若依)-CSDN博客 定义注解 package co…

3D 数组插值 MATLAB

插值是一种根据现有数据点创建的趋势查找查询数据点值的方法。MATLAB 提供了许多选项来对 N 维数据执行插值。 在本文中,我们将讨论如何借助一些示例在 3D 数组中插入数据。我们将使用 MATLAB 的 interpn() 函数来执行插值。 语法 vq interp…

如何在Typora中绘制流程图

如何在Typora中绘制流程图 在撰写文档时,清晰的流程图能极大地提升信息传递的效率。Typora是一款优秀的Markdown编辑器,支持通过Mermaid语法快速绘制流程图。本文将介绍如何在Typora中创建和自定义流程图,帮助你用更直观的方式呈现逻辑结构和…

SpringBoot集成Redis(全流程详解)

前言 通过在SpringBoot中集成Redis,详细梳理集成过程。包括SpringBoot启动过程中,容器的刷新、自动配置的流程、各类注解的处理。 类比在纯Spring中集成Redis,体验SpringBoot自动配置给开发带来了哪些便利。 一、测试样例 1.1配置文件 a…

机器人控制技术、传感器技术、Wi-Fi无线通信技术、AI视觉应用教学和实训: 智能小车车臂教学平台

1、基本介绍 智能车臂教学平台在硬件上采用模块化设计,主控板、运动车体、机械臂、各类传感器等都可以进行拆卸操作;在接口上,采用标准拔插式设计,减少接线,方便组装。使用Wi-Fi与控制软件进行通信,支持遥…

ssm113ssm框架的购物网站+vue(论文+源码)_kaic

毕 业 设 计(论 文) 题目:网上超市系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本网上超市系统就是在这…

C++ 里面散发的咖喱味儿 - Currying函数式编程

C 里面散发的咖喱味儿 - Currying函数式编程 大家好,最近几篇都在聊C里面的函数式编程,今天我们继续就某一个点来深入聊一下,来聊聊在 C 中如何使用 std::bind 来实现函数式编程,尤其是柯里化(Currying)这…

【Gitee版】一篇教你如何快速入门git(详解)

前言--区分Git与Gitee Git 是一个强大的分布式版本控制系统,用于管理源代码。市面上有很多基于git的仓库网站,例如:GitHub、Gitee、GitCode等,它们之间的关系就好像是:git为基类,剩余为子类的样子。使用的…

Linux系统编程学习 NO.11——进程的概念(2)

谈谈进程的性质 进程的竞争性 由于CPU资源是稀缺的,进程数量是众多的。不可避免需要造成进程排队等待CPU资源的动作,内核的设计者为了让操作系统合理的去调度这这些进程,就产生了进程优先级的概念。设置合理的进程优先级能让不同进程公平的去竞争CPU资…

灵神 刷题DAY1

Python与java的刷题的区别 1. Python没有分号 2. Python不能return的时候赋值 3. Python没有小括号和花括号 4. Python的循环很奇怪&#xff0c;没有for(int i0;i<32;i)这种形式 而是直接用的是for i in range(n)这种 5. Python中没有 6. Python中没有&& 是an…

Nginx中使用keepalive实现保持上游长连接实现提高吞吐量示例与测试

场景 HTTP1 .1之后协议支持持久连接&#xff0c;也就是长连接&#xff0c;优点在于在一个TCP连接上可以传送多个HTTP请求和响应&#xff0c; 减少了建立和关闭连接的消耗和延迟。 如果我们使用了nginx去作为反向代理或者负载均衡&#xff0c;从客户端过来的长连接请求就会被…

【Spring AOP 原理】

首先AOP跟OOP(面向对象编程)、IOC(控制反转)一样都是一种编程思想 跟OOP不同, AOP是面向切面编程, 面对多个不具备继承关系的对象同时需要引入一段公共逻辑的时候, OOP就显得有点笨重了, 而AOP就游刃有余, 一个切面可以横跨多个类或者对象去执行公共逻辑, 极大的提升了开发效率…

Vue3集成搜索引擎智能提示API

需求&#xff1a; 如何在项目中实现像百度搜索框一样的智能提示效果&#xff0c;如下图所示&#xff1a; 相关知识&#xff1a; 下面是各厂商提供的免费API 厂商请求百度http://suggestion.baidu.com/su?wd中国&cbwindow.baidu.sug必应http://api.bing.com/qsonhs.as…