Java8——String类的特点

String类对象的两种实例化方式:

在String类里面实际上也有一个构造方法

构造方法:public String (String str),在构造里面仍然要接收一个本类对象;

字符串比较:

String也可以使用 == 比较,但是比较的不是字符串的内容,而是字符串所在的内存地址的值

比较内容:public boolean equals(String str);  使用时是:stra.equals(strb);

面试题:

String中==和equals()区别?

  • ==:是Java提供的关系运算符,主要功能是进行数值相等判断,如果用在String对象上,比较的是内存地址数值的比较;
  • equals():是由String提供的一个方法,此方法专门用于负责字符串内容的比较,equals处理空

String常量为匿名对象:

使用字符数组来描述字符串,实际上没有字符串这一概念;字符串不属于基本数据类型

String的匿名对象是由系统自动生成的,不再由用户创建;

如果要判断输入的内容是否是某一个字符串,一定要将字符串写在比较函数的前面!防止有空指向问题的出现!

两种实例化方式的区别:

  • 直接赋值(推荐使用):将一个字符串的匿名对象设置了一个名字;例如:String str = "hello"; 此时内存中会开辟一个堆内存(匿名对象一定会开辟一个内存空间),然后栈内存会指向堆内存,并且会自动保存在对象池中,以便下次使用;
  • 构造方法:(String str = new String("字符串") ;)会开辟两块内存空间,并且不会自动入池,但是用户可以使用 intern() 方法手动入池;

字符串内容不可改变:

对于字符串内容的改变实际上是利用了引用关系的改变,但是会产生垃圾;

String不要频繁过多的修改;

String的特点:

  • String类对象的相等判断使用equals()方法完成,==实现的是地址数值的比较
  • 字符串内容一旦声明不可改变,String类对象的内容改变实际上是依靠引用关系的变更
  • String类有两种实例化方式,使用直接赋值可以不产生垃圾空间,并且可以自动入池

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值