Java零基础(9)Object类、包装类、String类

一、Object类(java.lang.Object)
        1. 特点
            1.1 超类、基类、根类,所有类直接或者间接父类
            1.2 任何类,如果没有写 extends 显示继承的类,都默认继承Object类
            1.3 Object类型的引用能指向任何对象 (多态 父类引用指向子类对象 Object o = new Student();)
            1.4 Object类中定义的方法,是所有类都具有的方法
        2. 方法
            2.1 finalize() 
                    由垃圾回收器在回收垃圾时,调用方法释放内存空间
                    1) 垃圾对象:没有任何引用指向此对象,为垃圾对象
                        new A();  //垃圾对象
                        A a=new A();
                        a=null;  // new A(); 没有引用指向它,变成垃圾对象
                    2)    垃圾回收机制
                        a. 自动回收机制
                            JVM内存耗尽时,不能再为新对象分配空间时,一次性回收所有垃圾对象
                        b. 手动回收机制
                            使用System.gc();  通知JVM执行垃圾回收
            2.2 getClass()
                    返回对象的实际类型
                    如:Animal a=new Dog();
                        Animal a1=new Cat();
                        Dog d=new Dog();
                        System.out.println(a.getClass());  //Dog
                        System.out.println(a1.getClass()); //Cat
                        System.out.println(a.getClass()==d.getClass());  //true 
            2.3 toString()
                    返回对象的String类型形式,打印一个对象引用就是打印这个对象的 toString 方法的返回值
                    一般子类覆盖toString方法返回对象的字符串形式,调用的话以子类toString方法优先
                    public String toString(){
                        return "熊猫名字叫做:"+name+"  年龄:"+age; //信息表达式  属性跟字符串的拼接组成的
                    }
            2.4 equals()
                    1)判断两个对象内容是否相同
                    String s1 = new String("abc");
                    String s2 = new String("abc");
                    System.out.println(s1 == s2); //判断地址是否相同
                    boolean b=s1.equals(s2);  //判断内容是否相同
                    System.out.println(b);
                    2)重写equals方法
                    public boolean equals(Object o){  //Object o=new Student("小黑");
                        if(this == o)return true; //判断当前对象和传递进来的参数地址是否相同
                        if(o == null)return false;  //判断o引用是否指向对象的内容
                        if(this.getClass() != o.getClass())return false;  //判断类型是否相同
                        Student s=(Student)o;  //大类型转换成实际类型,需要强转
                        if(this.name.equals(s.name) && this.age==s.age)return true;  //通过属性判断内容是否相同
                        else return false; //属性内容不相同
                    }
二、包装类
        1. 概念:为了让Object类型的引用能够表示基本类型,八种基本数据类型所对应的引用数据类型
                 包装类的默认值是 null
                 对于数值类型的属性,可以区分 0 值和 null 值
        2. 对应:八种基本数据类型对应的包装类
                byte   ----->  Byte
                short  ----->  Short
                int    ----->  Integer
                long   ----->  Long
                float  ----->  Float
                double ----->  Double
                char   ----->  Character
                boolean ---->  Boolean
        3. 类型转换
                3.1 int 类型转换成 Integer类型  Integer i =new Integer(整数); 
                3.2 String类型转换成 int 类型   int a=Integer.parseInt(字符串整数);   
                                            如果传的参数不是字符串类型整数,java.lang.NumberFormatException  数字格式异常
                3.3 String类型转换成 Integer类型 Integer i1=Integer.valueOf(字符串整数); //String类型整数转换成Integer类型
        4. JDK5.0 后基本数据类型和对应包装类型自动转换(int 和 Integer混用)
三、String类(java.util.String)
        1. 概念
             1.1 字符串是常量,创建之后就不能改变
             1.2 字面值存储在常量池中,可以共享
             1.3 优点:字符串常量能够重用,提高了利用率  //串池资源共享
                 缺点:做字符串加法时会产生大量小字符串  //字符串拼接
             1.4 方法:length(); //计算字符串长度的方法
                       toUpperCase();  //字符串小写字符转大写
                       toLowerCase();  //字符串大写转小写
                       split("指定规则");  //将字符串按指定规则拆分成字符串String类型数组
        2. StringBuffer(可变长字符串)(java.util.StringBuffer)
             2.1 用来替换字符串,能够更高效的完成字符串的拼接
                 StringBuffer sb =new StringBuffer("abc");  //可变长的字符串类
                 sb.append("d");
                 sb.append("e");
                 sb.append("f");
                 sb.append("g");
                 System.out.println(sb);
             2.2 操作的还是当前对象

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值