《String》

Object

Object类是所有类的终极父类,任何一个类都继承了object

Java是开源的,源代码是公开的

Object方法:

1. toString返回该对象字符串表示 完整类名+@+对象哈希吗

2. Equals方法用于比较两个对象的内存地址,判断两个对象是否为同一个对象

3. Hashcode返回该对象的哈希码值

字符串

==”用于比较引用数据类型数据的时候比较的是两个对象的内存地址

equals默认方法比较也是两个对象的内存地址

String中重写了equals把字符串转换成字符数组,然后一个一个的比较

String s = hello

这种方式创建字符串的时候,jvm首先会检查字符串常量池中是否存在该字符串对象,如果已经存在,那么就不会在字符串常量池中再创建,直接返回该字符串在字符串常量池中的内存地址,如果该字符串还不存在字符串常量池中,那么就会在字符串常量池中创建该字符串的对象,然后再返回

String s1 = new String(hello)

这种方式创建的字符创对象的时候,jvm首先会检查字符串常量池中是否存在“hello”的字符串,如果已经存在,则不会在字符串常量池中创建了,如果还不存在,那么就会在字符串常量池中创建hello”字符串对象,然后还会去到堆内存中再创建一份字符创的对象,把字符串常量池中“hello”内容拷贝致对内存中的字符创对象,然后返回堆内存中字符串对象的内存地址。

注意:使用字节数组或者字符数组都可以构建一个字符串对象

String方法:

1. length() 获取字符串的长度

2. charAt(int index) 获取特定位置的字符

3. indexOf(String str) 获取特定字符的位置 如果没有出现 -1表示

4. Lastindexof(int char) 获取最后一个字符的位置 如果没有出现 -1表示

字符串是常量,他们的值在创建之后不能修改,字符串的内容一旦发生了变化,那么马上就会创建一个新的对象

String缓冲类

如果需要频繁修改字符串的内容,使用StringbufferStringbuffer就是一个存储一个字符的容器。

Stringbuffer底层是依赖一个字符数组才能储存字符数据的,该字符串数组默认的初始容量为16,如果字符数组长度不够使用时,自动增长1+2

StringbuilderStringbuffer兼容的api,功能与Stringbuffer一样的,比Stringbuffer运行更快。

StringbufferStringbuilder相同处

1. 两个类都是字符串缓冲类

2. 两个类的方法都是一致的

StringbufferStringbuilder不同处

1. Stringbuffer是线程安全的操作效率低,Stringbuilder是线程不安全的操作效率高

2. Stringbufferjdk1.0出现的,Stringbuilder1.5出现的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值