首页 > 编程语言 >JAVA之PAI&字符串

JAVA之PAI&字符串

时间:2025-01-12 17:35:48浏览次数:1  
标签:JAVA String StringBuilder new 拼接 创建 字符串 PAI

1、API(Application Programming Interface):应用程序编程接口
JAVA API:指的是JDK中提供的各种功能的java类
2、字符串

  • String

          1.java.long.String类代表字符串
          2.字符串的内容是不会发生改变的,它的对象在创建后不能被更改
          3.创建String对象的两种方式:直接赋值 new 构造方法

         

         4.当使用双引号直接赋值时,系统会检查字符串在串池中是否存在 不存在则创建新的,存在则直接复用

         5.比较:
            ==号比较:基本数据类型比较的是数据值,引用数据类型比较的是地址值。
           字符串比较:a【boolean equals方法(要比较的字符串) 完全一样结果才是true,否则为false】
                                 b【boolean equalsIgnoreCase(要比较的字符串) 忽略大小写的比较】
         6.遍历字符串:public char charAt(int index):根据索引返回字符
         7.public int length():返回此字符串的长度
         8.String substring(int beginIndex, int endIndex) 截取 【包头不包尾,包左不包右。只有返回值才是截取的小串】
         9.String substring(int beginIndex) 截取到末尾
         10.String replace(旧值,新值) 替换【只有返回值才是替换之后的结果】

  • StringBuilder

         1. StringBuilder可以看作是一个容器,创建之后里面的内容是可变的
         2.作用:提高字符串的操作效率
         3.StringBuilder构造方法

         

         4.StringBuilder成员方法【常用方法】

         

         5.使用场景:字符串的拼接;字符串的反转

  • StringJonier

         1.是容器,创建之后里面的内容是可变的
         2.作用:提高字符串的操作效率,而且代码编写特别简洁,但是目前市场上很少有人用
         3.JDK出现的
         4.构造方法:

         

         例:
         StringJoiner sj = new StringJoiner("---"); //1---2---3
          StringJoiner sj = new StringJoiner(",","[","]");[1,2,3]
         5.成员方法:

         

         

  • StriingBuffer
  • Pattern
  • Matcher

3、字符串原理

  • 字符串存储的内存原理
    • 直接赋值会复用字符串常量池中的;new出来不会复用,而是开辟一个新的空间
  • ==号比较的是什么?
    •  基本数据类型比较数据值;引用数据类型比较地址值
  • 字符串拼接的底层原理
    • 一个加号,堆内存中俩对象
    • 如果没有变量参与,都是字符串直接相加,编译之后就是拼接之后的结果,会复用串池中的字符串
    • 如果有变量参与,每一行拼接的代码,都会在内存中创建新的字符串,浪费内存。

 

 

  • StringBuilder提高效率原理图
    • StringBuilder是一个内容可变的容器,所有要拼接的内容都会往StringBuilder中放,不会创建很多无用的空间,节约内存 字符串拼接的时候,如果有变量:
      JDK8以前:系统底层会自动创建一个StringBuilder对象,然后再调用其append方法完成拼接。
      拼接后,再调用其toString方法转换为String类型,而toString方法的底层是直接new了一个字符串对象
      JDK8版本:系统会预估要字符串拼接之后的总大小,把要拼接的内容都放在数组中,此时也是产生一个新的字符串。
  • StringBuilder源码分析
    • 1—默认创建一个长度为16的字节数组
      2-添加的内容长度小于16,直接存
      3-添加的内容大于16会扩容(原来的容量*2+2)
      4-如果扩容之后还不够,以实际长度为准

 

标签:JAVA,String,StringBuilder,new,拼接,创建,字符串,PAI
From: https://www.cnblogs.com/aimaxiaonengshou/p/18667054

相关文章

  • leetcode3333 找到初始输入字符串II
    用键盘输入字符时,可能因为在一个键上停留太久,导致同一个字符被输入多次。给定word表示最终显示的字符串,以及整数k,表示希望输入字符串的最少长度,求希望输入串的总方案数,对1E9+7取模。1<=|word|<=5E5;1<=k<=2000;word只包含小写字母分析:1、假设最终串的长度为n,对其分组循环,把相......
  • C++、Python、Java、JavaScript的fill函数使用
    C++在C++中,std::fill函数用于将指定的值赋给容器或数组中给定范围内的所有元素。它定义在<algorithm>头文件中,函数原型如下:template<classForwardIterator,classT>voidfill(ForwardIteratorfirst,ForwardIteratorlast,constT&value);ForwardIterator:前向迭代......
  • 【JAVA 基础 第(16)课】自定义异常类,会更帅哦
    自定义异常类   编译期异常类: class异常类名 extendsException{}   运行期异常: class异常类名extendsRuntimeException{}   类中添加两个构造方法:一个默认消息的构造方法,一个是指定消息的构造方法代码示例:自定义一个游戏输赢异常类publicclassNot_......
  • JAVA之集合
    1、集合集合可以存储引用数据类型;集合不可以存储基本数据类型,若要存储,需封装成包装类;2、集合和数组的对比长度【数组长度固定,集合长度可变】存储类型【数组可以存基本数据类型和引用数据类型,集合可以存引用数据类型,若存储基本数据类型,需封装成包装类】3、ArrayList【打......
  • Redis 是一个开源的高性能键值对存储数据库,通常被用作缓存、消息队列和持久化数据库。
    Redis服务器是什么?Redis是一个开源的高性能键值对存储数据库,通常被用作缓存、消息队列和持久化数据库。Redis支持多种数据结构,如字符串、哈希、列表、集合、有序集合、位图等。它被广泛用于需要快速读写操作、低延迟的场景。Redis可以作为一个独立的数据库使用,也可以作为缓......
  • Java程序员不得不会的124道面试题(含答案)
    1)什么是线程局部变量?线程局部变量是局限于线程内部的变量,属于线程自身所有,不在多个线程间共享。Java提供ThreadLocal类来支持线程局部变量,是一种实现线程安全的方式。但是在管理环境下(如web服务器)使用线程局部变量的时候要特别小心,在这种情况下,工作线程的生命周期比任何......
  • 《JAVA基于SpringBoot的在线拍卖系统》毕业设计项目
    大家好我是蓝天,混迹在java圈的辛苦码农。今天要和大家聊的是一款《JAVA基于SpringBoot的在线拍卖系统》毕业设计项目。项目源码以及部署相关请联系蓝天,文末附上联系信息。......
  • Java中的反射机制及其应用场景
    目录什么是Java反射机制?工作原理主要应用场景注意事项总结什么是Java反射机制?Java反射机制是一种强大的工具,它允许程序在运行时访问、检查和修改其本身的类和对象的信息。通过反射,开发者可以在不知道类的具体实现细节的情况下,动态地操作类的属性和方法。这种能力使得......
  • Java 方法
    在Java编程语言中,方法(Method)是执行某些特定功能的代码块。方法是Java程序结构的基本组成部分之一,它使得代码更加模块化,具有良好的可复用性和可维护性。通过方法,可以将复杂的任务拆分成更小的子任务,使得程序更加清晰和易于管理。1方法的结构方法一般包含以下几个部分:......
  • 【JavaWeb学习Day12】
    MyBatis简介:Mybatis是一款优秀的持久层框架,用于简化JDBC的开发。Mybatis本是Apache的一个开源项目ibatis,2010年这个项目由apache迁移到了googlecode,并且改名为Mybatis。2013年11月迁移到github官网:https://mybatis.org/mybatis-3/zh/index.html01.入门程序:使用Mybatis查......