一)不可变的String:
首先String这个类是final的,不可被继承。String对象是不可变的,查看一下JDK文档是乎每个方法看起来都会修改String对象的值,实际上都是创建了一个全新的String对象,用来包含修改后的字符串内容。而最初的String对象则丝毫未动。
public class TestString{
public static String upcase(String s){
return s.toUpperCase();
}
public static void main(String [] args){
String str = "hello";
System.out.println(str);
String upcaseStr = upcase(str);
System.out.println(upcaseStr);
System.out.println(str);
}
}
输出:hello HELLO hello
由此可见,str的内容并没有改变。当把str传递给upcase()方法时,实际传递的是一个引用。每当把String对象作为方法的参数时,都会复制一份引用,而该引用所指的对象其实一直待在单一的物理位置上,从未动过。
二) “+” 和“StringBuilder”
String对象是不可变的,你可以给一个String对象添加任意多的别名,因为String对象具有只读特性,所以指向它的任何引用都不可能改变它的值。正是因为不可变性给String带来了性能上的问题。当我们执行如下的这句代码的时候
String s = "today"+"is"+"women's"+"day"; java虚拟机帮我们执行了一些操作,它会默认的给我们创建一个StringBuilder对象。来该对象来构建最终的String. 最后调用StringBuilder的toString()方法生成结果。然后将引用交给S。
分享到:
相关推荐
/*部分删节,请下载细看!!*/ public static void main(String[] args) { String url = "http://www.liuzm.com"; String keyword = "刘志猛博客"; GetNetHtml p = new GetNetHtml(); ...
Java提供了一套丰富的异常类来帮助开发人员处理在程序执行过程中可能发生的错误。本文档列出了Java中常见的异常类型,并简要描述了这些异常的含义以及可能引发它们的场景。 首先,我们从错误和异常的基本概念说起。...
代码(CreateXLS.java): //生成Excel的类 import java.io.*; import jxl.*; import jxl.write.*; public class CreateXLS { public static void main(String args[]) { try { //打开文件 ...
现代编译原理Java版本,想了解编译原理的童鞋,可以细看,此书是用java编写。
原始代码不是我写的,不过经过我精心修改,功能比较稳定,不容易出错,修改若干bug,其功能基本能达到window系统下的计算器功能。附上原始代码,和我修改后的代码,功能模块基本重写,算法不是很简单,要细看...
代码(CreateXLS.java): //生成Excel的类 import java.io.*; import jxl.*; import jxl.write.*; public class CreateXLS { public static void main(String args[]) { try { ...
windows NTFS数据流是一个子文件系统允许额外的数据连接到一个任意的文件...细看教程
后面到现场开发了,再查资料,终于找到几个好的demo,2/3是一样的 可看一个就行,1是比较详细的可以细看,首先就是用eclipse将wsdl文件转成Java,然后拷进项目,拷贝过后需要引入demo2里面的jar以及将类文件的报错...
细看路由器与交换机不同之处.pdf
《2022年鞍山地区Java工程师职位薪酬调查报告》是针对该地区Java工程师薪酬状况的一份详尽分析。这份报告对于了解Java工程师在鞍山地区的薪资分布、行业差异以及职业发展有着重要的参考价值。 报告首先给出了Java...
《2022年无锡地区高级Java工程师职位薪酬调查报告》揭示了该地区在软件开发领域,特别是针对Java工程师这一专业岗位的薪资状况。报告详细分析了不同类型的公司在招聘高级Java工程师时提供的薪酬水平,为求职者和企业...
《2022年长三角地区高级Java工程师职位薪酬调查报告》揭示了该区域内高级Java工程师的薪资状况,为行业提供了有价值的参考数据。本报告详细分析了不同性质企业的薪酬分布,以便于求职者、企业雇主以及关注该领域的...
细看强化复合地板骗人的十大“奇”招.doc
《连锁行业细看母婴零售:条分缕析爱婴室、孩子王的能力与谋局》这篇报告主要聚焦于中国母婴零售行业的两大代表性企业——爱婴室和孩子王,深入探讨了它们在市场中的竞争策略、业务模式以及未来的发展趋势。...
聊天记录每5条保存到数据库,具体请各位朋友细看. 技术:ExtJS 3.2 DWR 3.0 Struts 2.16 Spring 2.0 Hibernate 3.2 MySql 5.0 原文地址: http://yourgame.javaeye.com/blog/681537 火狐浏览器,谷歌浏览器测试通过. ...
在分析美团点评盈利能力的行业深度分析报告中,我们能看到对美团点评四大业务板块的详细剖析及其盈利潜力的评估。该报告首先将美团点评拆分为餐饮外卖、酒旅业务、到店业务、新业务及其他板块,分别考察了各业务板块...
修改二:一个小BUG,原操作类对空映射的一个处理上有点小问题,被我细看后发现,已修正。 修改三:添加了动态实体类的控件绑定支持。原操作类已支持动态绑定,无需给定一个具体的类型,而返回一个dynamic类型的实体...
Windows 8的任务管理器是操作系统中的一个重要工具,它允许用户监控和管理正在运行的进程、性能数据、启动项以及系统服务。这个全新的任务管理器相比旧版本有着更加直观和丰富的功能,旨在提升用户的操作体验。...
万年记事薄,左边是年历,右边是记事簿,记事可删除,查看,周六 周日的颜色有点特殊,要细看奥,
初学JAVA很容易被其中的很多概念弄的傻傻分不清楚,首先从概念上理解一下吧,JDK(Java Development Kit)简单理解是Java开发工具包,JRE(Java Runtime Enviroment)是Java的运行环境,JVM( java virtual machine)也...