Java基础复习之Object类、System类、StringBuilder类、包装类

//本人觉得重点的部分会用彩色标出

//写了好久还没人看,难受呀:-(

第一章 Object类

回顾:方法的重写

    a.定义: 子类和父类中,出现一模一样的方法,这时候子类中这个方法被称为重写后的方法

    b.结论: 子类对象调用方法时,优先调用子类重写后的方法(Java遵循就近原则)

    如果子类没有重写,还是调用父类继承而来的方法

1.Object类的概述

    Object类是所有类的根类(所有的类都会直接或者间接继承Object,包括数组)

 

2.Object类的toString方法

    方法原型: public String toString(); 获取对象的字符串表示

    默认的表示形式: 包名.类名@地址值

    该方法打印出来地址值,是没有意思,从地址中我们看不出任何有用的信息

    在实际开发中,我们通常会重写toString方法,打印出属性值而不是地址值

注意事项:

    System.out.println(对象名);//实际上并不是直接打印的地址

    而是先 对象名.toString() 获取到返回值,然后打印该返回值

即:

    String 返回值 = 对象名.toString();

    System.out.println(返回值);

    和下面的是等价

    System.out.println(对象名);

3.Object类的equals方法

    方法原型: public boolean equals(Object obj); 判断当前对象和参数对象是否"相等"

    在Object类中 equals方法比较就是两个对象的地址值,地址相等返回true,地址不相等返回false

    在实际开发中,我们也会重写equals方法,比较两个对象的属性值,而不是地址值

 

总结:************************************

    快捷键生成toString: ALT+INS 选择toString

    快捷键生成equals: ALT+INS 选择equals and hashCode,把生成hashcode暂时删除

4. Objects类

    它是一个工具类,特点是方法都是静态的,直接通过类名调用即可

    public static boolean equals(Object obj1,Object obj2);//该方法内部调用obj1.equals(obj2);

    该方法本质上直接调用equals比较两个对象,区别不大,但是添加一些合法性判断的代码(空指针容忍代码)

   

    注意:以后如果你需要判断两个对象是否相等,直接调用Objects中equals方法把对象传入即可

 

第二章 System类

1.System类的描述

    API说了: System类不能创建对象.原因是构造方法私有化

    System类中的所有方法都是静态的

 

2.System类中常用方法

    public static long currentTimeMillis();//返回当前时间距离标准时间(1970-01-01 00:00:00)的毫秒值

    //返回时间戳

    public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);

源数组   源数组起始下标  目标数组 目标数组的起始下标 复制的长度

     //该方法比您的写的任何代码都快,因为他是系统级(是底层c/c++编写)

第三章 StringBuilder类

1.StringBuilder的概述

    String是一种不可变字符串,每次拼接时,不会在原有字符串后面拼接,都会产生新的字符串对象,性能低

    StringBuilder也是一种可变字符串,每次拼接时,直接在原有字符串后面拼接,性能高

总结: 以后在开发中,String一般用于展示,StringBuilder字符串拼接

 

2.StringBuilder的构造方法

    public StringBuilder(); 创建一个空的StringBuilder对象

    public  StringBuilder(String str);//创建一个指定内存的StringBuilder对象

 

3.StringBuilder的成员方法

    public StringBuilder append(任意类型); 追加内容,返回StringBuilder本身对象

    支持链式编程

 

public String toString();//这是StringBuilder重写后的toString,返回值StringBuilder中的内容

 

开发的原则:

    拼接时,使用StringBuilder,拼接后先转成String,然后再传递给别人或者打印

扩展的一个:

public StringBuilder reverse();反转StringBuilder中的内容,返回StringBuilder本身对象

 

第四章 包装类

1.什么是包装类

    基本类型 对应的 引用类型

byte            Byte

short           Short

int               Integer

long            Long

float            Float

double        Double

char            Character

boolean      Boolean

 

2.基本类型和包装类之间转换

    在JDK1.5之前,基本类型和对应引用类型 不会自动转换(了解)

赋值

    Integer i = 10; 在JDK1.5之前是报错的!!!!

    Integer i = new Integer(10);

    Integer i = Integer.valueof(10);

取值:

    Integer i = Integer.valueof(10);

    System.out.println(i*2);//JDK1.5之前是错误!!!

    int v = i.intValue();

    System.out.println(v*2);

在JDK1.5之后,基本类型和对应引用类型 会自动转换

自动装箱:

    Integer i = 10;//底层实际上就是 Integer.valueof(10);

  自动拆箱:

    Integer i = 10;

    System.out.println(i+10);// i.intValue() + 10

总结:在开发中如果遇到基本类型和包装类进行计算时,我们就当做基本类型进行计算即可

 

3.包装类有啥作用????

    a.由于集合的泛型只能使用引用类型(包装类)

比如:

    ArrayList<int> arr = new ArrayList<int>();//报错的!!!!

    ArrayList<Integer> arr = new ArrayList<Integer>();

b.解析字符串*****

    int value = Integer.parseInt("222");

    double value = Double.parseDouble("171.3");

    8种包装类只有Character没有parseXxx方法,因为字符串可以有多个字符,字符只能有一个字母

 

Integer有一个坑

Integer.valueof(数字)的底层是怎么样???

如果数字 范围是 -128到+127之间的,那么从缓冲区取出

如果数字 范围不是以上范围,那么重新创建一个新的对象

所以Integer a = 200;

       Integer b = 200;

        a !=b;

因为a和b均超过了127,需要重新new一个对象,因此地址值不同,所以不相等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值