Java入门之String 学习随记(一)

news2024/10/6 20:56:59

一. 前置知识

API-Application Programming Interface-应用程序编程接口,接口可以简单理解为别人写好的东西,我们拿过来直接使用即可.顾名思义,JavaAPI指的就是JDK提供的各种功能的Java类,它们将底层的实现封装了起来.

二. java.lang.String

该类为字符串,在Java中所有字符串文字都为此类的对象(该包为常用包,无需导包)

注:字符串的内容是不能被修改的,它的对象创建后就不能被修改了.

推:所以字符串的拼接也就是生成一个新的字符串,并非在原来的空间进行修改.

衍:字符串的拼接-"abc" + true = "abctrue"

                           "123" + "西门"="123西门"

                           "一匹黑马" + 666="一匹黑马666"

三. 创建字符串

1.直接赋值

String a = "hellothere";

2.new方法-空参构造-获取空白字符串

String b = "";

3. 有参构造,字符数组入参创建String对象

char[] chs = {'a', 'b', 'c'};

String s = new String(chs);

4. 有参构造,字节数组入参创建String对象

byte[] bytes = {97,98,99,100};

String b = new String(bytes);

四. String的底层原理

String池,在JDK1.7之后是一个独立存在的空间(不在堆内存中),当我们创建一个String对象的时候,会在该空间中划出一部分给该对象,并将地址给与对应的标识符.如果再创建相同对象的时候,可以使用池中已有的.

注意,与之相对应的就是new方法创建的字符串,通过这种方式创建出来的字符串,会在堆内存中单独创建出来一块空间,即便是重复的对象也会重复划分出空间使用,所以衍生出两个问题:1.浪费空间.2.字符串值相同但地址不同(比较的时候?)

五.字符串的比较

提问: == 该符号比较的是什么?

回答: 数值.

评论:错误.

解释:分情况而言,引用数据类型和基本数据类型有不同,基本数据类型比较的就是数值,因为他们都在栈内存中,直接比较值即可;引用数据类型在堆内存中,标识符存储的都是地址值,那么使用==进行比较,就是在比较地址值.

衍生: 字符串的创建方式不同,比较情形则不同-如果是"直接赋值"的方式,字符串都在"池"中,同值比较的时候,地址值也相同,自然相等,反之亦然;而用new方法创建的字符串,因为是在堆内存中不断划分的空间,同值比较的时候,地址值依然不同,结果和实际情况不符合.

方法: boolean equals

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

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

相关文章

chatgpt赋能python:如何正确删掉Python代码

如何正确删掉Python代码 介绍 在编写Python代码时,难免会出现一些多余或者错误的代码。为了保持代码的整洁和高效,我们需要学会如何正确地删掉Python代码。本文将介绍一些实用的方法和技巧,帮助您轻松删除不必要的代码。 方法 1. 手动删除…

前端基于radio增强单选框组件

前端基于radio增强单选框组件, 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id12977 效果图如下: # #### 使用方法 使用方法 <!-- radioData:单选数据 curIndex&#xff1a;当前选择序列 change&#xff1a;单选事件 --> <ccRadio…

软考A计划-系统架构师-学习笔记-第一弹

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff…

QNX交叉编译及运行摆脱IDE

工具链及Demo工程介绍 把交叉编译工具链qnx_cross_compile_toolchain.zip拷贝到交叉编译主机目录下&#xff0c;用unzip命令解压&#xff08;不会unzip可以自行百度linux 下unzip命令&#xff09;&#xff0c;如Ubuntu22.04等。 解压后可以用vscode打开交叉编译工具链的目录。…

JavaScript 流程控制-分支 流程控制-循环

3.1分支结构 由上到下执行代码的过程中&#xff0c;根据不同的条件&#xff0c;执行不同的路径代码(执行代码多选一的过程&#xff09;&#xff0c;从而得到不同的结果。 JS语言提供了两种分支语句 if语句switch 语句 3.2 if 语句 1.语句结构 //条件成立执行代码&#xff…

Java入门之String学习随记(二)

一. 字符串的常用方法 public char charAt(int index) 根据索引返回字符 public int length() 返回字符串的长度 注意:获得字符串的长度和获得数组的长度不同,数组的长度是数组的属性 数组名.length() 属性 字符串.length() …

通知神器——java调用钉钉群自定义机器人----Jay

其中webhook非常重要&#xff0c;下文详述。点击设置说明可以看相关使用文档&#xff0c;文档链接见本文末尾 创建群自定义机器人 其中webhook非常重要&#xff0c;下文详述。点击设置说明可以看相关使用文档&#xff0c;文档链接见本文末尾 使用HTTP POST请求发送消息…

如何从linux社区下载和合入内核patch?

