最新下载
热门教程
- 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();方法进行手工入池。
三、常用方法
相关文章
- 《原神》5.2卡池抽取建议 11-14
- 《原神》5.2版本新怪物介绍 11-14
- 《原神》希诺宁增伤触发方法 11-14
- 《原神》循音觅奇活动入口 11-14
- 《原神》循音觅奇兑换码获取方法 11-14
- 《原神》花羽会活动飞行技巧介绍 11-14