[javaSE]初识String

Sring类

在C语言当中并没为字符创建一个类型,而java提供了一个String类用来实现定义字符串类型,分别是String、
StringBuffer、StringBuider类,并且StringBuffer StringBuider两者用法非常相似。我分享我对String学到的知识

String的创建

String我们常用的有三种形式来创建对象
在这里插入图片描述
第一种使用字符串字面量:这种方式使用了字符串字面量。在Java中,字符串字面量被放入字符串常量池。如果你创建了两个包含相同字符序列的字符串字面量,它们会引用常量池中的同一个对象。
第二种是使用了new关键字与字符串字面量:这种方法每次使用new 关键字创建时,都会在堆区创建一个新的字符串对象,即使在常量池中已经存在了一个相同的。
第三种是使用了new关键字和数组:这种方法首先在堆区创建一个字符串对象,在通过字符数组来初始化这个字符串对象。

String的类型

String它不属于基本类型的其中一种,而是属于引用类型的一种,这说明它所存储内容不是值,而是一个地址,所指向的内容才是我们所需要的值。
首先我们来到String类的源码当中 在这里插入图片描述

它定义了一个 引用类型char[]的 value(用来存储数据) 和一个 int类的 hash
(在JDK8中用final char[]存储字符串数据,JDK9后改为final char[] 来存储数据)

所以我们可以画图知道
在这里插入图片描述
通过指向我们可以找到我们所需要的内容

String的比较

由于字符串是引用数据类型,不能通过直接“==”来判断他们是否向相等,而是通过.equal()的方法判断他们是否相等。
在这里插入图片描述

String 的方法

1、字符串查找

在这里插入图片描述

2、转化

1、大小写的转化
在这里插入图片描述
2、字符串转数组
在这里插入图片描述
等等等还有很多很多其他的方法就不一一列出来了。

String的不可改变性

首先在String创建的过程中就被定义为final在这里插入图片描述
同时
在这里插入图片描述

1、value被修饰被final修饰,表明value自身的值不能改变,即不能引用其它字符数组,但是其引用空间中
的内容可以修改。
2、final修饰类表明该类不想被继承,final修饰引用类型表明该引用变量不能引用其他对象,但是其引用对象中的内容是可以修改的。
3、对字符串进行操作,如拼接、替换或者截取等,通常都会产生新的字符串对象,而原始的字符串对象不会被改变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值