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

news/2024/7/2 23:36:08

一. 前置知识

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://lihuaxi.xjx100.cn/news/1231667.html

相关文章

JUC并发编程工具

java的并发编程工具,全称java.util.concurrent 什么是分布式事务? 分布式事务是指事务的参与者、支持事务的服务器、资源协调者和事务的管理者 分布在不同的分布式系统的不同节点上。 在分布式系统中一个大的操作可能涉及很多小的操作,这些…

chatgpt赋能python:Python中如何取出字符串中的字符

Python中如何取出字符串中的字符 在Python编程中,经常会涉及到需要对字符串中的字符进行操作,比如提取某些特定的字符等。那么,Python中如何取出字符串中的字符呢?本文将为您进行详细介绍。 1. 使用索引 在Python中&#xff0c…

尚硅谷甄选--更新中

文章目录 搭建后台管理系统模板项目初始化2.1.1环境准备2.1.2初始化项目2.2项目配置一、eslint配置1.1vue3环境代码校验插件1.2修改.eslintrc.cjs配置文件1.3.eslintignore忽略文件1.4运行脚本 二、配置**prettier**2.1安装依赖包2.2.prettierrc.json添加规则2.3.prettierignor…

chatgpt赋能python:Python字符类型判断:如何判断字符是字母或数字

Python字符类型判断:如何判断字符是字母或数字 在Python编程中,经常需要判断一个字符是字母还是数字。本文将介绍如何在Python中判断字符类型,并给出几个示例。 判断字符类型的方法 在Python中,可以使用以下方法来判断字符类型…

C语言之函数栈帧的创建与销毁(2)

上一篇博客我们讲到了函数栈帧的创建与销毁(1)今天我们来讲解Add函数的函数栈帧相关知识 在开始本章博客之前,大家可以把上一篇博客的主要内容仔细复习一下 看图 第一个mov:把b的值放到eax里面去 第二个mov:把a的…

【华为OD统一考试B卷 | 100分】数据分类(C++ Java JavaScript Python)

题目描述 对一个数据a进行分类,分类方法为: 此数据a(四个字节大小)的四个字节相加对一个给定的值b[取模]如果得到的结果小于一个给定的值c,则数据a为有效类型,其类型为取模的值;如果得到的结果大于或者等于c,则数据a为无效类型。 比如一个数据a=0x01010101,b=3,按…

HTML 如何将一段文字放在另一段文字之后?要紧随不换行,并且两段文字样式是不一样的。

要在一段文字之后紧随而不换行地添加另一段文字&#xff0c;并且两段文字具有不同的样式&#xff0c;可以使用 <span> 元素和 CSS 来实现。以下是一种常见的方法&#xff1a; <style>.no-line-break {white-space: nowrap; /* 防止换行 */}.text-style1 {/* 样式1…

chatgpt赋能python:如何取出带有4的整数

如何取出带有4的整数 Python是一门功能强大的编程语言&#xff0c;可以轻松解决复杂的编程问题。在本文中&#xff0c;我们将介绍如何使用Python编程语言从一个整数列表中取出所有带有4的整数。我们将从介绍如何创建一个整数列表开始&#xff0c;然后编写Python代码以实现我们…