尽量避免对变量的装箱:字符串+变量,较好的做法是:字符串+变量.ToString()

"尽量避免对变量的装箱:字符串+变量,较好的做法是:字符串+变量.ToString()"这是什么意思呢,求大神帮助

1

6个回答

字符串操作性能优化

  使用值类型的ToString方法

  在连接字符串时,经常使用"+"号直接将数字添加到字符串中。这种方法虽然简单,也可以得到正确结果,但是由于涉及到不同的数据类型,数字需要通过装箱操作转化为引用类型才可以添加到字符串中。但是装箱操作对性能影响较大,因为在进行这类处理时,将在托管堆中分配一个新的对象,原有的值复制到新创建的对象中。使用值类型的ToString方法可以避免装箱操作,从而提高应用程序性能。

5
caozhy
贵阳挖掘机马善福,自备车辆专业挖游泳池 这种教条的规则实际上意义不大。这不是一个追求极致性能的年代了。然而,我们仍然需要注意,如果int i=1,j=3,那么i+j和i.ToString() + j.ToString()是不同的。前者是4,后者是13。
大约一年之前 回复
qq_42502902
qq_42502902
大约一年之前 回复
showbo
支付宝加好友偷能量挖 字符串和其他类型连接的,一定要记得调用ToString就对了,减少类型判断
大约一年之前 回复

变量.ToString()是转成字符串的意思,字符串的拼接是要 字符串+字符串的形式 所以变量需要转成字符串才可以拼接

1
weixin_42495456
weixin_42495456 回复sinat_33460472: 取决于你的变量是否是字符串.否则会先调用变量的toString()再进行拼接操作.
大约一年之前 回复
u012510236
hjkyuiyui Integer i = 10;这种是装箱啊 ,字符串+变量也不会装箱 ,因为你没有声明
大约一年之前 回复
sinat_33460472
哆啦CMeng 字符串+变量会有装箱吗
大约一年之前 回复

首先先说下toString ,toString 是将其他类型的字符,转成String 类型字符。
字符串+变量.ToString()= 字符串 +字符串

0

字符串+变量.ToString() 只进行了方法的调用, 而 字符串+变量 涉及到了装箱操作,也即是类型的转换, 后者开销更大,所以不推荐。

0

数字类型变量的toString()方法本身就会调用拆装箱操作吧,一个是你主动调用toString方法,一个是系统自动调用toString方法,本质没区别的

0

