zoukankan      html  css  js  c++  java
  • 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类型的转换
     
  • 相关阅读:
    iOS 9音频应用播放音频之第一个ios9音频实例2
    隐写术: 基地组织如何用视频隐藏绝密文档?
    stm32 Fatfs 读写SD卡
    STM32应用笔记转载
    STM32-NVIC中断管理实现[直接操作寄存器]
    FatFs源码剖析
    STM32固件库详解(转)
    Arduino线程库ProtoThreads
    ARM9(TQ2440)裸机代码分享
    将USBASP改造成STK502编程器(转)
  • 原文地址:https://www.cnblogs.com/had1314/p/11373825.html
Copyright © 2011-2022 走看看