课时43:字符串常量

简介: 本次课程的主要讨论了String类的基本操作形式,包括基本数据类型、字符串常量、对象直接赋值等概念。1.String类的定义2.对象判断的小技巧

课时43:字符串常量

摘要:本次课程的主要讨论了String类的基本操作形式,包括基本数据类型、字符串常量、对象直接赋值等概念。

1. String类的定义

2. 对象判断的小技巧

 

现在我们已经清楚String类的基本操作形式。

 

01. String类的定义

 

我们需要做出一个明确的定义。在程序的开发之中,任何的一个整数都是int类型,任意的小数默认都是double类型,但是对于字符串而言程序之中不会提供字符串的基本数据类型可以提供的只是String类。因此,任何使用“‘’”定义的字符串常量,实际上描述的都是String类的匿名对象。以之前的代码为例:

String StrA=“mldn”;


如果现在要把上述代码画成内存关系图的,该如何画?我们首先需要考虑的是存在堆栈引用关系,“str”应该放置在栈内,“mldn”应该放置在堆内。我们以这个程序为例。“mldn”这个字符串存在堆,如果没有指向它,那么这就一个匿名对象所以按照这样的理解,所谓String类对象的直接赋值直接描述的是,将一个对象匿名对象设置一个具体的引用名字

image.png

那为什么说字符串就是匿名对象呢?我们举个范例,我们观察匿名对象的存在,需要观察一下匿名对象到底是不是真的存在。将代码修改如下:

image.png

“mldn”是个对象,如果真是匿名对象,一定可以调用 equals 方法。于是我们现在来看一下程序执行结果。

image.png

此时可以发现,字符串常量已经可以明确的调用equals 方法实现对象相等的判断,所以我们得出结果:程序中没有字符串常量这种基本类型,有的只是String类的匿名对象,而整个对象它在处理的时候完全是由系统自动识别的。

 

02. 对象判断的小技巧

 

下面介绍关于对象相等判断的小技巧。大家在以后进行项目开发的时候,如果现在某些数据是由我们用户输入,并且要求这些数据为一个指定内容的情况下。建议将字符串常量写在前面。

现在写个代码是用户输入的数据。然后执行代码,编译执行没有任何问题。

image.png

image.png

但是,如果现在假设用户输入数据没有输入,字符串接收用户输入数据的字符串调用方法:如果现在假设没有输入数据,此时为null,此时代码运行结果如图,此时代码产生错误

image.png

但是如果换个方式,将字符串的常量写在前面。那么这种情况下,我们再来看一下结果。

image.png

image.png

equals 方法可以帮我们自动回避空的功能,所以果将字符串的常量写在前面,那么我们调用equals 方法的时候,永远都不可能出现谁Null pointer exception字符串是一个匿名对象,匿名对象一定是开辟堆内存空间的对象所以按照这样的一个整体解释而言,以后我们再进行字符串等于某个字符串比较的时候,要把字符串的一个常量写在谁前面,因为匿名对象不会为空,如果写在后面,可能造成空值指向异常。

相关文章
在钉钉开放平台中,事件订阅功能允许你的应用订阅钉钉的各种事件
在钉钉开放平台中,事件订阅功能允许你的应用订阅钉钉的各种事件【1月更文挑战第9天】【1月更文挑战第44篇】
526 2
|
3月前
|
关系型数据库 Apache 微服务
《聊聊分布式》分布式系统基石:深入理解CAP理论及其工程实践
CAP理论指出分布式系统中一致性、可用性、分区容错性三者不可兼得,必须根据业务需求进行权衡。实际应用中,不同场景选择不同策略:金融系统重一致(CP),社交应用重可用(AP),内网系统可选CA。现代架构更趋向动态调整与混合策略,灵活应对复杂需求。
|
关系型数据库 MySQL Docker
阿里云容器镜像加速器
使用容器时一般需要首先下载一个容器镜像,例如Docker Hub官方提供的MySQL、WordPress等容器镜像。然而由于网络原因,下载一个Docker官方镜像可能会需要很长的时间,甚至下载失败。为此,阿里云容器镜像服务ACR提供了官方的镜像站点,从而加速官方镜像的下载。 ## 获取镜像加速器地址 ACR会为每一个账号(阿里云账号或RAM用户)生成一个镜像加速器地址,配置镜像加速器前,您需要获取镜像加速器地址。
3577 0
|
4月前
|
缓存 安全 C++
C盘爆满电脑卡?3个简单技巧+1个便捷工具,小白也能轻松清理
电脑使用久了,C盘常因系统文件、软件安装和临时缓存堆积而空间不足,导致运行卡顿甚至蓝屏。本文教你识别C盘“隐形垃圾”,并提供3个手动清理技巧和1个实用工具(CCleaner),轻松释放空间,提升电脑速度,延长使用寿命。定期清理C盘,让电脑始终保持流畅运行。
773 0
|
Linux 网络安全 Python
dash-plotly项目
dash-plotly项目
|
网络协议 网络架构 Windows
NDP 常用报文格式
【2月更文挑战第27天】
|
机器学习/深度学习 人工智能 自然语言处理
AI虚拟助手与智能推荐系统
AI虚拟助手与智能推荐系统
509 3
|
机器学习/深度学习 算法 编译器
神经网络推理加速入门——超简单的卷积和加法融合
卷积和加法的算法融合,会在神经网络推理的性能加速上,展现出不一样的效果。
神经网络推理加速入门——超简单的卷积和加法融合
|
程序员 API 开发者
自动化脚本如何编写?打算写个自动发布文章的脚本教程
作为一名程序员/开发者,我们经常需要处理重复性的任务,比如发布文章到多个媒体平台。为了提高效率,我们可以编写自动化脚本来完成这些任务。本文将介绍如何使用万媒易发多平台内容同步助手来自动发布文章。

热门文章

最新文章