java—Object类 &包装类

 

 

Object类:

Object类是Java中所有类的父类,所以Object下的方法同时也是所有类的共有方法,
即使是你自定义的一个类,也拥有Object的方法。

Object类下的常见方法:

 

1.equals方法

a.equals(b);

其中a和b都要是一个对象而非一个基本数据类型或一个类。
含义:判断两个对象是否为同一个对象(内存地址是否相等,本质就是==),返回一个boolean值。
凡是new出来的不可能是同一个对象。

 

==和equals的区别

1.==如果作用于基本数据类型。就判断值是否相等。
2.==如果作用于引用数据类型,就判断地址是否相等。
3.equals:只能作用于引用数据类型,本质就是==
4.但是大部分的类都重写了equasl方法,例如String  ,Date
5.重写之后的equals则是判断值是否相等 
//重写父类的equals方法,让equals不再是== 而是通过id判断是否相等
    public boolean equals(Student o) {
        if(this.id == o.id ) {
            return true;
        }else {
            return false;
        }
    }

 

2.toString方法
直接打印对象,和打印对象的.toString方法 效果是一样的 一般都是省略

Object的toString打印:对象的内存地址,格式:  路径+ @ + 内存地址

如果存在某个场合,希望打印的是具体属性信息而非地址,则可以通过重写toString方法实现。
大部分的实体类都会重写toString,原因:方便阅读实体对象是否符合要求

String声明变量的区别:
String str = new String("xx");
不管xx是什么,都要重新开辟一个新的内存。
String str = xx ;
如果xx存在了就不去开辟了 而是直接引用已经存在的。

 

易错点:
String不是八大基本数据类型
但是String是Java中最常见的数据类型。可以存储字符串类型。
数据中包含数字,字母,符号等 都可以使用String声明
声明方式如下:

1.String str = “你好呀”;//直接声明,最常见

2.String str = new String(“你好呀”);//通过构造方法new实例化声明,了解即可

Java中的String没有属性只有方法。

备注:JavaScript的String既有属性也有方法。

常用方法:
int length();返回字符串的长度。
char charAt(int index);返回字符串中第几个字符,从0开始,注意下标溢出
int indexOf(String str);返回str首次出现的位置,如果没有出现就为-1
String substring(int index);从指定位置截取剩下的字符串
String substring(int index,int end);从index开始到end结束截取字符串,包含index不包含end
String toUpperCase();转大写
String toLowerCase();转大写
String trim()去除首尾的空格
boolean endsWith(String str);是否以str结尾
boolean startsWith(String str);是否以str开头
boolean equals(String str);字符串的值是否相等
String replace(String oldStr,String newStr);将旧字符串替换成新字符串
String[] split(String str);将字符串以str的形式切割成数组

注意事项:
String的方法都需要返回值接受

String的补充:
String被final修饰,意为最终类,无法被继承,也无法被修改。
我们声明的字符串其实本质上都是被final修饰的常量。
那么为什么可以随意修改呢?
本质上并不是修改,而是直接丢弃原本的字符串,去声明一个新的字符串。
所以如果某个字符串需要经常被修改,那么不推荐通过String声明,因为会产生大量的垃圾。(但是JVM自动回收,所以也可以用,但是不推荐。)
而是通过StringBuffer声明。所以String几乎没有提。

StringBuffer:
如果某个字符串需要经常被更改例如密码,那么推荐使用StringBuffer来声明。

语法如下:
            StringBuffer str = new StringBuffer( String str );

备注:不能像String那样直接声明。
            StringBuffer的特点:对字符串的增删改查都是在原有的基础上进行修改,
            而非像String一样。

StringBuffer常见的方法:
和String的方法大同小异,列举出几个不同的:

append(Object o);  往尾部添加任意类型的值。
insert(int I,Object o);在指定位置插入指定类型数据。
String&StringBuffer的区别:
StringBuffer如果修改字符串 比String效率高的多。

衍生:Java的世界里面。一行代码的区别,带来的效率是上百倍甚至上千倍。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值