- 浏览: 1070794 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (639)
- 服务器配置篇 (58)
- hibernate篇 (14)
- spring篇 (33)
- struts篇 (28)
- JS篇 (46)
- 其他技术篇 (46)
- 数据库集群配置 (6)
- JAVA基础相关 (48)
- 分布式框架HadHoop的应用 (2)
- FLEX篇 (8)
- SQLSERVER技术 (32)
- Android学习 (13)
- amchart学习笔记 (1)
- openfire+smark搭建即时通讯 (9)
- Linux学习 (18)
- Oracle数据库 (15)
- 网站优化技术 (12)
- mysql数据库 (2)
- 项目学习总结 (18)
- 工具类(JAVA) (12)
- 工具类(JS) (2)
- 设计模式 (10)
- Lucene学习 (24)
- EJB3学习 (6)
- Sphinx搜索引擎 (3)
- 工作中用到的软件小工具 (5)
- .NET (49)
- JAVA 连接SQLSERVER2008步骤 (1)
- MongoDB (19)
- Android手机开发 (3)
- Maven (6)
- vue (9)
- Shiro (4)
- mybatis (3)
- netty框架 (1)
- SpringCloud (3)
- spring-cloud (7)
- Git (1)
- dubbo (2)
- springboot (13)
- rocketmq (1)
- git学习 (2)
- kafka服务器 (2)
- linux (10)
- WEB系统辅助项目 (1)
- jenkins (2)
- docker (4)
- influxdb (3)
- python (2)
- nginx (1)
最新评论
-
jiangfuofu555:
这样数据量大,效率怎么样?
sqlserver 实现分页的前台代码 以及后台的sqlserver语句 -
w156445045:
博主请问下,如何做到实时的刷新呢,
另外我后台是Java 谢谢 ...
web 版本的汽车仪表盘,非常好看。还有各种图形 -
jackyin5918:
<transportConnector name=&qu ...
ActiveMQ的activemq.xml详细配置讲解 -
握着橄榄枝的人:
你这个不是spring1.x的吧
spring1.x使用AOP实例 -
xiaophai:
全乱套了!
openfire+spark搭建完美的及时通讯
string是恒定的(immutable)
和其他类型比较,string最为显著的一个特点就是它具有恒定不变性:我们一旦创建了一个string,在managed heap 上为他分配了一块连续的内存空间,我们将不能以任何方式对这个string进行修改使之变长、变短、改变格式。所有对这个string进行各项操作(比如调用ToUpper获得大写格式的string)而返回的string,实际上另一个重新创建的string,其本身并不会产生任何变化。
String的恒定性具有很多的好处,它首先保证了对于一个既定string的任意操作不会造成对其的改变,同时还意味着我们不用考虑操作string时候出现的线程同步的问题。在string恒定的这些好处之中,我觉得最大的好处是:它成就了字符串的驻留。
CLR通过一个内部的interning table保证了CLR只维护具有不同字符序列的string,任何具有相同字符序列的string所引用的均为同一个string对象,同一段为该string配分的内存快。字符串的驻留极大地较低了程序执行对内存的占用。
对于string的恒定性和字符串的驻留,还有一点需要特别指出的是:string的恒定性不单单是针对某一个单独的AppDomain,而是针对一个进程的。
下面简单介绍一些高效地使用string的一些小的建议:
1. 尽量使用字符串(literal string)相加来代替字符串变量和字符创相加,因为这样可以使用现有的string操作指令进行操作和利用字符串驻留。
比如:
优于
s = s + "def";
2. 在需要的时候使用StringBuilder对string作频繁的操作:
由于string的恒定性,在我们对一个string进行某些操作的时候,比如调用ToUpper()或者ToLower()把某个string每个字符转化成大写或者小写;调用SubString()取子串;会创建一个新的string,有时候会创建一些新的临时string。这样的操作会增加内存的压力。所有在对string作频繁操作的情况下,我们会考虑使用StringBuilder来高效地操作string。StringBuilder之所以能对string操作带来更好的performance,是因为在它的内部维护一个字符数组,而不是一个string来避免string操作带来的新的string的创建。
StringBuilder是一个很好的字符累加器,我们应该充分地利用这一个功能:
sb.Append(str1 + str2);
最好写成
sb.Append(str1);
sb.Append(str2);
避免创建一个新的临时string来保存str1 + str2。
再比如下面的Code
sb.Append(WorkOnString1());
sb.Append(WorkOnString2());
sb.Append(WorkOnString3());
最好写好吧WorkOnString1,WorkOnString2,WorkOnString3定义成:
WorkOnString2(StringBuilder sb)
WorkOnString3(StringBuilder sb)
3. 高效地进行string的比较操作
我们知道,对象之间的比较有比较Value和比较Reference之说。一般地对Reference进行比较的速度最快。对于string,在字符串驻留的前提下,我们可以把对Value的比较用Reference的比较来代替从而会的Performance的提升。
此外,对于忽略大小写的比较,我们最好使用string的static方法Compare(string strA, string strB, bool ignoreCase)。也就是说:
最好写成
发表评论
-
C# WinForm程序如何与js交互
2012-07-15 22:28 2321一、建立网页 <html ... -
SQLITE FOR .NET4.0使用说明以及DLL
2012-06-28 22:07 1206SQLITE FOR .NET4.0使用说明以及DLL -
WinForm中TabControl的一些事件写法(C#)
2012-06-27 20:41 9881在TabControl控件中并没提供单个选项卡的Click事件 ... -
C# 通过字符串动态创建一个窗体
2012-06-27 20:27 1755private void button1_Click(obje ... -
vs2010 打包winform成EXE文件
2012-04-20 14:03 1656见附件 -
C#中DataGridView控件60招
2012-01-13 09:36 65571. DataGridView当前的单元格属性取得、变更 2 ... -
单击dataGridView某一行时将dataGridView当前选择行的某列值赋值给某个文本框
2012-01-13 09:19 2462SelectedRows和CurrentRow之间的区别 ... -
c# winform开发-datagridview开发
2012-01-13 09:18 1730datagridview 操作详解 目录: 1、 取得或 ... -
C# 中奇妙的函数. String Split 和 Join
2011-10-25 10:51 1115很多时候处理字符串数据,比如从文件中读取或者存入 - 我们可能 ... -
asp.net中web.config配置节点大全详解
2011-10-25 10:16 1375asp.net中web.config配置节点大全详解 2 ... -
Entity Framework in ASP.NET MVC Application (三)
2011-05-10 20:31 2471In the previous tutorial you im ... -
Entity Framework in ASP.NET MVC Application (二)
2011-05-10 20:29 1703In the previous tutorial you cr ... -
Entity Frame Work 4.1调用存储过程
2011-05-10 20:24 2145在这个问题上,琢磨了很久了。今天终于找到了调用的方法。 存储 ... -
entity-framework (code-first)实例开发(一)
2011-05-09 20:40 2753The Contoso University Web Appl ... -
使用ef4.1 的dbcontext进行数据库循环操作
2011-04-24 23:06 2269如果你想要调用一个类的方法进行循环操作:官方的例子: Dis ... -
使用EF 4.1的DbContext
2011-04-24 22:36 3643简述:EF4.1包括Code First和DbContext ... -
ADO.NET 访问存储过程
2011-04-24 22:15 1591ADO.NET 访问存储过程其实也比较简单,但是有些小细节部分 ... -
JAVA与.NET的相互调用——通过Web服务实现相互调用(附原代码)
2011-04-24 20:58 1289JAVA与.NET是现今世界竞争激烈的两大开发媒体,两者语言有 ... -
视图模式/视图->视图包
2011-04-24 20:16 1477ASP.NET MVC(自V1起)就支持一个带控制器和视图的V ... -
SkipRequestValidation] –> [AllowHtml]
2011-04-24 20:15 1437ASP.NET MVC内置了防止HTML和跨站脚本注入攻击的支 ...
相关推荐
在.NET程序设计中,String类型是...总之,在.NET环境中正确使用String类型意味着理解其内在机制,包括不可变性、字符串池、以及如何高效地进行字符串操作。通过遵循这些最佳实践,可以编写出更高效、更易于维护的代码。
【字符串比较】在.NET开发中,字符串比较是一个常见的任务,`String.Compare()`方法是我们经常会用到的一个工具。...同时,理解`string`和`System.String`的差异,可以更好地进行跨语言交互和代码的可读性设计。
当处理大量数据或文件时,使用`FileStream`、`MemoryStream`等流对象可以更高效。例如,你可以将字符串写入`MemoryStream`,然后用`MemoryStream.ToArray()`获取字节数组。 5. **XML 或 JSON 序列化** 如果你的...
通过掌握这些基本的转换方法,你可以轻松地在VB.NET中实现不同进制之间的互转。在实际项目中,理解这些基础知识对于编写高效、可靠的代码至关重要。当然,如果你的代码还有待优化,可以参考更多的在线资源、社区讨论...
5. **字符串操作**:VB.NET的字符串拼接通常使用&,C#使用+或string.Format。 6. **异常处理**:VB.NET的On Error和Try...Catch...Finally对应C#的try-catch-finally结构。 7. **属性和方法**:VB.NET的Property和...
通过以上介绍可以看出,在.NET框架中实现简繁体转换是非常简单且高效的。开发者只需要调用相应的API即可完成转换工作,无需深入了解内部的具体实现细节。这种高封装性和易用性使得.NET成为开发跨语言、跨文化应用...
1. **JavaScriptSerializer**: .NET Framework提供了一个内置的`System.Web.Script.Serialization.JavaScriptSerializer`类,可以方便地将DataTable转换为JSON字符串。首先,我们需要创建一个JavaScriptSerializer...
它极大地简化了JSON数据与.NET自定义类型之间的转换,无论是解析JSON字符串为.NET对象,还是将.NET对象序列化为JSON字符串,Json.NET都能提供高效、灵活且强大的功能。 在标题"Json.net Json数据转换的利器"中,...
另外,如果你的应用场景需要更稳定、更高效的HTML到PDF转换,可以考虑使用专门的第三方库,如wkhtmltopdf(基于Webkit的开源工具)、PDFSharp或iTextSharp等。这些库通常能提供更好的转换质量和更快的速度,但需要...
在这个特定的场景中,我们关注的是一个使用VB.NET实现的“简繁体互转工具”。 简繁体互转是中文信息处理中的一个重要功能,它涉及到中文字符集的转换。在简体中文和繁体中文之间进行转换,对于跨地区、跨文化的沟通...
通过索引器和搜索器的使用,我们可以轻松地将数据库或其他数据源中的数据转换为可搜索的索引,并为用户提供快速、精确的搜索体验。分析器在处理查询和索引构建时起着关键作用,确保了文本的正确处理和匹配。这种组合...
在ASP.NET开发中,有时我们需要为用户提供简体中文与繁体中文之间的切换功能,以便不同地区的用户能够方便地浏览网站内容。本项目是基于C#编程语言实现的一个网站简体到繁体的转换解决方案,作者自述在研究了网上的...
在生产环境中,可以考虑使用Redis的Sorted Set或HyperLogLog数据结构来高效地计算在线用户。 8. **异常处理和优化**: 由于网络问题或Redis服务器故障,操作可能会失败。因此,需要在代码中加入适当的异常处理,...
在.NET开发环境中,将HTML页面转换为PDF格式是一项常见...选择合适的库并正确地集成到ASP.NET项目中,可以高效地实现这一功能。在处理过程中,要注意版权问题,因为某些库可能需要购买商业许可证才能在生产环境中使用。
ASP.NET 下的 AJAX 使用主要涉及前端 JavaScript 和 jQuery 技术,以及后端 ASP.NET 的交互。AJAX(Asynchronous JavaScript and XML)允许我们在不刷新整个页面的情况下与服务器进行异步数据交换,提升用户体验。...
在ASP.NET MVC框架中,Redis常被用作一个高效的缓存和会话存储解决方案,以提升网站性能并处理用户登录状态。本示例将详细解释如何利用Redis来实现在ASP.NET MVC应用程序中用户登录功能,并保持用户的登录状态,同时...
在ASP.NET环境中高效地应用Excel文件是Web开发中常见的需求,尤其在数据分析、报表生成以及数据导入导出等场景。本教程将详细讲解如何利用ASP.NET进行Excel的基本操作,包括读取外部数据、数据处理及数据挖掘,并...
通过学习和掌握VB.NET的新特性,程序员能够更好地应对日益增长的技术挑战,开发出更加健壮和高效的软件产品。无论是从个人职业发展的角度来看,还是从团队项目的长远发展来看,转向VB.NET都是一项明智的选择。