【JavaSE】Java(五十一):核心要点总结

news2024/12/24 22:07:14

文章目录

  • 1. String str = "love"; 和 String str = new String("love);一样吗?
  • 2. 如何将字符串反转
  • 3. String类的常用方法有哪些?
  • 4. new String("sn") + new String("ow")会创建几个对象?


在这里插入图片描述

1. String str = “love”; 和 String str = new String("love);一样吗?


这两种方式都可以用来创建一个 String 类型的对象,但是有所不同

  • 第一种方式:String str = “love”; 是直接赋值的方式来创建 String 对象。在编译代码时,Java 编译器会为你自动创建一个 String 对象,并将 “love” 这个字符串赋值给它,这种方式也称为字符串字面量(String Literal)。此外,Java 在编译过程中还对相同的字符串进行了常量池优化,使得字符串字面量的复用更加高效。

  • 第二种方式:String str = new String(“love”);则是通过调用 String 类的构造函数来创建一个新的 String 对象,使用这种方式创建的字符串对象总是是一个新的对象,即使其内容与已有的字符串对象相同。

需要注意的是,虽然这两种方式最终都可以创建一个 String 对象,但是它们之间的差异和影响是非常大的。通常情况下,在实际开发中,我们建议尽可能地使用第一种方式,因为它更简单、更有效率、更可读性强,并且字符串字面量被广泛使用,因此将能提高代码的可维护性,并降低出错概率。

这两种方式都可以用来创建字符串对象,但是它们之间存在差异和影响,在实际使用时需要根据具体情况选择最适合的方法。


2. 如何将字符串反转


可以通过 Java 中的字符串转换类 StringBuilder 或 StringBuffer 来将字符串反转。

以下是示例代码:

String str = "Hello World!";
StringBuilder sb = new StringBuilder(str);
StringBuilder reversedStr = sb.reverse();
System.out.println(reversedStr.toString());

或者使用 char 数组来反转字符串,示例代码如下:

String str = "Hello World!";
char[] c = str.toCharArray();
int left = 0;
int right = c.length - 1;
while (left < right) {
    char temp = c[left];
    c[left] = c[right];
    c[right] = temp;
    left++;
    right--;
}
String reversedStr = new String(c);
System.out.println(reversedStr);

3. String类的常用方法有哪些?


Java中String类 是一个常用的类,它提供了一系列字符串相关的函数和方法。以下是String类的一些常用方法列表:

char charAt(int index):返回指定索引处的字符。
int length():返回此字符串的长度。
String concat(String str):将指定字符串连接到该字符串的末尾。
boolean equals(Object anObject):将此字符串与指定对象进行比较。
boolean isEmpty():当且仅当 length() 为 0 时返回 true。
String substring(int beginIndex, int endIndex) :返回一个新字符串,它是此字符串的一个子字符串。
String replace(char oldChar, char newChar) : 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
String[] split(String regex) : 根据给定正则表达式的匹配拆分此字符串。
boolean startsWith(String prefix) : 测试此字符串是否以指定的前缀开头。
boolean endsWith(String suffix) : 测试此字符串是否以指定的后缀结尾。
int compareTo(String anotherString) : 按字典顺序比较两个字符串。
boolean contains(CharSequence s) : 如果此字符串包含指定的 char 值序列,则返回 true。
String toUpperCase() : 将此字符串转换为大写。
String toLowerCase() : 将此字符串转换为小写。
String trim() : 返回字符串的副本,忽略前导空白和尾部空白。

这些方法并不是全部,但它们是在开发中最常用和最基本的String类方法。熟练掌握这些方法将会极大地提高Java编程效率。


4. new String(“sn”) + new String(“ow”)会创建几个对象?


在这个表达式中,将会创建3个对象

首先,new String(“sn”)将会创建一个新的String对象"sn"。

然后,new String(“ow”)同样会创建一个新的String对象"ow"。

最后,对这两个String对象使用"+“连接符号,得到一个新的字符串"snow”,也就是第三个String对象。

需要注意的是,当使用字符串连接操作符 “+” 连接字符串字面值或字符串对象时,Java编译器会在编译时将其优化为使用StringBuilder 或 StringBuffer 类来实现,以提高效率和避免频繁创建临时的字符串对象。

但是,这种优化只适用于字面值和字符串对象之间的连接,对于其他类型的数据则不起作用。

因此,在上述代码中,仍会创建3个对象。



在这里插入图片描述

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

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

相关文章

「C/C++」C/C++ Lamada表达式

✨博客主页&#xff1a;何曾参静谧的博客 &#x1f4cc;文章专栏&#xff1a;「C/C」C/C程序设计 相关术语 Lambda表达式&#xff1a;是C11引入的一种函数对象&#xff0c;可以方便地创建匿名函数。与传统的函数不同&#xff0c;Lambda表达式可以在定义时直接嵌入代码&#xff…

JSON与storage

JSON JSON由来 ◼ 在目前的开发中&#xff0c;JSON是一种非常重要的数据格式&#xff0c;它并不是编程语言&#xff0c;而是一种可以在服务器和客户端之间传输的数据格式。 ◼ JSON的全称是JavaScript Object Notation&#xff08;JavaScript对象符号&#xff09;&#xff1a…

苹果震撼发布首款头显,搭配强悍Mac和iOS 17等全新产品,价值25000元!

&#x1f337; 博主 libin9iOak带您 Go to New World.✨ &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &#x1f30a; 《IDEA开发…

随机过程与排队论(一页纸总结)

参数为 λ 的泊松过程的点间间距是相互独立的随机变量&#xff0c;且服从均值为 1/λ 的 指数 分布。 病人以每小时3人的泊松流到达医院&#xff0c;设该医院只有一个医生服务且容量为无穷&#xff0c;医生服务的时间服从指数分布&#xff0c;并且平均服务一个病人为30分钟&am…

内联函数 C/C++

代码&#xff1a; file1.c #include<stdio.h>void spam(double v); void masp(double w);inline static double square(double); double square(double x) { printf("%s %s %d\n", __FILE__, __func__, __LINE__);return x * x; } int main() {double q …

chatgpt赋能python:Python如何将图片Resize

Python如何将图片Resize 在网页设计和开发过程中&#xff0c;图片大小和质量对于网站性能和用户体验至关重要。网站图片过大会影响页面加载时间&#xff0c;降低用户体验&#xff1b;同时&#xff0c;过小的图片也会影响网站排名&#xff0c;因为搜索引擎的排名算法很重视网站…

chatgpt赋能python:Python如何循环运行程序

Python如何循环运行程序 Python是一种强大的动态语言&#xff0c;具备灵活性和易用性。在编写Python程序时&#xff0c;一个常见的需求是循环运行程序&#xff0c;特别是需要定期执行一些任务的情况下。 本文将介绍如何在Python中实现循环运行程序&#xff0c;并提供一些例子…

chatgpt赋能python:Python如何循环执行

Python如何循环执行 循环是编程中最基本和常用的结构之一。Python作为一门高级编程语言&#xff0c;提供了多种循环执行的方式。在本文中&#xff0c;我们将介绍Python中的循环语句和循环控制语句以及其运行原理。 Python循环语句 for循环 for循环是Python中最常用的循环语…

chatgpt赋能python:Python列表:如何使用Python将数据存入列表中

Python列表&#xff1a;如何使用Python将数据存入列表中 Python是一种广泛使用的编程语言&#xff0c;由于其易于学习和可读性&#xff0c;在数据科学和分析领域中使用广泛。在本文中&#xff0c;我们将讨论如何使用Python将数据存储在列表中。 什么是Python列表&#xff1f;…

语言是世上最奇妙的事物,没有之一

语言是世上最奇妙的事物&#xff0c;没有之一 品牌是靠语言传播的 语言是咋产生的&#xff1f;太玄了 趣讲大白话&#xff1a;猪如果会说话&#xff0c;谁吃谁还不一定呢 【趣讲信息科技187期】 **************************** 《未来简史》的作者说 人有了语言&#xff0c;就有…

Object类和Java中内置的一些接口

文章目录 一、Object类1.1Object类中的方法1.1.1toString()方法1.1.2equals()方法1.1.3hashCode()方法 二、Java中内置的一些接口2.1Comparable<T>接口2.2Cloneable接口 一、Object类 Object类是所有类的父类 1.1Object类中的方法 1.1.1toString()方法 Object类中的t…

Optimize Game Objects骨骼节点优化后SkinMesh以及动态骨骼

为了降低模型动画的性能开销&#xff0c;可以进行骨骼节点优化。 一、接口 unity官方提供了有两种方式可以进行节点优化&#xff1a; 注意当骨骼节点被优化后&#xff0c; Transform节点被剔除&#xff0c;因此需要将挂点等需要用到的节点暴露出来&#xff0c;即下面两个接口…

【高级篇】微服务保护

文章目录 微服务保护1.初识Sentinel1.1.雪崩问题及解决方案1.1.1.雪崩问题1.1.2.超时处理1.1.3.仓壁模式1.1.4.断路器1.1.5.限流1.1.6.总结 1.2.服务保护技术对比1.3.Sentinel介绍和安装1.3.1.初识Sentinel1.3.2.安装Sentinel 1.4.微服务整合Sentinel 2.流量控制2.1.簇点链路2.…

<DB2>《DB2内存详细介绍》

《DB2内存详细介绍》 1 架构图2 主要概念2.1 内存集&#xff08;Memory Set&#xff09;2.2 内存池&#xff08;Memory Pool&#xff09;2.3 内存块&#xff08;Memory Block&#xff09; 3 内存方案3.1 第一级服务器内存3.2 第二级操作系统内存和实例共享内存3.3 第三级数据库…

K8S | 核心原理分析

整体上理解流程和原理&#xff1b; 一、背景 基于分布式的架构中&#xff0c;需要管理的服务是非常多的&#xff0c;无论是服务的数量还是体系划分&#xff1b; 从服务的能力上看&#xff0c;可以进行分层管控&#xff0c;只是其中有相当一部分服务层&#xff0c;改动更新的频…

【Python黑科技】自动答题项目代码分析(保姆级图文+实现代码)

目录 实现效果图片素材和源码 实现思路1. 打开对应网页&#xff0c;做好准备工作2. 获取正确答案3. 答题4. 提交试卷实现代码总结 欢迎关注 『Python黑科技』 系列&#xff0c;持续更新中 欢迎关注 『Python黑科技』 系列&#xff0c;持续更新中 实现效果 图片素材和源码 已经…

chatgpt赋能python:Python如何在图像上标注

Python如何在图像上标注 对于图像标注&#xff0c;Python提供了许多工具和库&#xff0c;其中最常用的是OpenCV和Pillow。这篇文章将介绍如何使用Pillow在图像上进行标注。 安装Pillow库 在使用Pillow库之前&#xff0c;需要先安装它。在命令行中输入以下命令&#xff1a; …

2023-06-02 stonedb-修改包含内连接的嵌套外连接-问题反思

摘要: 最近在搞一个列存储引擎的包含内连接的嵌套外连接过慢的问题, 连接执行过慢的原因分析见此前的博客分析, 虽然逻辑很绕, 但是也不是无法分析. 更麻烦的问题在于修改查询计划, 让其能按照代价更小的方式正确的执行. 遇到的问题比我在修改查询计划前设想的更为棘手, 本文…

chatgpt赋能python:Python循环次数:实现高效编程的关键

Python循环次数&#xff1a;实现高效编程的关键 在编写Python程序时&#xff0c;循环次数是一个经常需要关注的问题。循环次数过多会导致程序执行效率低下&#xff0c;甚至可能引起性能问题。因此&#xff0c;如何控制循环次数成为实现高效编程的关键。本文将介绍Python中循环…

chatgpt赋能python:Python如何实现将数据结果导出

Python如何实现将数据结果导出 在Python编程中&#xff0c;我们经常需要将代码运行的结果导出保存在文件中&#xff0c;或在其他程序中使用。下面我们将介绍Python中几种将数据结果导出的方法。 方法一&#xff1a;使用文件输出 使用Python内置的open方法来打印输出的结果到…