stringbuilder

StringBuffer

房东的猫 提交于 2020-03-28 15:01:10
1.StringBuffer StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。 在StringBuffer类中存在很多和String类一样的方法,这些方法在功能上和String类中的功能是完全一样的。 但是有一个最显著的区别在于,对于 StringBuffer 对象的每次修改都会改变对象自身,这点是和 String 类最大的区别。 另外由于StringBuffer是线程安全的。即全局范围的StringBuffer和StringBuilder,两个线程不能同时修改StringBuffer中的内容,而能同时修改StringBuilder中的东西。比如说一个StringBuffer对象,一个线程调用StringBuffer.append("a"),另一个线程调用StringBuffer.append("b"),那它的数据肯定包含"a",和"b"这两个字符。但同样的操作对StringBuilder来说,最终的结果是,数据可能只有"a",也可能只有"b"或同时有"a“也有”b",这是不确定的 1

String、Stringbuffer、StringBuffer回顾

∥☆過路亽.° 提交于 2020-03-28 14:56:45
前言 :   久了没用到,一下子就忘了。。,参考文章: https://www.cnblogs.com/su-feng/p/6659064.html 、 https://baijiahao.baidu.com/s?id=1629804867201303563&wfr=spider&for=pc 区别:这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。 一、运行速度:   StringBuilder > StringBuffer > String String最慢的原因 :    String为字符串常量,   StringBuilder和StringBuffer均为字符串变量,   String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。 二、 线程安全 :    StringBuilder是线程不安全的,而StringBuffer是线程安全的   不严格要求安全时,常用效率比较高的 StringBuilder 三、总结: 1、在字符串不经常发生变化的业务场景优先使用String(代码更清晰简洁)。如 常量的声明 ,少量的字符串操作(拼接,删除等)。 2、在 单线程 情况下,如有大量的字符串操作情况,应该使用StringBuilder来操作字符串。不能使用String"+"来拼接而是使用StringBuilder

Java中String、StringBuilder以及StringBuffer

风流意气都作罢 提交于 2020-03-27 08:33:39
原文出处: 海子 相信String这个类是Java中使用得最频繁的类之一,并且又是各大公司面试喜欢问到的地方,今天就来和大家一起学习一下String、StringBuilder和StringBuffer这几个类,分析它们的异同点以及了解各个类适用的场景。下面是本文的目录大纲: 一.你了解String类吗? 二.深入理解String、StringBuffer、StringBuilder 三.不同场景下三个类的性能测试 四.常见的关于String、StringBuffer的面试题(辟谣网上流传的一些曲解String类的说法) 若有不正之处,请多多谅解和指正,不胜感激。 一.你了解String类吗? 想要了解一个类,最好的办法就是看这个类的实现源代码,String类的实现在 \jdk1.6.0_14\src\java\lang\String.java 文件中。 打开这个类文件就会发现String类是被final修饰的: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character

Razor模板引擎

安稳与你 提交于 2020-03-23 07:39:55
1  Razor模板引擎的使用:     (1)常用三种模板引擎:       Razor 解释执行,微软内置、有提示,与JavaScript存在兼容性;       Nvelocity / Vtemplate 运行时动态执行,(比Razor更好)。     (2)Razor引擎的使用:        <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <h1>胡安定</h1> <div> <h2>@Model.Name</h2> <h2>@Model.Age</h2> </div> <div> <ul> @for (var i = 0; i < 10;i++ ) { <li>@i</li> } </ul> </div> </body> </html> razor1.cshtml using RazorEngine; using System; using System.Collections.Generic; using System.IO; using System.Linq; using

XNA 3.0 Game Programming Recipes翻译3-5

末鹿安然 提交于 2020-03-22 10:26:08
/*--> */ /*--> */ 3-5 .显示文本 问题 你想要显示文本,例如,显示一些说明或分数 方案 SpriteBatch 类,可以渲染文本。与纹理以几乎相同的方式。但不是用 Texture2D ,而是 SpriteFont ,包含你想使用的字体和字体大小。接下来,你可以渲染你的文本用 SpriteBatch.DrawString 方法。 如何运作 首先要创建 SpriteFont 文件。从 Content-> 添加 -> 新建项。从对话框选 Sprite Font ,给他一个名字如 ourFont ,点添加。 接下来应该会显示一个 XML 页面。设置 < FontName > 字体名 </ FontName > 属性那行是最重要的。中间更改为您的文本要呈现的字型。(译者注:我在测试的时候好像不支持中文字体) < Size > 32 </ Size > 属性允许你选择字体大小,不过也可以稍后缩放它。 注意 你可以指定安装在你电脑上的 TrueType 字体。查看安装字体列表,打开 X : \windows\fonts 文件夹,这里显示所有你可以指定的字体名。你可以用他们指定为你的 FontName 。 注意 如果在其他电脑上编译你的代码,要确保也安装了这个字体,否则会报错。 警告 把字体添加到你的游戏前,注意检查版权 创建了 SpriteFont 文件,你应该添加

java string常见操作题

