stringbuilder

Android有用代码片段(四)

走远了吗. 提交于 2020-03-01 02:46:42
不知不觉中,就收集了超过60条的自己感觉有意思的代码片段,分为三篇文章: android有用代码片段 、 Android有用代码片段(二) 、 Android有用代码片段(三) 这三篇,今天,开始第四篇的整理! 六十一、Android创建桌面快捷方式: [java] view plain copy print ? /** * 为程序创建桌面快捷方式 */ private void addShortcut(){ Intent shortcut = new Intent( "com.android.launcher.action.INSTALL_SHORTCUT" ); //快捷方式的名称 shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name)); shortcut.putExtra( "duplicate" , false ); //不允许重复创建 //指定当前的Activity为快捷方式启动的对象: 如 com.everest.video.VideoPlayer //注意: ComponentName的第二个参数必须加上点号(.),否则快捷方式无法启动相应程序 ComponentName comp = new ComponentName( this .getPackageName(), "

stringbuilder

不问归期 提交于 2020-03-01 00:28:53
StringBuilder 类是可变的。它是 String 的对等类,它可以增加和编写字符的可变序列,并且能够将字符插入到字符串中间或附加到字符串末尾(当然是不用创建其他对象的) StringBuilder 的构造方法: 构造方法 说明 StringBuilder() 构造一个其中不带字符的 StringBuilder,其初始容量为 16 个字符 StringBuilder(CharSequence seq) 构造一个 StringBuilder,它包含与指定的 CharSequence 相同的字符 StringBuilder(int capacity) 构造一个具有指定初始容量的 StringBuilder StringBuilder(String str) 并将其内容初始化为指定的字符串内容 StringBuilder 类的常用方法: 方法 返回值 功能描述 insert(int offsetm,Object obj) StringBuilder 在 offsetm 的位置插入字符串 obj append(Object obj) StringBuilder 在字符串末尾追加字符串 obj length() int 确定 StringBuilder 对象的长度 setCharAt(int index,char ch) void 使用 ch 指定的新值设置 index

[Java]String,StringBuilder和StringBuffer的区别

为君一笑 提交于 2020-02-29 17:06:22
String :字符串常量。通常在字符串不经常变化的时候使用。 StringBuilder 和 StringBuffer :字符串缓冲变量 且其中 StringBuffer 中的大多数方法都采用了 synchronize 关键字进行了修饰,因此适用于多线程环境下在字符缓冲区进行操作,并且时线程安全的。 StringBuilder 适用于单线程下在字符缓冲区进行大量操作,主要原因是它的方法没有 synchronized 关键字修饰(线程不安全) StringBuilder 和 StringBuffer 的“可变”特性总结如下: (1)append,insert,delete方法最根本上都是调用System.arraycopy()这个方法来达到目的 (2)substring(int, int)方法是通过重新new String(value, start, end - start)的方式来达到目的。因此,在执行substring操作时,StringBuilder和String基本上没什么区别。 总的来说,三者在执行速度方面的比较:StringBuilder > StringBuffer > String 贴一段代码来看一下面试题字符串拼接中怎么使用: /* * 请实现一个函数,将一个字符串中的每个空格替换成“%20”。 * 例如,当字符串为We Are Happy

Java基础09常用类

你。 提交于 2020-02-29 14:54:14
一,string类 package com.atguigu.java; import org.junit.Test; /** * String的使用 * * @author shkstart * @create 2019 上午 10:26 */ public class StringTest { /* 结论: 1.常量与常量的拼接结果在常量池。且常量池中不会存在相同内容的常量。 2.只要其中有一个是变量,结果就在堆中。 3.如果拼接的结果调用intern()方法,返回值就在常量池中 */ @Test public void test4(){ String s1 = "javaEEhadoop"; String s2 = "javaEE"; String s3 = s2 + "hadoop"; System.out.println(s1 == s3);//false final String s4 = "javaEE";//s4:常量 String s5 = s4 + "hadoop"; System.out.println(s1 == s5);//true } @Test public void test3(){ String s1 = "javaEE"; String s2 = "hadoop"; String s3 = "javaEEhadoop"; String s4 =

关于String StringBuffer StringBuilder

余生长醉 提交于 2020-02-29 11:09:46
0. String对象的创建 1、关于类对象的创建,很普通的一种方式就是利用构造器,String类也不例外:String s=new String("Hello world"); 问题是参数"Hello world"是什么东西,也是字符串对象吗?莫非用字符串对象创建一个字符串对象? 2、当然,String类对象还有一种大家都很喜欢的创建方式:String s="Hello world"; 但是有点怪呀,怎么与基本数据类型的赋值操作(int i=1)很像呀? 在开始解释这些问题之前,我们先引入一些必要的知识: 1. Java class文件结构 和常量池 我们都知道,Java程序要运行,首先需要编译器将源代码文件编译成字节码文件(也就是.class文件)。然后在由JVM解释执行。 class文件是8位字节的二进制流 。这些二进制流的涵义由一些紧凑的有意义的项 组成。比如class字节流中最开始的4个字节组成的项叫做魔数 (magic),其意义在于分辨class文件(值为0xCAFEBABE)与非class文件。class字节流大致结构如下图左侧。 其中,在class文件中有一个非常重要的项—— 常量池 。这个常量池专门放置源代码中的符号信息(并且不同的符号信息放置在不同标志的常量表中)。如上图右侧是HelloWorld代码中的常量表(HelloWorld代码如下)

ASP.NET之JSONHelper操作

a 夏天 提交于 2020-02-29 05:43:09
   之前说到了Ext.Net中GridPanel行取值的问题( Ext.Net开发_GridPanel行选中取值 ),涉及到checkBox操作时,要留个心眼注意下取值的区别!返回值是Json格式。 现在用到了Json,就想自己也整一个Josn帮助类。在线帮助的资料很多,在巨人的身上东凑西凑也凑一个用用。     一、介绍   JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集   方法有多种,我这边用到是 DataContractJsonSerializer 类,官方解释:“NET Framework 4 .NET Framework 3.5 Silverlight 将对象序列化为 JavaScript 对象表示法 (JSON),并将 JSON 数据反序列化为对象”。   其命名空间如下:   注意:如果是.NET Framework 3.5 光引用了“System.Runtime.Serialization”了这个还不行。运行时会发现: 所以还要引用下“System.ServiceModel.Web”即可。 .NET Framework 4则在System.Runtime.Serialization下。

JAVA常用API

不羁的心 提交于 2020-02-28 21:48:53
StringBuffer 1.StringBuffer概述 为了解决String字符串操作导致的内存冗余,提高效率,Java中提供了StringBuffer和StringBuilder来操作字符串,并且提供了很多方法,便于程序员开发。 StringBuffer和StringBuilder中 都有char类型可变长数组作为字符串的保存空间。使用到的方法类型和ArrayList类似。 StringBuffer 线程安全,效率较低 StringBuilder 线程不安全,效率较高 2.StringBuffer构造方法 构造方法 Constructor StringBuffer(); 创建一个未存储任何字符串信息的空StringBuffer空间,底层初始化一个16个字符 char类型数组 StringBuffer(String str); 根据提供的String类型字符串创建对应的StringBuffer空间,底层char类型数组的容量会根据str.length + 16决定,并且保存对应的str。 1.3添加方法 append(Everything) 在StringBuffer和StringBuilder对象中,添加另外的数据,并且当做字符串处理。 insert(int index, Everything) 在StringBuffer和StringBuilder对象中,在指定的下标位置

如何在Java中填充字符串?

♀尐吖头ヾ 提交于 2020-02-28 05:52:46
有一些简单的方法可以在Java中填充字符串吗? 似乎应该在类似StringUtil的API中使用某些东西,但是我找不到能做到这一点的东西。 #1楼 这怎么样 字符串为“ hello”,所需填充为15,左侧填充为“ 0” String ax="Hello"; while(ax.length() < 15) ax="0"+ax; #2楼 简单的事情: 该值应该是一个字符串。 如果不是,则将其转换为字符串。 如 "" + 123 或 Integer.toString(123) // let's assume value holds the String we want to pad String value = "123"; 子字符串从值长度char索引开始,直到填充的结束长度: String padded="00000000".substring(value.length()) + value; // now padded is "00000123" 更确切 向右垫: String padded = value + ("ABCDEFGH".substring(value.length())); // now padded is "123DEFGH" 左垫: String padString = "ABCDEFGH"; String padded = (padString

Java中String、StringBuffer、StringBuilder的区别

拈花ヽ惹草 提交于 2020-02-28 05:33:58
关于这三者的应用场景: String:适用于少量的字符串操作的情况; StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况; StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况; 这三者场景不同,是由其多方面原因造成的。 1.运行的速度快慢:StringBuilder > StringBuffer > String 1.1 String最慢的原因:String为字符串常量,使用常量类型的字符数组保存值,其对象一旦创建,将不可更改。 String a="hello"; a=a+" world"; 这样的操作,貌似a变量被改变了,实际这只是一种假象,JVM对于这几行代码是这样处理的:首先创建一个String对象a,并把“hello”赋值给a,然后JVM又创建了一个新的对象也名为a,把原来的a的值和“ world”加起来再赋值给新的a,而原来的a就会被JVM的垃圾回收机制(GC)给回收掉了,所以,a并没有被更改,也就是前面说的String对象一旦创建之后就不可更改了。所以,Java中对String对象进行的操作实际上是一个不断创建新的对象并且将旧的对象回收的一个过程,执行速度很慢。 1.2 而StringBuffer和StringBuilder都继承自AbstractStringBuilder类

Java代码优化的35个细节,你用了吗?

一个人想着一个人 提交于 2020-02-28 00:57:40
前言 代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。 代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提升的。 代码优化的目标是: 减小代码的体积; 提高代码运行的效率; 代码优化细节; 1、尽量指定类、方法的final修饰符 带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String,整个类都是final的。为类指定final修饰符可以让类不可以被继承,为方法指定final修饰符可以让方法不可以被重写。如果指定了一个类为final,则该类所有的方法都是final的。Java编译器会寻找机会内联所有的final方法,内联对于提升Java运行效率作用重大,具体参见Java运行期优化。此举能够使性能平均提高50% 。 2、尽量重用对象 特别是String对象的使用,出现字符串连接时应该使用StringBuilder/StringBuffer代替