String类中常见面试题

1.string类属于基本类型吗?

string类不是基本类型;它属于引用数据类型

2.操作字符串的类有哪些?有什么区别?

 有三种:string,stringBuilder,stringBuffer

区别:

String:不可变类,字符串一旦被创建就不能被修改,只能被覆盖

stringBuiler:可变类;非线程安全

stringBuffer:可变类;线程安全

3.string中常用的api有哪些?

1. **length():** 返回字符串的长度。
   String str = "Hello, World!";
   int length = str.length(); // length = 13

2. **charAt(int index):** 返回指定索引处的字符。
   String str = "Hello";
   char ch = str.charAt(0); // ch = 'H'

3. **substring(int beginIndex) 和 substring(int beginIndex, int endIndex):** 返回从指定索引开始到结束的子字符串。
   String str = "Hello, World!";
   String substr1 = str.substring(7); // substr1 = "World!"
   String substr2 = str.substring(0, 5); // substr2 = "Hello"

4. **indexOf(String str) 和 lastIndexOf(String str):** 返回指定子字符串第一次出现的索引或最后一次出现的索引。
   String str = "Hello, World!";
   int index1 = str.indexOf("o"); // index1 = 4
   int index2 = str.lastIndexOf("o"); // index2 = 8

5. **toUpperCase() 和 toLowerCase():** 将字符串转换为大写或小写。
   String str = "Hello, World!";
   String upperCase = str.toUpperCase(); // upperCase = "HELLO, WORLD!"
   String lowerCase = str.toLowerCase(); // lowerCase = "hello, world!"

6. **replace(char oldChar, char newChar) 和 replace(CharSequence target, CharSequence replacement):** 替换字符或字符串。
   String str = "Hello, World!";
   String replaced1 = str.replace('o', 'x'); // replaced1 = "Hellx, Wxrld!"
   String replaced2 = str.replace("World", "Java"); // replaced2 = "Hello, Java!"

7. **startsWith(String prefix) 和 endsWith(String suffix):** 检查字符串是否以指定的前缀或后缀开始或结束。
   String str = "Hello, World!";
   boolean startsWith = str.startsWith("Hello"); // startsWith = true
   boolean endsWith = str.endsWith("World!"); // endsWith = true

8. **split(String regex):** 根据给定的正则表达式拆分字符串。
   String str = "apple,banana,orange";   String[] fruits = str.split(","); // fruits = ["apple", "banana", "orange"

9.trim()方法:用于去除字符串的空格

10.比如说 valueOf() 用于将其他类型的数据转换为字符串。

String s = String.valueOf(133);

11.toCharArray():将字符串转换为对应的字符数组;

4.string对象是不可变的吗?为什么?有什么优点?

结合源码分析:

String类被final修饰:该类不能被继承,就是不能自定义String的子类;

成员变量value被final修饰:字符串就是以字符的形式存储在这个数组中该变量一旦被赋值后就不能指向其他的对象;但是对象的内容可变;

还有就是:String这个类没有对外提供对应的修改其属性value的方法;

优点:

-----安全可靠:字符串使用的还是相当频繁的;特别是存储一些用户的密码等敏感信息;不可变保证其校验通过后就不能在程序中修改后;

-----线程安全:不存在并发修改同一个对象的问题;

2.提高性能:

-----因为字符串的不可变性,计算出字符串的哈希值后,就可以把它缓存起来后续继续使用

-----字符串常量池的应用:定义一个字符串后就会被放在常量池中,可以方便复用;

5.string怎么转list?list怎么转string?

将String转为list;

public class Main {
        public static void main(String[] args) {
            String str = "Hello World";
            // 创建一个空列表
            List<Character> charList = new ArrayList<>();
            // 将字符串转换为列表
            for (char c : str.toCharArray()) {
                charList.add(c);
            }
            System.out.println("List from String: " + charList);
    }
    }

将list转为String:

public class Main {
        public static void main(String[] args) {

                List<Character> charList = List.of('H', 'e', 'l', 'l', 'o');
                // 使用StringBuilder将字符列表转换为字符串
                StringBuilder sb = new StringBuilder();
                for (char c : charList) {
                    sb.append(c);
                }
                String str = sb.toString();

                System.out.println("String from List: " + str);
            }
    }

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV轻松入门(六)——简单图片处理【马赛克、毛玻璃、浮雕效果】