こ雲淡風輕ζ 提交于 2020-03-20 21:18:27
1. 每个基本类型封装类都有将string转换为基本数据类型的方法 对于非常大的数字请使用Long,代码如下 int age = Integer.parseInt("10"); long id = Long.parseLong("190"); // 假如值可能很大. 2.将char字符转换为string string Chraracter.toString(char),将char转换为string 3.将stringBuilder转换为string,stringBuilder.tostring(); 4.string类常用操作方法 1)string[] string.spilt(" ");//根据空格符进行分割,返回值是string数组 2)string string.replaceAll("a","b");//将a取代成b 3)int string.indexOf(substr);//返回substr在string中第一个index 4)string string.subString(fromIndex.endIndex);//返回被截取的字符串 5)string string.subString(fromIndex);//从第几位开始往后截取 6)char string.charAt(index);返回第几个字符 7)一切的前提,谨记string是final类的,不能更改

C# 字符串操作(转)

落爺英雄遲暮 提交于 2020-03-18 14:51:19
http://www.cnblogs.com/candywyq/archive/2007/07/24/830021.html 1、从字符串中提取子串 StringBuilder 类没有支持子串的方法,因此必须用String类来提取。 string mystring="My name is ynn."; //Displays "name is ynn." Console.WriteLine(mystring.Substring( 3 )); //Displays "ynn" Console.WriteLine(mystring.Substring( 11,3 )); 2、比较字符串 String 类有四种方法:Compare( )、CompareTo( )、CompareOrdinal( )、Equals( )。 Compare( )方法是CompareTo( )方法的静态版本。只要使用“=”运算符,就会调用Equals( )方法,的以Equals( )方法与“=”是等价的。CompareOrdinal( )方法对两个字符串比较不考本地语言与文件。 示例: int result; bool bresult; s1="aaaa"; s2="bbbb"; //Compare( )method //result值为“0”表示等,小于零表示 s1 < s2,大于零表示 s1 > s2

Java 基础(四):从面试题看String

你说的曾经没有我的故事 提交于 2020-03-18 07:07:49
字符串介绍 String 类是 java.lang 包中的一个类,是我们日常中使用的非常多的一个类,它不是基础数据类型,底层实现是字符数组来实现的: /** The value is used for character storage. */ private final char value[]; String 类是由 final 修饰的,所以是无法被继承的,一旦创建了 String 对象,我们就无法改变它的值。因此, 它是线程安全的 ,可以安全地用于多线程环境中。 public final class String implements java.io.Serializable, Comparable<String>, CharSequence 下面我们通过几道面试题来学习 String 类 如何创建一个字符串 一般来说有三种: 通过 new 关键字通过构造方法去创建 通过双引号 “” 通过字符串连接符 + 和其余字符串进行拼接创建 说说这几种的区别 当通过 new 关键字调用无参构造时,仅仅在JVM的堆内存中创建了一个对象 通过 "" 创建对象的时候,如果字符串常量池存在该字符串,直接返回该字符串对象在字符串常量池的地址,否则创建一个新的字符串对象并存储在字符串常量池。 String s = new String("a") 创建了几个对象 当通过 new

AOP在日常项目场景使用(一)

大憨熊 提交于 2020-03-16 17:24:55
某厂面试归来,发现自己落伍了!>>> 直接上代码吧: /** *Aop运用:记录接口调用日志 * @author 咸蛋超人 */ @Component @Aspect @Slf4j public class ActApiLogAop { //实际项目路径 @Around("execution(* com.demo.rest.*.*(..)))") public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable { StringBuilder name = null; //Spring计时器:Stopwatch可方便的对程序部分代码进行计时(ms级别),适用于同步单线程代码块。 Stopwatch stopwatch = Stopwatch.createStarted(); try { name = new StringBuilder(pjp.getTarget().getClass().getSimpleName()).append(":").append(pjp.getSignature().getName()); Object o = pjp.proceed(); return o; } catch (Throwable throwable) { log.error("接口:" + name +

C#中字符和字符串总结

允我心安 提交于 2020-03-14 15:44:08
Char类是C#提供的字符类型,String是C#提供的字符串类型。 字符:   Char类在C#中表示一个Unicode字符。   Char类只定义一个Unicode字符。   Char类常用的方法及说明如下: 方 法 说 明 IsControl 指示指定的Unicode字符是否属于控制字符类别 IsDigit 指示某个Unicode字符是否属于十进制数字类别 IsHighSurrogate 指示指定的Char对象是否为高代理项 IsLetter 指示某个Unicode 字符是否属于字母类别 IsLetterOrDigit 指示某个Unicode 字符是属于字母类别还是属于十进制数字类别 IsLower 指示某个Unicode 字符是否属于小写字母类别 IsLowSurrogate 指示指定的Char对象是否为低代理项 IsNumber 指示某个Unicode 字符是否属于数字类别 IsPunctuation 指示某个Unicode 字符是否属于标点符号类别 IsSeparator 指示某个Unicode 字符是否属于分隔符类别 IsSurrogate 指示某个Unicode字符是否属于代理项字符类别 IsSurrogatePair 指示两个指定的Char对象是否形成代理项对 IsSymbol 指示某个Unicode 字符是否属于符号字符类别 IsUpper