最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Java String类用法代码示例解析
时间:2022-06-29 02:21:14 编辑:袖梨 来源:一聚教程网
本篇文章小编给大家分享一下Java String类用法代码示例解析,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
一、简介
零碎知识点
extends Object
implements serializable,Comparable< String >,charSequence
String类表示字符串,所有字符串文字都是此类的对象
字符串是不变的,值在创建后无法更改
对象一旦声明则不可改变,改变的只是地址,原来的字符串还是存在的,并且产生垃圾
任何一个“”都为字符串对象,无赋值则为匿名对象
用“+”拼接字符串尽量避免,一般用append+toString
StringBuilder(线程不安全)和StringBuffer(线程安全),忽略线程安全,其它都一样
由于String对象是不可变的,所以可以共享(即两个字符串一样则共享同一块内存地址)
//共享 String t1 = "123"; String t2 = "123"; System.out.ptintln(t1 == t2);//true,(== 比较的是内存地址)
字符串常量池
存在于方法区(加载代码的内存区),被所有的线程共享
堆在逻辑上的划分
堆在逻辑上被分为三部分:
新生代:存储刚创建的对象(GC询问次数最多为15次,>15则进入老年代)
老年代:垃圾回收次数超过15次(即15次之后依然存活的对象)
永久代:静态修饰的所有东西(类、方法、常量…)
每一个字符串对象的创建都会放入永久代(每次创建都先去永久代,前提:不用new,new开辟新内存)
二、创建对象
2.1 直接引用常量区
String s = " ";
String str = “abc” ;
2.2 使用构造方法
String()
String str = new String(“abc”);
2.3 两种实例化方法的区别
区别
直接赋值:
只开辟一块堆内存空间,并且会自动入池,不会产生垃圾
会将匿名对象“”放入对象池,下一次不同对象直接赋值时直接利用池中已经存在的匿名对象
构造方法:
在堆内存创建对象
会开辟两块堆内存空间,其中一块堆内存会变成垃圾被系统回收,而且不能够自动入池,需要通过public String intern();方法进行手工入池。
三、常用方法
相关文章
- 死亡搁浅2次要订单No.100 将拆解的步枪送到独行指挥官手上全流程攻略 09-06
- 死亡搁浅2怎么开启照明 闪光灯开启方法 09-06
- 超级忍反攻的斩击怎么下载 完整中文版获取指南 09-06
- 死亡搁浅2怎么使用VR培训室 09-06
- 超级忍反攻的斩击有手机版吗 移动端游玩指南 09-06
- 死亡搁浅2怎么提高波特等级 提高波特等级的方法 09-06