搜索热点


Java第三课

何轩伟 2023-11-13 109 11/13
  1. java中所有的语句都使用了完全限定名
  2. “==”和“equals”的不同

== : 比较基本数据类型时,比较的是值;比较引用数据类型时,比较的是地址。

equals:比较的是值内容。

  1. 多个常量赋值 :多个引用,值相同,地址相同

String a = "abc";

String b = "abc";

//a==b   true

//a.equals(b)  true

2.利用构造方法创建对象:不同对象,不同地址

String a = new String("abc");

String b = new String("abc");

//a==b   false

//a.equals(b) true

3.常量赋值和对象引用:地址不同

String a = "abc";

String b = new String("abc");

//a==b false

//a.equals(b) true

4.字符拼接:常量拼接优化机制,无视拼接符,会在常量池直接找拼接后的字符串

String a = "abc";

String b = "a" + "bc";

//a==b true

//a.equals(b) true

5.字符拼接:变量和常量拼接,会创建stringbuilder对象,将拼接后的内容传给String对象

String a = "a";

String b = a + "bc";

String c = "abc";

//b==c  false

//b.equals(c) true

3.以下代码:

public class ConstructString {

public static void main(String[] args) {

char[] chs="0123456789".toCharArray();

 

String s1=new String();

String s2=new String(chs);

String s3=new String(chs,3,4);

String s4=new String(s2);

 

String s5="abc";

String s6="abc";

 

String s7=s5;   //s7==s5返回 true

String s8=new String("hello");  //s8=="hello"返回false

 

String s="abc"+2;   //java会将其它类型转换为字符串类型

 

 

}

}

1)拼接过程中有变量参与,先创建一个stringbuilder对象,用于拼接内容,再将拼接后的内容转换为字符串对象

2)stringbuilder会调用tostring方法转换成字符串,tostring 底层调用string的构造方法 保存abc拼接后的内容

3)引用指向String对象地址值

Java第三课


对于s5,s6来说

字符串常量机制:

常量赋值,会先去常量池中找对应的字符串,如果没有,则创建,如果有,就指向常量池.

因此创建多个引用进行字符串常量赋值,内容相同,地址也相同


Java第三课


在String构造方法中传递一个字符串          String s2 = new String("abc");

1)先在常量池找到对应字符串,找不到就创建

2)将找到的"abc"读取到创建的String对象中

3)引用指向String对象地址值


Java第三课


  1. Java中String类的方法

compareTo(p256/257)

compareToIgnoreCase(p257)

contains(p258)

Endswith/Startwith(p258/p259)

indexOf(p260)

replace(p261)

String toLowerCase/toUpperCase(p262)

String strip(p263)

主要以书本为主,参考链接:https://blog.csdn.net/m0_53067943/article/details/127636615

 

 

 

- THE END -
Tag:
最后修改:2023年11月13日
0

非特殊说明,本博所有文章均为博主原创。