学习笔记分享---Object与包装类

1.Object

Object是基类,也就是说 Java 中所有类都继承了 Object,子类可以使用 Object 的所有方法。Object类位于java.lang包中。自定义类或者系统提供类全部隐式继承Object,特殊数组也继承

(1) toString

可以将任何一个对象转换成字符串返回,返回值的生成算法:
getClass().getName() + ‘@’ + Integer.toHexString(hashCode())

	
		Object obj=new Object();
		
		System.out.println(obj.toString());//getClass().getName() + '@' + Integer.toHexString(hashCode())
		

		Student stu=new Student();
		
		System.out.println(stu.toString());//stu对象类名称+ '@' + Integer.toHexString(hashCode())

(1.1) 子类重写父类中toString方法
在这里插入图片描述

(1.2) 快速生成toString

(2) equals

用来比较两个引用的虚地址,当我们引用同一个物理地址,则返回true,否则返回false

(2.1) String 重写equals

		
	  String name1="小明";
	  String name2="小红";
	  
	  System.out.println(name1==name2);
	  
	  
	  String name3=new String("小明");
	  String name4=new String("小红");
	  
	  System.out.println(name3==name4);
	  
	  System.out.println(name3.equals(name4));//equals重写方法后,比较字符串中的值!!
	  
	  Student stu1=new Student("1001","小红",89);
	  Student stu2=new Student("1002","小明",79);
	  
	  Student stu3=new Student("1001","小红",89);
	  
	  System.out.println(stu1==stu3);
	  System.out.println(stu1.equals(stu3));//equals调用的是父类中的方法,比较地址
	

(2.2) 为什么java重写equals方法时,要重写hashcode?
在这里插入图片描述

(3)hashCode

获取对象的哈希码值,为16进制

特点:

如果两个对象使用equals比较返回true,那么 他们的hashcode值一定相同。
如果两个对象使用equals比较返回false,那么他们的hashcode值有可能不同有可能相同。


getClass

返回对象运行时类,即是一个Class

 Student stu1=new Student("1001","小红",89);
System.out.println(stu1.getClass());
class com.etc.day10.Student//控制台输出



getName

通过Class类中的中的一个方法,获取真实类的全名称

System.out.println(stu1.getClass().getName());

com.etc.day10.Student//控制台输出

在这里插入图片描述

2.包装类

java中提供包装类,将8个基本数据类型,进行封装为一个类

包装类中会提供很多的属性和方法,供程序员使用

存储在java.lang包下

原始数据类型包 装 类
boolean**(布尔型)**Boolean
byte**(字节型)**Byte
char**(字符型)** Character
short**(短整型)**Short
int**(整型)** Integer
long**(长整型)**Long
float**(浮点型)**Float
double**(双精度浮点型)**Double

属性

  int num=9;
            
            System.out.println(Integer.MAX_VALUE);//int  最大值
            System.out.println(Integer.MIN_VALUE);//int  最小值
            System.out.println(Integer.SIZE);//位    1字节=8位    4  32位
            
            

自动拆箱和装箱

自动装箱
Integer num1=99;

自动拆箱
int  num2=num1;

注意

        int num1=129;
        int num2=129;
        
        System.out.println(num1==num2);//true
        
        Integer num3=124;
        Integer num4=124;
        System.out.println(num3==num4);//false

总结:
    -128~127之内的整型,第一次引用,在缓存中new一个对象;再次引用,直接从缓存中查找
    
    -128~127之外的整型,每次都要new一个新的对象
        

valueOf

返回值包装类

1.字符串转换成Integer

String year="1988";

System.out.println("年龄:"+(2021-Integer.valueOf(year)));
            

2.包装数据类直接进行赋值

Integer i=10;

Integer j=Integer.valueOf(10);

在这里插入图片描述

3.浮点型每次都要new一个新的对象
在这里插入图片描述



parseXxx

parseInt parseDouble …

返回的是基本数据类型

  System.out.println("年龄-"+(2021-Integer.parseInt(year)));//年龄-33



isDigit 判断传入字符是否是一个’0’ - ‘9’

isLetter 判断传入字符是否是一个字母

isUpperCase 判断传入字符是否是一个大写字母

isLowerCase 判断传入字符是否是一个小写字母

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值