马赛克效果 马赛克指现行广为使用的一种图像&#xff08;视频&#xff09;处理手段&#xff0c;此手段将影像特定区域的色阶细节劣化并造成色块打乱的效果&#xff0c;因为这种模糊看上去有一个个的小格子组成&#xff0c;便形象的称这种画面为马赛克。其目的通常是使之无法辨…

linux 部署安装mongodb教程

现在去官网下载mongodb的tar包,在本地创建文件夹 cd /home wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.17.tgz tar -zxvf mongodb-linux-x86_64-rhel70-4.2.17.tgz mv mongodb-linux-x86_64-rhel70-4.2.17 mongodb cd /home/mongodb mkdir log t…

window10轻松使用k8s

Docker Desktop安装篇 1、win10安装 1、下载安装包 https://www.docker.com/products/docker-desktop/ 官网下载安装包 2、配置win10支持虚拟化 不勾选Hyper-V&#xff0c;容易出错 3、安装WSL配置window支持linux Windows Subsystem for Linux (WSL) 安装 Linux 子系统&am…

腐蚀Rust 服务端搭建架设个人社区服务器Windows教程

腐蚀Rust 服务端搭建架设个人社区服务器Windows教程 大家好我是艾西&#xff0c;一个做服务器租用的网络架构师也是游戏热爱者。最近在steam发现rust腐蚀自建的服务器以及玩家还是非常多的&#xff0c;那么作为服务器供应商对这商机肯定是不会放过的哈哈哈&#xff01; 艾西这…

嵌入式实时操作系统的调度机制与优化

大家好&#xff0c;今天给大家介绍嵌入式实时操作系统的调度机制与优化&#xff0c;文章末尾附有分享大家一个资料包&#xff0c;差不多150多G。里面学习内容、面经、项目都比较新也比较全&#xff01;可进群免费领取。 嵌入式实时操作系统的调度机制与优化 一、引言 嵌入式实…

DonkeyDocker-v1-0渗透思路

MY_BLOG https://xyaxxya.github.io/2024/04/13/DonkeyDocker-v1-0%E6%B8%97%E9%80%8F%E6%80%9D%E8%B7%AF/ date: 2024-04-13 19:15:10 tags: 内网渗透Dockerfile categories: 内网渗透vulnhub 靶机下载地址 https://www.vulnhub.com/entry/donkeydocker-1,189/ 靶机IP&a…

[Java、Android面试]_18_详解Handler机制 常见handler面试题(非常重要,非常高频!!)

本人今年参加了很多面试&#xff0c;也有幸拿到了一些大厂的offer&#xff0c;整理了众多面试资料&#xff0c;后续还会分享众多面试资料。 整理成了面试系列&#xff0c;由于时间有限&#xff0c;每天整理一点&#xff0c;后续会陆续分享出来&#xff0c;感兴趣的朋友可关注收…

Java基础-知识点04(面试|学习)

Java基础-知识点04 Object类wait和notify需要在什么地方使用&#xff1f;说明 toString() 方法的作用和重写时的注意事项。toString() 方法在实际开发中的应用场景和作用。 continue、break 和 return 的区别1、continue&#xff1a;2、break&#xff1a;3、return&#xff1a;…

plsql developer 一键格式化sql/美化sql

PL/SQL 格式化工具 以 Oracle SQL Developer 为例&#xff0c;使用一键格式化的步骤如下&#xff1a; 打开 Oracle SQL Developer。在“文件”菜单中&#xff0c;选择“打开文件”&#xff0c;然后选择你的 PL/SQL 文件。打开文件后&#xff0c;你可以通过右键菜单选择“格式…

常用接口测试工具/免费api

一 接口编辑文档 常用的接口文档编写apipost 二 免费接口测试 api 1. thecat 含有&#xff1a; The Cat API - Cat as a Service The Cat API 2. public-apis 进入页面往下拉 三 常用接口测试工具 postman 四 常用接口性能测试工具 Jmeter&#xff0c;loadrunner

