JAVA小白第五天学习心得-----内部类和object

本人纯小白,只是将CSDN当作一个记笔记平台,如有大佬发现错误,请及时告知,万分感谢!!

-------------------------------------------------------------------------------------------------------------------------------

前言:本次学习了,内部类,匿名内部类,object,字符串,String重写equals,StringBuffer,

StringBuilder,其中因该理解String和StringBuffer,StringBuilder三者的区别;

一,内部类;

内部类就是在一个类里面在重新建一个类,两个类可以相互调用,但要注意的是在相互调用其属性方法时,都要额外创建一个方法,然后再该方法中创建你想要调用的类的对象,然后在调用方法;

需要注意的是,在测试类中想要调用内部类对象时,应在=右边先new一个外部类.在new一个内部类才能调用;
2;匿名内部类;这个作用是在你需要创建一个抽象类或者接口时,有的方法只需要用到一次,那么就可以直接在测试类中使用这个匿名内部类了;

格式:接口 变量 = new 接口() {
    
};

二,object

object是所有子类中的一个根类

  1. toString()

返回该对象的字符串表示。通常toString方法会返回一个“文本方式表示”此对象的字符串。结果应该是一个简明易懂的信息表达式。建议所有的子类都重写此方法。

  1. hashCode()

由Object类定义的hashCode方法给不同的对象返回不同的整数

  1. finalize()

用于垃圾回收,我们不用手动去调用,由JVM来调用,当垃圾回收器确定不存在该对象的引用时,由对象的垃圾回收器调用此方法。

  1. equals()

比较两个对象地址的值。自定义类重写equals用来比较这两个对象是否相等。

==用于比较基础数据类型时是比较值的大小;

==用于比较引用数据类型时是比较地址值;

三,字符串;

‘’代表单字符;“”代表字符串

String字符串也是引用数据类型;

声明字符串有两种方法

1,是直接声明;String str1=“bsajkghdikahdkla”;

2,是使用对象来声明;String str2=new String(“kjdhaioljdpolwajd”);

两者最主要的区别还是在与存储空间的不同;

第一种直接声明的方法会在堆里的常量池中寻找,如果没有就在常量池中创建一个对应的字符串;

并将该字符串的位置复制给栈空间;

第二种则是在堆空间中创建一个new对象,然后常量池中的地址复制给堆空间所创建的对象空间,而对象空间在堆里的位置在通过赋值给栈里的存储位置,所以第二种栈空间中存放的是堆中对象的地址;

2,字符串的一些使用方法可以看课件;

2.1其中分割字符串可以采用split方法,需要注意的是需要再创建一个数组用于接收分割后的字符串;

String str1="jakdhalhaoliajda";

String[] str2=str1.split("ha");
//通过循环将被裁剪后的数组打印出来
for (int i = 0; i <str2.length ; i++) {
    System.out.println(str2[i]);
}

2.2替换数组也有点不同;

String str1="jakdhalhaoliajda";
//将字符串中的j全部换成了k;
System.out.println(str1.replace("j","k"));

2.3涉及想要集中调换几个字符时可以采用以下方法

String str3="6487161864981";
System.out.println(   str3.replace(str3.substring(3,7),"****"));

四,String重写equals;

经过String重写equals以后,比较的就不再是地址了,而是直接比较字符串里的东西;

五,

StringBuffer

在输出时应该要创建一个对象然后在对象的那个框里进行赋值;

进行拼接时可以使用appen进行拼接

反转字符串时可以使用创建StringBuffer对象,然后使用stringbuffer中的reverse方法就可以实现字符串反转

StringBuffer是线程安全的,创建后值可以变化,可以添加、修改、删除值,但不会改变地址,不会产生新的字符串。

线程安全有利有弊,它提高了安全性,但是牺牲了性能。

六,

StringBuilder

非线程安全的可变字符串。

用法和StringBuffer一样,只是StringBuilder是非线程安全的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值