Java常用类1

2022/2/11 22:13:07

本文主要是介绍Java常用类1,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Java常用类1

字符串相关的类

String(代表字符串)

理解String的不可变性

  • String是一个final类,代表不可变的字符序列(不可变性)

  • 字符串是常量,用“”引起来。在创建后不能更改(不可继承)

  • String对象的字符串内容是存储在一个字符数组value[]中的(final char[] valve)

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

    ​ 实现了Comparable接口:表示String可以比大小-

  • 通过字面量赋值(不同于new),此时的字符串值是在字符串常量池中(不会右有两个相同的常量)

public static void main(String[] args) {
        String s1 = "abc";//字面量的定义方法
        String s2 = "abc";
         System.out.println(s1==s2);//比较s1和s2的地址是否相等
        s1 = "hello";//当对字符串重新赋值时,要重写指定内存区赋值
        System.out.println(s1);
        System.out.println(s2);
        System.out.println(s1==s2);
        System.out.println("=====================================");

        String s3 = "abc";
        s3 += "def";//当对现有的字符串进行连接操作时,也要重写指定内存区赋值
        System.out.println(s3);
        System.out.println(s2);
        System.out.println("=====================================");

        String s4 ="abc";
        String s5 = s4.replace("a","m");//当调用String的replace方法修改,也要重写指定内存区赋值
        System.out.println(s4);
        System.out.println(s5);
    }

String对象的创建

String的实例化

  1. 字面量定义
  2. new+构造器
public static void text2(){
        //通过字面定义:此时的S1,S2的数据JavaEE声明在方法区的字符串常量池中
        String s1 = "javaEE";
        String s2 = "javaEE";
        //通过new:此时的s3,s4保存的地址值,是在堆空间中开辟空间以后对应的地址值
        String s3 = new String("javaEE");
        String s4 = new String("javaEE");

        System.out.println(s1==s2);//true
        System.out.println(s1==s3);//flase
        System.out.println(s1==s4);//flase
        System.out.println(s3==s4);//flase
    }

p1和p2的地址是一样的(”Tom“是字面量赋值)

注:String s = new String("abc")在内存中创建了2个对象

  1. 堆空间中new的

  2. 另一个char[]对应常量池中的"abc"

String的拼接

结论:

  • 常量与常量的拼接结果在常量池
  • 有变量参与,结果在堆中
  • intern()方法,返回值在常量池中
public static void text3(){
        String s1 = "javaEE";
        String s2 = "hadoop";

        String s3 = "javaEEhadoop";
        String s4 = "javaEE"+"hadoop";
            
        /*有变量参与在堆空间中*/
        String s5 = s1+"hadoop";
        String s6 ="javaEE"+s2;
        String s7 = s5.intern();

        System.out.println(s3==s4);
    
        System.out.println(s3==s5);
        System.out.println(s3==s6);
        System.out.println(s5==s6);
        
        System.out.println(s7==s3);
    }

未完。。。



这篇关于Java常用类1的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程