14

聊聊Java编程必用的对象——字符串

 2 years ago
source link: https://blog.51cto.com/u_15460453/5819369
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Table of Contents

聊聊Java编程必用的对象——字符串

要说Java编程中对什么的处理做多,莫过于字符串了。

String的各种方法

String类被final修饰,表明它是一个不可变的类,它具有只读性,任何引用都不会改变它的值。

对应String提供的一些方法,对于一些常用的方法,我们是需要了解一下,

  • charAt()方法:获取指定索引位置的字符
  • toCharArray()方法:将字符串转换为char数组,这个我当时出道的时候有被问到。。
  • equals()方法:比较两个String的内容是否相同
  • contains()方法:判断是否包含指定的字符串
  • startsWith()方法:判断是否以指定字符串来开头
  • endsWith()方法:判断是否以指定字符串来结尾
  • substring()方法:截取字符串,这是比较常用的

这些方法都是操作String对象比较常用的方法,当字符串的值需要改变的时候会创建一个新的String对象并返回,其他情况只是返回这个对象的引用即可。

连接字符串

对应String类型的操作,连接字符串,刚接触Java的程序员可能使用加号➕来操作,但相比StringBuffer、StringBuilder来说,它会产生大量的String对象,如果我们使用加号进行连接的话,编译器会把加号操作转变为StringBuilder的append()方法操作字符串,然后调用toString()方法返回String对象。

有的同学可能会问,既然编译器会帮我们使用StringBuilder了,我们为啥还不推荐使用加号连接呢?当我们明确使用StringBuilder或StringBuffer的时候,相比直接使用加号操作字符串,编译器会创建很少的StringBuilder或StringBuffer对象,使用StringBuffer还有一个好处就是可以根据字符串的大小定义容量,避免StringBuffer内存不够的时候还要重新分配内存。

StringBuffer与StringBuilder

经典面试题会问StringBuffer和StringBuilder有什么区别?通过看源码我们就知道,StringBuffer提供的方法都是通过synchronized关键字来修饰从而保证了线程的安全,而StringBuilder就没有这一特性了,整体上他们提供的处理字符串的方法都是一致的。

StringBuffer的append()方法:

public synchronized StringBuffer append(String str) {
    toStringCache = null;
    super.append(str);
    return this;
}

这篇文章我们讲了String对象提供的各种API方法,String对象的操作是基础也是重点,对应字符串之间的连接操作,建议使用StringBuffer和StringBuilder来实现,因为这样能产生更少的String对象,StringBuffer的方法中通过synchronized来修饰保证了线程安全。

❤️ 感谢大家

如果你觉得这篇内容对你挺有有帮助的话:

  1. 欢迎关注我❤️,点赞👍🏻,评论🤤,转发🙏
  2. 关注盼盼小课堂,定期为你推送好文,还有群聊不定期抽奖活动,可以畅所欲言,与大神们一起交流,一起学习。
  3. 有不当之处欢迎批评指正。

Recommend

  • 62

    今天我们就了解一下常见的加密方式有哪些?常见的密码保存方式有哪些?黑客是用什么样的方法来获取和破译目标密码口令的?常用的密码破解工具有哪些?。

  • 8

    网络安全工程师必用的6个渗透工具,专业工具渗透工作更好做! 渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。同时,网络所有者根据渗透人员提供的渗透测试...

  • 10

    你好, 我是any-rule(一个vscode插件)的作者, 感谢大家长期以来对any-rule的喜爱. 经过大家1年多的使用, any-rule后台已经有了10w+的日志记录, 年底了分享下这1年中大家最喜欢的正则有哪些.

  • 6

    iPhone 截屏 嘀嗒出行,品牌升级啦! 嘀嗒出行(前身「嘀嗒拼车」),自2014年成立至今,始终以「让出行生态系统更高效和环保,让每次出行变得温暖和愉悦...

  • 5

    手机必用!一键清理10G垃圾,流畅度翻倍天地11 小时前看着手机接近爆满的内存,真的很后悔。当初为了省个几百块,如今只能看着 64 G的手机默默...

  • 10

    十个推荐给妈妈们的必用 iPhone 功能,母亲节帮妈妈们设置好哦 十个...

  • 24
    • www.51cto.com 2 years ago
    • Cache

    程序员做项目必用五大工具

    程序员做项目必用五大工具 作者:程序员客栈 2022-09-02 15:25:59 每个程序员多多少少都会有自己简化项目的小工具,我采访了我们公司所有的工程师总结了程序员必备工具篇,记得转发给你身边的程序员朋友哦!

  • 7

    每到年底,都会有大量的促销活动,有活动意味着需要复盘,对于数据分析师而言,数据复盘就是一个日常工作。那么该如何提升复盘效率,作者总结了活动复盘的“七步成诗法”,帮助你更加清晰、全面地完成复盘。

  • 7

    让Python代码飞起来,高手必用十个VSCode插件 作者:奇酷教育 2023-03-31 15:10:32 作为一名 Python 程序员,VSCode 中的插件能够帮助我们更高效地进行开发,提高代码的质量和效率。

  • 9

    做软件的UI设计必用这10个工具! 更新时间:2024-01-11 17:09:08 叮~UI 设计工具盘点上线啦!我们都知道 UI 设计有很多种类,在日常生活中的应用场景有很多,所以涉及使用的 UI 设计工具也有很多。对于这么多的 UI 设计工具,哪个...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK