String类解析

Posted had1314

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了String类解析相关的知识,希望对你有一定的参考价值。

String类内存解析
字符串不变,他们的值在创建之后不能改变
1.==比较运算符,基本数据类型是进行值比较,引用类型是地址比较
2.equals:Object类中的一个方法,比较对象的地址;String类对这个方法实现了重写,对字符串进行比较
 
Object类
面试题:finalize() final finally区别
finalize():当垃圾收集器确定不再有对该对象的引用时,垃圾收集器在对象上调用该方法;
final:关键字,修饰常量
finally:作为异常的一个块
1.重写equals()方法
 1 public class TestObject 
 2  public static void main(String[] args) 
 3  Person p1 = new Person();
 4  p1.name="abc";
 5  Person p2 = new Person();
 6  p2.name="abc";
 7  System.out.println(p1==p2);  // false
 8  System.out.println("@:"+p1.equals(p2));  //没有重写前false  /重写equals方法后就可按照自己的规则 实现 结果 true
 9  System.out.println("==================================");
10  System.out.println(p1);            //com.aura.java2.Person@15db9742
11  //如果重写了Object为中的toSting(),可按照自己的规则 实现 结果
12  System.out.println(p1.toString());  //com.aura.java2.Person@15db9742
13  
14 // String s1 = new String("Hello");
15 // System.out.println(s1.toString());  //Hello
16  
17  
18  
19 
20  
21 class Person
22  String name;
23  //重写equals()
24  //当对象的属性值 如果一致的话,是同一个对象 
25 // @Override
26 // public boolean equals(Object obj) 
27 // if(this==obj) 
28 // return true;
29 // else if(obj instanceof Person)
30 // Person per = (Person)obj;
31 // if(per.name.equals(this.name)) 
32 // return true;
33 // 
34 // 
35 // 
36 // return false;
37 // 
38  @Override
39  public boolean equals(Object obj) 
40  if (this == obj)
41  return true;
42  if (obj == null)
43  return false;
44  if (this.getClass() != obj.getClass())
45  return false;
46  Person other = (Person) obj;
47  if (name == null) 
48  if (other.name != null)
49  return false;
50   else if (!name.equals(other.name))
51  return false;
52  return true;
53  
54  
55 // @Override
56 // public String toString() 
57 // return "Person: name="+this.name;
58 // 
59  @Override
60  public String toString() 
61  return "Person [name=" + name + "]";
62  
63  
64 
2.重写toString()方法
Junit测试
 1 public void test() 
 2         System.out.println("Hello");
 3         show();
 4     
 5 
 6     public void show() 
 7         System.out.println("实现功能!");
 8     
 9     @Test
10     public void test2() 
11         System.out.println("其他测试任务!");
12     

 

包装类
特点:具有类的特点,可以调用类中的方法
针对于基本类型,系统帮我们封装了8个对象的包装类,
基本类型
包装类型
byte
Byte
short
Short
int
Integer
long
Long
float
Float
double
Double
char
Character
boolean
Boolean
基本类型 包装类型 String类型
Boolean包装类型比较特殊,除了true,其他的都是false
技术图片

 

装箱:基本类型转换成包装类型
拆箱:包装类型转换基本类型,可以自动类型转换,也可以使用方法。
Integer in3=9;//装箱 int i3=in3;//拆箱
基本类型和String类型的转换
技术图片

 

 

以上是关于String类解析的主要内容,如果未能解决你的问题,请参考以下文章

java源码解析之String类

C++ 之string类常用接口功能解析(7千字长文带你玩懂string!)

jdk源码解析--String 类

Java String 类解析

摘录工具类代码,解析字符串,拼凑时间String

从字节码和JVM的角度解析Java核心类String的不可变特性