ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

常用类第一节

2020-12-26 09:59:58  阅读:129  来源: 互联网

标签:字符 常用 string 第一节 char str println String


文章目录

常用类

String类

特性
  1. String 是一个final类,代表不可变的字符序列;final类是不可以被继承的

    —String实现了Serializable接口,表示字符串是支持序列化的

    —String实现了Comparable接口,表示String可以比较大小

  2. 字符串是常量,用双引号引起来表示,在创建之后不能更改

    —String代表不可变的字符序列,简称不可变性

  3. String对象的字符内容是存储在一个字符数组value[]中

    —String内部定义了final char[] value用于存储字符串数据

String s = "abc";
这里采用字面量的定义方式;
通过字面量(不同于new)的方式给一个字符串赋值,此时的字符串值声明在字符串常量池中。
字符串常量池中是不会存储相同内容的字符串的。
String不变性的实例
public class HelloWorld {

    String str = new String("good");
    char[] ch = {'t', 'e', 's', 't'};
    public static void main(String[] args) {
        HelloWorld test = new HelloWorld();
        test.change(test.str, test.ch);
        System.out.println(test.str);
        System.out.println(test.ch);
    }
    public void change(String str, char ch[]){
        str = "test ok";
        ch[0] = 'b';
    }


}


可以先看下代码,思考下结果是什么。

结合一下string的不变性加深理解。

运行结果:
good
best

由于string的不变性,这里是先声明一个String类型的str,尽管主函数调用了change(),但由于string的不变性,因此str的内容并没有改变。而char[]数组并没有该特性,因此当调用了change后,就把ch[0]变成了’t’。

拼接
public class HelloWorld {
    public static void main(String[] args) {
        String s1 = "helloworld";
        String s2 = "hello";
        String s3 = s2 + "world";
        System.out.println(s1 == s3);//false

        final String s4 = "hello";//常量
        String s5 = s4 + "world";
        System.out.println(s5 == s1);//true
    }
}
  1. 常量与常量的拼接结果(+)在常量池,且常量池中不会存在相同内容的常量。
  2. 只要其中有一个是变量,结果就在堆中。
  3. 如果拼接的结果调用intern()方法,返回值就在常量池中。
String的常用方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

string与基本数据类型,包装类之间的转换

string->基本数据类型/包装类

调用包装类的静态方法:parsexxx(str)

标签:字符,常用,string,第一节,char,str,println,String
来源: https://blog.csdn.net/qq_40703471/article/details/111715352

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有