java中的string是什么_什么是String

f129eb988f65b35b30c985da0cea0df5.png

2017-07-28

String和StringBuf

String name=new String("HuangWeiFeng");

System。out。println(name+"is my name");

看似已经很精简了,其实并非如此。为了生成二进制的代码,要进行如下的步骤和操作:

(1) 生成新的字符串 new String(STR_1);

(2) 复制该字符串;

(3) 加载字符串常量"HuangWeiFeng"(STR_2);

(4) 调用字符串的构架器(Constructor);

(5) 保存该字符串到数组中(从位置0开始);

(6) 从java。 io。PrintStream类中得到静态的out变量;

(7) 生成新的字符...全部

String name=new String("HuangWeiFeng");

System。out。println(name+"is my name");

看似已经很精简了,其实并非如此。为了生成二进制的代码,要进行如下的步骤和操作:

(1) 生成新的字符串 new String(STR_1);

(2) 复制该字符串;

(3) 加载字符串常量"HuangWeiFeng"(STR_2);

(4) 调用字符串的构架器(Constructor);

(5) 保存该字符串到数组中(从位置0开始);

(6) 从java。

io。PrintStream类中得到静态的out变量;

(7) 生成新的字符串缓冲变量new StringBuffer(STR_BUF_1);

(8) 复制该字符串缓冲变量;

(9) 调用字符串缓冲的构架器(Constructor);

(10) 保存该字符串缓冲到数组中(从位置1开始);

(11) 以STR_1为参数,调用字符串缓冲(StringBuffer)类中的append方法;

(12) 加载字符串常量"is my name"(STR_3);

(13) 以STR_3为参数,调用字符串缓冲(StringBuffer)类中的append方法;

(14) 对于STR_BUF_1执行toString命令;

(15) 调用out变量中的println方法,输出结果。

由此可以看出,这两行简单的代码,就生成了STR_1,STR_2,STR_3,STR_4和STR_BUF_1五个对象变量。这些生成的类的实例一般都存放在堆中。堆要对所有类的超类,类的实例进行初始化,同时还要调用类极其每个超类的构架器。

而这些操作都是非常消耗系统资源的。因此,对对象的生成进行限制,是完全有必要的。

经修改,上面的代码可以用如下的代码来替换。

StringBuffer name=new StringBuffer("HuangWeiFeng");

System。

out。println(name。append("is my name。")。toString());

系统将进行如下的操作:

(1) 生成新的字符串缓冲变量new StringBuffer(STR_BUF_1);

(2) 复制该字符串缓冲变量;

(3) 加载字符串常量"HuangWeiFeng"(STR_1);

(4) 调用字符串缓冲的构架器(Constructor);

(5) 保存该字符串缓冲到数组中(从位置1开始);

(6) 从java。

io。PrintStream类中得到静态的out变量;

(7) 加载STR_BUF_1;

(8) 加载字符串常量"is my name"(STR_2);

(9) 以STR_2为参数,调用字符串缓冲(StringBuffer)实例中的append方法;

(10) 对于STR_BUF_1执行toString命令(STR_3);

(11)调用out变量中的println方法,输出结果。

由此可以看出,经过改进后的代码只生成了四个对象变量:STR_1,STR_2,STR_3和STR_BUF_1。你可能觉得少生成一个对象不会对程序的性能有很大的提高。但下面的代码段2的执行速度将是代码段1的2倍。

因为代码段1生成了八个对象,而代码段2只生成了四个对象。

代码段1:

String name= new StringBuffer("HuangWeiFeng");

name+="is my";

name+="name";

代码段2:

StringBuffer name=new StringBuffer("HuangWeiFeng");

name。

append("is my");

name。append("name。")。toString();。收起

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/395176.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

详解华为与三星专利之争 律师称可能会打持久战

华为技术有限公司(下称“华为”)起诉三星,在近期中国企业起诉外企的“潮流”中掀起不小的漩涡。 “叫好声”认为,这是已经拥有专利积累的中国企业在国际舞台上的一次“实力亮相”,这件事本身就是中国制造业的胜利;“阴谋论者”认为…

租金 预测_如何预测租金并优化租赁期限,从而节省资金

租金 预测by Zhen Liu刘震 如何预测租金并优化租赁期限,从而节省资金 (How to Predict Rent and Optimize Your Lease Duration So You Can Save Money) In my last post, we talked about how to pick the best month to sign the lease based on seasonality. No…

java system load_关于java的System.load 和 System.loadLibrary