STK与matlab交互 Astrogator模块 (11)

一、背景知识 前面由于定轨的大作业&#xff0c;关于Astrogator模块的学习有所滞后&#xff0c;在本节将重新聚焦Astrogator模块&#xff0c;在本节中&#xff0c;首先解决的问题是已知两个卫星的轨道六根数&#xff0c;求解其中某一颗卫星LVLH坐标下另一颗卫星的位置速度。这…

C语言中的编译和链接

系列文章目录 文章目录 ​编辑 系列文章目录 文章目录 前言 一、 翻译环境和运行环境 二、 翻译环境 2.1 编译 2.1.1 预处理 2.1.2 编译 2.1.2.1 词法分析 : 2.1.2.2 语法分析 2.1.2.3 语义分析 2.1.3 汇编 2.2 链接 三、运行环境 前言 在我们平常的写代码时&#xff0c;我们很…

ARM内核的CPU架构模型

1.引言 程序员在编码的时候&#xff0c;如果想有进一步的提升&#xff0c;我认为还是要深入底层理解程序运行原理才好。最近看了一些ARM架构的讲解&#xff0c;总结了如下。虽然是以ARM为原型画的图形&#xff0c;但是对于C和C的编程&#xff0c;还是有一些参考价值的。 2. AR…

SAP HCM GET pernr无法获取到数据二

今天遇到一个比较奇怪的问题&#xff0c;PA30能查到员工主数据&#xff0c;任何信息类型也没有错误&#xff0c;但是核算工资的时候发现无法找到此人。 但是核算工资无法核算 断点到逻辑数据get pernr&#xff0c;也不会进入断点 查看0000数据有间隔 具体错误的代码位置如下&am…

rspack 使用构建vue3脚手架

基于 Rust 的高性能 Web 构建工具。rspack 主要适配 webpack 生态&#xff0c;对于绝大多数 webpack 工具库都是支持的。 启动速度快&#xff1b;增量热更新快。兼容 webpack 生态&#xff1b;内置了 ts、jsx、css、css modules 等开箱即用。生产优化&#xff0c;tree shaking…

【蓝桥杯】第十五届填空题a.握手问题

题解&#xff1a; 根据问题描述&#xff0c;总共有 50 人参加会议&#xff0c;每个人除了与自己以外的其他所有人握手一次。但有 7 个人彼此之间没有进行握手&#xff0c;而与其他所有人都进行了握手。 首先&#xff0c;计算所有人进行握手的总次数&#xff1a; 总人数为 50 …

计算机服务器中了360后缀勒索病毒怎么办?360后缀勒索病毒解密步骤

网络技术的不断应用与发展&#xff0c;为企业的生产运营提供了极大便利&#xff0c;利用网络可以开展各项工作业务&#xff0c;可以大大提高企业的生产效率&#xff0c;然而&#xff0c;网络是一把双刃剑&#xff0c;在为企业提供便利的同时&#xff0c;也为企业的数据安全带来…

Go——Channel通道

一.介绍 单纯的将函数并发执行是没有意义的。函数和函数之间需交换数据才能体现并发执行函数的意义。 虽然可以使用共享内存来进行数据交换&#xff0c;但是共享内存在不同的goroutine中容易发送竞态问题。为了保证数据交换的正确性&#xff0c;必须使用互斥量对内存进行加锁&a…

树莓派驱动开发--搭建环境篇(保姆级)

前言&#xff1a;树莓派的环境搭建关系到之后的驱动开发&#xff0c;故一个好的环境能让你顺手完成驱动开发&#xff01;我使用的是64位树莓派4b&#xff01;有显示屏的前提&#xff01;&#xff01;&#xff01;&#xff08;因为wifi连接太刁钻了&#xff09; 一、ubantu相关 …

(一)基于IDEA的JAVA基础14

在看今天的重点二维数组前&#xff0c;先做俩个练习复习一下&#xff0c;热热脑子: 求数组内的最大值/最小值 这个就是挨个比较换一下位置 假设有这么一组数组{16,48,48,54,3} public class Test01 { public static void main(String[] args) { int [] num {16,48,54,3}; …