十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
String是Java开发中最常用的一个数据对象,在内存中占据非常大的空间,高效使用字符串,可以提升系统性能及节省空间
专注于为中小企业提供网站设计制作、做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业古交免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。Java7/8及Java9字符串实现区别
首先是从char变成了byte,我们知道char是16位2字节,而byte是8位1字节,大大的节省了存储空间,其次是coder属性,其作用是在使用indexOf()时,根据coder是0(Latin-1)还是1(UTF-16)计算长度
使用String.intern()节省内存
String a = new String(“abc”);
一个字符串对象的创建首先是在常量池里查看里面有没有"abc"这个字符串,没有则创建在常量池中,在复制到堆内存中,再将对象的引用指向它;有则直接复制到堆内存中,再指向堆内存的地址引用。
简单来说,通过new的对象始终会在常量池和堆内存中存在,而直接"abc"赋值的String对象仅仅在常量池中有。
如果调用 intern 方法,会去查看字符串常量池中是否有等于该对象的字符串,如果没有,
就在常量池中新增该对象,并返回该对象引用;如果有,就返回常量池中的字符串引用。堆
内存中原有的对象由于没有引用指向它,将会通过垃圾回收器回收。
简单来说,就是把对象的引用指向常量池,多个字符串对象为一个值时,也指向常量池中同一个字符串引用。因为减少了对象的创建,所以大大节约了内存
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