关于两者的区别(参见http://blog.csdn.net/ring0hx/article/details/3242245)System.load 参数为库文件的绝对路径,可以是任意路径。System.loadLibrary方法load的为相对路径,即在java.library.path定义下的lib文件,文件名会更具不同的系统实…

东进技术南亚创捷

深圳市东进技术在其海外市场拓展中取得又一骄人战绩,于四月下旬与印度One97通信公司签订了长期战略合作协议,One97将全面采用东进的全系列产品。同时签订的一期采购计划,总装机端口数约3万线。该合约主要涉及东进技术的领先主打产品——Keygo…

如何在5分钟内通过身份验证构建RESTful API —全部从命令行(第1部分)

by Niharika Singh由Niharika Singh 如何在5分钟内通过身份验证构建RESTful API —全部从命令行(第1部分) (How to Build a RESTful API with Authentication in 5 minutes — all from your command line (Part 1)) If the title of this article excites you, then my frien…

MD5与SHA1

一、MD5 MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信…

java基本类型的默认值及其取值范围

转载于:https://www.cnblogs.com/billyu/p/5843845.html

tair client java_TFS(Taobao File System)Java Client 使用经验

TFS Java客户端的说明tfs-client-java版本选择:---------------------------------------tfs-client-java的版本有:release-2.0.0/tfs-with-large-2.1.1/tfs-client-java-2.1.3/release-2.2.2/release-2.2.3/release-2.2.4/release-2.2.6/最终我选用了tf…

Nutanix公布财报数据 准备IPO前表现抢眼

Nutanix已经向美国证券交易委员会提交了修订的S-1 IPO文件,其中的数据显示,Nutanix凭借着强力增长的业务为IPO做好了准备。 Nutanix公布财报数据 准备IPO前表现抢眼 Nutanix CEO Dheeraj Pandey Nutanix最新的财报数据无论从环比和同比收入增长方面看起来…

DevExpress WinForms使用教程:图表控件 - 内置深入查询

【DevExpress WinForms v18.2下载】在最新发布的DevExpress WinForms v18.2中,DevExpress WinForms和ASP.NET图表控件引入嵌套系列模板的概念,是您能在不编写自定义代码的情况下深入查询图表。 Chart控件的嵌入式痕迹导航元素显示导航层次结构中各个数据…

serverless 构建_使用Serverless,StepFunctions和StackStorm Exchange构建社区注册应用程序-Episode…...

serverless 构建by Dmitri Zimine由Dmitri Zimine 使用Serverless,StepFunctions和StackStorm Exchange构建社区注册应用程序-第3集 (Building a community sign-up app with Serverless, StepFunctions, and StackStorm Exchange — Episode 3) Build a real-worl…

AlfaLaval公司采用低速通风技术冷却数据中心

日前,瑞典热交换专家AlfaLaval公司推出了遵循低速通风原则的一系列数据中心冷却解决方案,其方案需要大量的风扇,而使空气以相当慢的速度流动,取得了与计算机机房空调(CRAC)一样有效的制冷效果。 该公司表示…

java pdf 首页 缩略图_Java中将上传的文件首页生成缩略图(先将上传的文件转成pdf,然后将pdf转成jpg)...

1、首先将上传的非jpg,pdf格式的文件转成pdf,这个是采用OpenOffice进行转的,具体代码如下:private void officeToPdf(){OpenOfficeConnection connection new SocketOpenOfficeConnection(8100);try {connection.connect();} cat…

1.2 如何在visual studio 中建立C#程序

这一节简单介绍一下怎么在visual studio 2015中建立第一个C#程序,我使用的是2015版的visual studio,不同版本可能有一些差异,不过大体上是相同的,这些信息仅供新手参考,大牛请自动跳过。 首先双击visual studio 2015的…

javascript在html中的延迟与异步

1.相同点:延迟与异步都会同时加载script 2.不同点:延迟是script加载完成后,待HTML执行完毕后,才会接着执行script; 异步是script加载完成后,接着就执行该程序,HTML等到script完全执行完毕后&…

三星全速进军物联网 所有产品都将内置互联功能

韩媒报道,近日消息传出,三星电子的家电部门,当前生产的产品都将内建Wi-Fi。相关高层表示,此种做法可替更先进的功能预作准备,因为家电寿命较长,至少可用五年。目前为止,三星家电只有部分具备Wi-…

2d手机游戏开发_我的手机游戏如何在2周内获得365K应用商店下载(以及为什么我退出独立游戏开发公司…...

2d手机游戏开发by William Kwan关冠伟 我的手机游戏如何在2周内获得365K应用商店下载(以及为什么以后我退出独立游戏开发者) (How My Mobile Game Got 365K App Store Downloads in 2 Weeks (And Why I Quit Indie Game Dev Afterwards)) I’m not a successful game develope…

Python ValueError: IO operation on closed file

ValueError IO operation on closed file表示处理了已经被关闭的数据,在python 中 with语句的上下文会帮助处理,也就是说,当python的处理代码不对齐的时候会出现这种情况。例子如下: header那一行,突出,也就…

java面向字符的输入流_详细解读Java编程中面向字符的输入流

字符流是针对字符数据的特点进行过优化的,因而提供一些面向字符的有用特性,字符流的源或目标通常是文本文件。 Reader和Writer是java.io包中所有字符流的父类。由于它们都是抽象类,所以应使用它们的子类来创建实体对象,利用对象来…

任务信号量

在实际任务间的通信中,一个或多个任务发送一个信号量或者消息给另一个任务是比常见的,而一个任务给多个任务发送信号量和消息相对比较少。前面所讲的信号量和消息队列均是单独的内核对象,是独立于任务存在的。这两章要讲述的任务信号量和任务…