参考 git - How do I get a linux kernel patch set from the mailing list? - Unix & Linux Stack Exchangehttps://unix.stackexchange.com/questions/80519/how-do-i-get-a-linux-kernel-patch-set-from-the-mailing-list 方法 发现使用b4这个工具非常合适。 下面是…

【MySQL】数据库的查询语言DQL

目录 前言&#xff1a; 一.基本查询 1.1查询多个字段 1.2设置别名 1.3去除字段中重复的值 二.条件查询 2.1条件的种类 2.1.1比较运算符 2.1.2逻辑运算符 三.结尾 前言&#xff1a; 在前面讲完了如何增删改数据表中的记录后&#xff0c;那么如何使用这些数据就成了另一…

chatgpt赋能python:Python如何加断点

Python如何加断点 什么是断点 在程序执行时&#xff0c;开发人员可以设置断点&#xff0c;使得程序在断点处暂停执行&#xff0c;从而方便调试程序。当程序停在断点处时&#xff0c;可以查看变量的值、执行语句等&#xff0c;以找出程序中的错误。 Python加断点的方法 在Py…

chatgpt赋能python:Python中的元组及其自身的特性说明

Python 中的元组及其自身的特性说明 在 Python 中&#xff0c;元组是一组有序的值&#xff0c;可以存储各种不同类型的数据。与列表不同的是&#xff0c;元组是不可变的&#xff0c;一旦创建就不能修改。由于元组不可更改&#xff0c;因此它们的值在创建后是固定的。 由于元组…

C语言之预处理那点事

文章目录 一、程序的翻译和执行环境二、预定义符号的介绍1.预定义符号2.#define3.宏和函数的比较4.条件编译 总结 在C语言中&#xff0c;曾出现各种各样新的标准&#xff0c;有的昙花一现&#xff0c;有的则源远流传。我们这篇来看流传下来的&#xff0c;简化开发者编程和提升性…

FFmpeg音视频处理工具介绍及应用

1 FFmpeg介绍 FFmpeg项目由 Fabrice Bellard在2000年创立。到目前为止&#xff0c;FFmpeg项目的开发者仍然与VLC、MPV、dav1d、x264等多媒体开源项目有着广泛的重叠。Ffmpeg&#xff08;FastForward Mpeg&#xff09;是一款遵循GPL的开源软件&#xff0c;在音视频处理方面表现…

算法刷题-数组-移除元素

27. 移除元素 力扣题目链接 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并原地修改输入数组。 元素的顺序可以改变。你不需…

chatgpt赋能python:Python如何编写优化SEO的软件

Python如何编写优化SEO的软件 作为一种功能强大且易于学习的编程语言&#xff0c;Python已经成为广泛使用的开发工具之一&#xff0c;其用户群体涵盖从初学者到专业开发人员。然而&#xff0c;在Python编写SEO相关软件时&#xff0c;开发人员需要遵循一些最佳实践&#xff0c;…

chatgpt赋能python:Python中如何加空格

Python中如何加空格 Python是一门广泛应用于科学计算、数据分析、人工智能、Web开发等领域的高级编程语言。在Python编程过程中&#xff0c;经常需要使用到空格&#xff0c;以实现程序的格式化和美观&#xff0c;同时也有助于提高代码的可读性和可维护性。本文主要介绍Python中…

人工蜂群算法(Artificial Bee Colony (ABC) Algorithm,附简单案例及详细matlab源码)

作者&#xff1a;非妃是公主 专栏&#xff1a;《智能优化算法》 博客地址&#xff1a;https://blog.csdn.net/myf_666 个性签&#xff1a;顺境不惰&#xff0c;逆境不馁&#xff0c;以心制境&#xff0c;万事可成。——曾国藩 文章目录 专栏推荐一、人工蜂群算法二、伪代码三…

前端vue地图定位并测算当前定位离目标位置距离

前端vue地图定位并测算当前定位离目标位置距离, 下载完整代码请访问uni-app插件市场地址: https://ext.dcloud.net.cn/plugin?id12974 效果图如下: # #### 使用方法 使用方法 <!-- // 腾讯地图key注册地址&#xff08;针对H5端&#xff0c;manifest.json中web配置&…

【力扣刷题 | 第六天】

目录 前言&#xff1a; 344. 反转字符串 - 力扣&#xff08;LeetCode&#xff09; 541. 反转字符串 II - 力扣&#xff08;LeetCode&#xff09; 今天我们进入字符串章节的刷题旅程&#xff0c;希望各位小伙伴可以和我一起坚持下去&#xff0c;一起征服力扣&#xff01; 前言…

chatgpt赋能python:Python如何删除列表中的重复数据

Python如何删除列表中的重复数据 介绍 Python是一种高级编程语言&#xff0c;可用于开发各种类型的应用程序&#xff0c;包括网站&#xff0c;桌面应用程序&#xff0c;数据分析和机器学习。在Python编程中&#xff0c;经常需要对列表中的数据进行操作。有时候&#xff0c;我…