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类型的转换

 

 
posted @ 2019-08-18 20:37  修仙小华  阅读(160)  评论(0编辑  收藏  举报