我想知道这是你哪里看的?能调用toString的都是封装类,本身就已经装箱了,这和字符串+变量有啥区别?我只知道要避免+操作能提升性能的。。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
尽量避免对变量的装箱:字符串+变量,较好的做法是:字符串+变量.ToString()
"尽量避免对变量的装箱:字符串+变量,较好的做法是:字符串+变量.ToString()"这是什么意思呢,求大神帮助
C# 变量类型转换 其他→字符串 ToString()
-
js把字符串转换成变量
js把字符串转换成变量js把字符串转换成变量
java三种字符串处理差别
java字符串三种处理方式区别String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全)
关于java synchronized 对于 String同步的测试及说明
1.测试代码 如下: public class TestStringSyn {    private String s1 = new String("abc");    private String s2 = new String("abc");    private String s3 = s1;    private int count = 0;        public void t...
python3.x 全局变量的设定和管理:涉及到“数值变量”、“字符串变量”和“字典变量”
python3.x 全局变量的设定和管理:涉及到“数值变量”、“字符串变量”和“字典变量”。
Java中double类型的变量转换成字符串是什么样子的,还是和原来数值相同吗?
javaSe-1.7 double d1 = 1; double d2 = 1.1; double d3 = 1.1111111111111111111111111111111; double d4 = 1.1111111111111111; double d5 = 1.111111111111111; double d6 = 1.11111
shell字符串变量的处理(截取,替换等)
一、字符串变量的常见操作 1.取长度 str="abcd" expr length $str   # 4 echo ${#str}       # 4 expr "$str" : ".*" # 4 2.查找字符串的位置 str="abc" expr index $str "a"  # 1 expr index $str "b"  # 2 expr index $str "
字符串中的乱码,VBA
把单元格的值赋值给字符串变量,再用msgbox函数现实字符串变量的值,竟然显示乱码
Len方法判断字符串变量的长度(VB6.0代码编写)
Len方法判断字符串变量的长度(VB6.0代码编写) Len方法判断字符串变量的长度 QQ223857666勾月
JAVA日期与字符串的转换
JAVA日期与字符串的转换 1) 将一个Date类型的变量转换为字符串 2) 将一个字符串转换Date类型的变量
对变量中的字符进行转义
第一种方式:递归转义/** * 递归方式的对变量中的特殊字符进行转义 * * @access public * @param mix $value * * @return mix */ function addslashes_deep($value) { if (empty($value)) { return $value; }
windows窗口创建代码
用vc编写创建窗口的代码,先对txt控件建立变量,对应变量设置为字符串型:m_strPassword,然后updatedata()一下,将用户输入的文字赋予m_strPassword变量,然后对字符串进行验证就可以了
字符串中,函数变量进行转义
{ "targets": 7, "orderable": false, "render": function(obj, type, full, meta){ var view = "<a class='btn btn-xs btn-success' onclick='viewRow(\"" +meta.row+ "\")'>&l
JS变量声明时使用name作为变量名自动转化为字符串
在JS中,定义一个数组的时候,如果使用的数组名为 name ,那么定义的数组将自动转化为字符 就像下面的代码,不论你给name赋什么类型的值,最后输出都是 string var name = ["aaa","bbb","ccc"]; conlose.log(typeof name);
C++ 字符串类,字符串变量与字符串数组
在C语言中,应用字符串需要定义字符数组,字符串需要存放在字符数组中。然后利用各种字符串操作函数对其操作。 http://blog.csdn.net/chaipp0607/article/details/56676791但是这种方式存在一些弊端,比如字符数组的大小是固定的,在进行字符连接或字符复制时,需要计算字符串与字符数组的长度,否则就可能发生一部分字符超出数组范围。为此,C++提供了一种新的数据
Cognos的高级报表制作技巧
Cognos的高级报表制作技巧  Cognos 支持三种类型的变量:字符串变量,布尔变量和语言变量。以下的三小节将分别介绍使用这三种变量制作动态报表的过程。
PHP字符串变量
字符串变量用于存储并处理文本。PHP中的字符串变量 字符串变量用于包含有字符的值。 在创建字符串之后,我们就可以对它进行操作了。您可以直接在函数中使用字符串,或者把他存储在变量中。 PHP并置运算符 在php中,只有一个字符串运算符。并置运算符(.)用于把两个字符串连接起来。 PHP strlen() 函数 有时候知道字符串的长度是很有用的。 strlen()函数返回字符串的长度(字符
Len方法判断字符串变量的长度(VB6.0源代码编写)Dim a As String
Len方法判断字符串变量的长度(VB6.0源代码编写)Dim a As String a = Text1.Text LSet a = "1234" Label1.Caption = "你的字符串变量长度是:" & Len(a) & "个字符"
delphi 对 ini文件的使用案列程序源代码
delphi 对 ini文件的使用案列程序源代码,可以保存字符串,整型变量,浮点型变量,布尔变量等。
字符串变量赋值时存储地址的变化
      在VB6中,我们并不关心字符串的存储问题,因为系统已经为我们处理好了这个问题。先看看下面的代码:Option Explicit Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long) Pri...
java中的字符串变量的比较
关于java String类的一些理解
R学习:自定义字符串变量名称并对该变量赋值
重点函数:assign     以下代码,循环生成变量a1,a2,a3,并对每一个变量生成5个随机数   for (i in 1:3){     assign(paste0("a",i), rnorm(5))   }    > a1 [1] -1.4157127 -1.0211311 -0.4418026  0.9879820 -1.2211304 > a2 [1]  1
变量和字符串拼接
python学习笔记(三) 练习3.数字和数学计算 print "I will now  countmy chickens:" print "Hens",25+30/6 print "Is it true that 3+2 print 3+2 print "Is it grester?",5>-2  PS D:\GigiLee\python\hardway_c
关于变量、对象(类)、String类的理解与区分
(1)什么是变量? 变量的本质就是内存单元。 如何理解以下语句:int a =6;含义:申明了一个变量名为a的int型变量,在申明的同时分配了内存单元,并将int型数值6,存入了该内存单元。int a = 6; int b = 5; a=b;含义:将内存单元b中的值5,存入内存单元a中,覆盖掉原有的值6。 测试代码:public class Test { public static
关于授权
关于授权1.         不要因为需要平衡,而给予一个人过于大的授权;这往往是导致独断专行的,团队合作意识不好的人员更加放纵自己。从而导致项目的严格失控。而且因为你前期已经给予他比较大的授权,一旦你收回授权,这将导致他的内心更加不满。这些事情还是需要逐步进行的。绝对不能给不合格的人,以超过他能力的授权。这将是一个失败的开始,而且团队内部将更加的不稳定。这是一种暂时解决方案,以牺牲三个月以后
如何让JS变量和字符串拼接后,是变量而不是字符串
zh_test = '你好';    tw_test = ‘你好’;    en_test = 'Hello';    // 然后再JS里尝试将前面的语言简写当成变量,拼接后面的字符串    var lang = 'zh';    var language = lang + '_test'; alert(language); // 结果 'lang_test'    // 然后alert得出的结果...
字符串常量和字符串变量C++
#include <iostream> #include <string> using namespace std; int main(){ string s1 = "abc";//字符串变量 char* s2 = "abc";//字符串常量,先在常量区存储"abc",s2直接指向常量区的&am
python单变量赋值,字符串赋值的变与不变
之前写过一篇关于python里的字符串的’=’的一个陷阱, 今天一个初学python的同学跟我讨论问题的时候,我们把这个问题扩展了一下。我们知道,对于列表变量来说,赋值等于地址的传递,那么在原先的变量上做修改,同样会反应到被赋值的新变量上来,具体如下:>>> a=[2] >>> b=a >>> a.append(3) >>> b [2, 3]那么,对于单个变量来说,还是这样吗?事实上不是了,如下:
C++中‘&’为什么不能取字符型变量的地址
今天突然发现一个奇怪的现象,就是在C++中用“&”是不能直接得到一个字符变量的地址的 #include<iostream> using namespace std; int main() { int a; char b; cout<<&a<<endl<<&b<<endl; printf("%p&quo
php中字符串引用变量或数组
array("one"=>"1"); //$var=="$array['one']";这会报错 $var=="{$array['one']}";这会报错 echo $var; 大括号表示中间为变量
python r不转义变量
呵呵嘿
C语言的变量的作用域和存储类型
介绍了C语言的变量的作用域和存储类型,一维字符数组和字符串变量等。
c++文件字符串分割函数
用于Microsoft Visual Studio文件读取是对文件中的字符串进行分割,然后赋值与各个变量。
Python中数据类型
计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。在Python中,能够直接处理的数据类型有以下几种: 一、整数 Python可以处理任意大小的整数,当然包括负整数,在Python程序中,整数的表示方法和数学上的写法一模一样,例如:1,10
js中引用jsp中的字符串变量时要加上引号
今天又碰到一个很坑的地方,下面用例子来阐述  首先我们在jsp语句中定义了两个变量,一个是int一个是String <% int a=1; String b="haha"; %> 然后我们在js中对两个变量进行alert alert(<%=a%>); alert(<%=b%>); 发现什么都没弹出,然后我们分别对a、b进行alert...
python 带变量的字符串输出
python format 格式化函数 主要适用于带变量的字符串输出 方法一 strs = {"you":"hello","me":"world"} print('i want to say {you} {me}'.format(**strs)) # strs 必须为一个字典 输出: i want to say hello world 方法二 print('i want to sa...
Python—变量与字符串
打开文件,写入字符串 file = open('/D/file.txt','w') file.write('hello world!') 字符串组合输出 a = 'plays ' b = 'guitar ' c = 'Mr.Charles.' d = c + a + b print(d) 数字转字符类型进行输出 num = 1 string = '1' num2 = int(str...
当json的键为变量而不是字符串时
-
【Python】内建的isinstance函数可以判断一个变量是不是字符串
来自于廖雪峰的Python3教程课后练习 如果list中既包含字符串,又包含整数,由于非字符串类型没有lower()方法,所以列表生成式会报错
相关热词 c#异步发送kafka c#窗体编号 c# 操作二进制文件 c# 反射 机制 c#线程 窗体失去响应 c#角度转弧度 c# 解析gps数据 c# vs设置 语法版本 c# json含回车 c#多线程demo

相似问题

2
C 怎样将字符串里的值设为变量?
0
初学字符串的实际工程问题4,5,6
2
求助一个Python 循环读取文件,并对读到的字符串进行赋值,然后进一步生成json file 的方法。
3
为什么,字符串数组不能直接作为参数传递,需要定义变量进行传递?
2
shell脚本怎么用MD5加密字符串?
1
多个因变量多个自变量的模型如何建模
1
如何批量地将数据集中的分类变量设置成因子变量
0
添加了环境变量还是错误: 程序包org.jfree.chart不存在
0
输入字符串a,用指针,将其中数字,字母分别剔除并按原来顺序字符串b和c里,最后分别输出a,b,c三个字符串
1
Vscode如何设置局部变量和全局变量为不同颜色
0
jmeter beanshell 对象序列化后保存变量,变量值为void
1
shell变量异常问题,echo变量右边的会替换左边的字符串
4
java字符串缓冲器问题
8
萌新小白:java中一个类可以作为对象,而变量是对象的属性,那么变量是否可以直接作为对象?
1
将vc中编辑框内的字符串写到matlab中的某个变量中
0
forfiles中的变量@fdate啥的不能赋值给其他变量吗?
1
间歇性出现:ora-01483:DATE或NUMBER赋值变量的长度无效
3
关于python的代码中,变量是否需要定义的疑问
1
关于使用静态变量储存数据和直接生成所需数据
1
QT调试时遇到 Signal name : SIGSEGV Signal meaning : Segmentation fault,但是我已经初始化了变量。