【Java】String类字符串的解析❤(上)

简介: 一、前言二、String类概述三、字符串的特点四、String 构造方法图示: 代码演示:五、String类对象的特点

一、前言


在java中,和C语言一样,也有关于字符串的定义,并且有他自己特有的功能,下面我们

一起来学习一下。


二、String类概述


string在软件包java.lang下,所以不需要导包。


String字符串是java中的重点,String 类表示字符串类 ,所有的字符串(如"adf")都属于


此类,也就是说有" "双引号括起来的都属于此类,


三、字符串的特点


字符串不可变,他们的值在创建之后不能被改变。


虽然String的值的不可变的,但是他们可以被共享。共享就是其他成员也可以拥有这个值,


字符串效果相当于数组(char[]),但是底层原理是字节数组(byte[])


jdk8以前是字符数组,jdk9以后是字节数组。


四、String 构造方法


public String()  //创建一个空白字符串对象,不含有任何内容。

public String(char[] ch)//根据字符数组的内容来创建字符对象。

public String (byte[] b)//根据字节数组的内容来创建字节对象。

String s=“abc”         //字节赋值的方式创建对象,内容就是abc。


图示:


微信图片_20220105183531.png


代码演示:


public class StringDemo {
    public static void main(String[] args) {
        String s1=new String();//创建空的字符串,其中不包括任何内容
        System.out.println("s1:"+s1);
        char[]chs={'a','b','c'};
        String s2=new String(chs);//给chs创建对象
        System.out.println("chs:"+s2);//输出ch:abc
        byte[]bys={97,98,99};
        String s3=new String(bys);
        System.out.println("bys:"+s3);//输出bys:abc,他会 转化成对应的Ascll码值
        String s4="abc";
        System.out.println("s4:"+s4);//输出s4:abc
    }
}


综上看,推荐使用直接赋值的方式得到字符串对象。


五、String类对象的特点


通过new创建的的字符串对象,每一次new都会申请一个内存空间,虽然内容一样,


但是地址不同


通过直接赋值的方式来创建对象,赋值相同的值,因为是常量在堆内存的常量池中,


进入常量池的规则是:如果常量池中没有这个常量,则在常量池中创建一个,如果有


,则把已经存在的常量地址赋值给他,所以创建不同的变量去接受相同的值,他的内容


是一样的,地址也是一样的 。

目录
相关文章
|
14天前
|
Java API 索引
Java基础—笔记—String篇
本文介绍了Java中的`String`类、包的管理和API文档的使用。包用于分类管理Java程序,同包下类无需导包,不同包需导入。使用API时,可按类名搜索、查看包、介绍、构造器和方法。方法命名能暗示其功能,注意参数和返回值。`String`创建有两种方式:双引号创建(常量池,共享)和构造器`new`(每次新建对象)。此外,列举了`String`的常用方法,如`length()`、`charAt()`、`equals()`、`substring()`等。
15 0
|
3天前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
28 3
|
7天前
|
Java 编译器
Java Character 类
4月更文挑战第13天
|
8天前
|
存储 Java
Java基础教程(7)-Java中的面向对象和类
【4月更文挑战第7天】Java是面向对象编程(OOP)语言,强调将事务抽象成对象。面向对象与面向过程的区别在于,前者通过对象间的交互解决问题,后者按步骤顺序执行。类是对象的模板,对象是类的实例。创建类使用`class`关键字,对象通过`new`运算符动态分配内存。方法包括构造函数和一般方法,构造函数用于对象初始化,一般方法处理逻辑。方法可以有0个或多个参数,可变参数用`类型...`定义。`this`关键字用于访问当前对象的属性。
|
12天前
|
Java Shell
Java 21颠覆传统:未命名类与实例Main方法的编码变革
Java 21颠覆传统:未命名类与实例Main方法的编码变革
13 0
|
12天前
|
Java
Java 15 神秘登场:隐藏类解析未知领域
Java 15 神秘登场:隐藏类解析未知领域
16 0
|
14天前
|
安全 Java
append在Java中是哪个类下的方法
append在Java中是哪个类下的方法
22 9
|
8天前
yolo-world 源码解析(六)(2)
yolo-world 源码解析(六)
18 0
|
8天前
yolo-world 源码解析(六)(1)
yolo-world 源码解析(六)
12 0
|
8天前
yolo-world 源码解析(五)(4)
yolo-world 源码解析(五)
19 0