String类

字符串常量池

方法区:方法区就是加载代码的区域,写的类被加载到内存,用类创建若干个对象, 加载到内存的只有一个,静态代码块随着类加载的时候执行,类只加载一次,所以 只执行一次,加载一次,就加载到方法区里,方法区里存在着重复使用静态资源,包括类信息,方法消息。又称永久代,非堆区。

永久代:永远在内存中存储的内容,程序只要不关,类加载过来以后,就在内存里一直存在。不会加载第二次(相当于静态代码块不会执行第二次一样),加载进来一直复用。

方法区被所有线程共享的

堆(heap)

逻辑上分为三部分:新生代,老生代,永久代

新生代:刚创建内存储存的位置。刚创建的对象都存储在新生代中,因为gc进行很快,过一会询问一次,过一会询问一次。在写代码时候,刚创建一个对象,用一次,下一次不用了,如,匿名对象。

老年代:如果一个对象连续经过15次垃圾回收都没有被回收掉,这个对象可能会用的更长,就被挪到老年代,gc比较慢,长时间问一次,节省了gc询问的次数。

永久代:

只要放到永久代,就不可能被垃圾回收,不会被清理。类方法常量,静态修饰的所有东西。每一个字符串对象的创建都会放到永久代,作为一个常量存储。

相当于在永久代中创建了一个常量text

下一次text2在执行时候回=会去永久代里面去找,有的话不再创建,直接把text地址拿过来。

如果是new的对象,不管内容是否一样,结果都是false。

 

1.截取,从1下标截取到3下标

  

2.StringBuilder,拼接字符串,相对于直接加,更节省内存

append,往里面追加,toString,转化成字符串

 

 直接加拼接,垃圾无法被回收,占内存

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值