5

Java字符串_mb62c3ac8538829的技术博客_51CTO博客

 2 years ago
source link: https://blog.51cto.com/u_15707781/5454697
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

Java字符串

原创
/*
*作者:呆萌老师
*☑csdn认证讲师
*☑51cto高级讲师
*☑腾讯课堂认证讲师
*☑网易云课堂认证讲师
*☑华为开发者学堂认证讲师
*☑爱奇艺千人名师计划成员
*在这里给大家分享技术、知识和生活
*各种干货,记得关注哦!
*/

1、什么是字符串

        字符串,又叫串,是一种数据结构,是一个内容受限的线性表。

        字符串又有一种定义叫做:“不可变的字符序列”。

        字符串关键字:String

        其底层实现是1、在老版本的Java中,字符串的底层是一个字符类型的数组,后来优化成了byte数组。但总而言之其底层实现都是数组。

2、字符串的操作

"呆萌老师";//直接通过“”号方式创建字符串
//通过new来创建字符串,通过传参的方式来确定字符串的内容
String bString=new String(aString);//直接传递一个字符串
System.out.println(bString);
String str=new String("daimenglaoshi");
System.out.println(str);
String cString=new String(new char[]{'a','s','c'});//传递一个char类型的数组
System.out.println(cString);
String dString=new String(new char[]{'a','s','c'},0,1);
System.out.println(dString);

/*字符串的操作*/

//字符串拼接
String str1="呆萌老师";
String str2=str1+"是一个漂亮的女老师!";//通过“+”实现字符串的拼接。
System.out.println(str2);

//字符串的截取

String str3="呆萌老师";
System.out.println(str3.substring(2));//从第几个字符开始截取
System.out.println(str3.substring(1, 3));//从第几个到第几个

//字符串内容判断
System.out.println(str3.equals("呆萌老师"));

3、字符串的不可变性

我们对任何字符串的操作都相当于是创建了一个新的字符串。

String为什么不可变呢?

1、底层数组被final修饰,使得String类型的引用一旦被赋值将不可再指向新的数组。

2、私有的数组变量,并且String没有提供修改这个字符数组的方法,就使得我们字符数组一旦被赋值,除了无法更改以外,许多操作返回的字符串,都是被新创建的。

private final char

3、final修饰的类

public final class String

当我们的类被修饰之后,这个类将无法被继承,因此从继承上来说,杜绝了子类对父类方法的覆盖。

String不可变的好处。

1、因为String不可变,所以才方便计算其哈希码,以至于方便进行其他的哈希操作。

private int

2、因为不可变,所以String是线程安全的,因此不用考虑在线程运行过程中它的值被其他线程所修改。

4、字符串常量池

我们计算机的内存资源是有限的,在有限的存储空间中,如果每创建一个对象都分配一个空间这样很显然就是不行的。因此为了提高我们内存的复用性,我们字符串这一块有一个十分重要的点叫做字符串常量池。

当我们在创建字符串的时候,会先在字符串常量池中寻找有没有已经创建好一样的内容,如果已经创建好了,这个字符串引用就会去指向这个应景创建好的值,如果说没有,那么·才会分配处一片空间来创建。

因此值相同的字符串,其哈希值一定相等。

"呆萌老师";//直接通过“”号方式创建字符串
System.out.println(aString.hashCode());
String str3="呆萌老师";
System.out.println(str3.hashCode());

更多请关注

 ​https://edu.51cto.com/course/20204.html​

  • 收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK