博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于String StringBuffer 和 StringBulider
阅读量:4350 次
发布时间:2019-06-07

本文共 1704 字,大约阅读时间需要 5 分钟。

 

String是java中字符串中引用类型。

1.关于==和equals,String字符串的==通常用来判断两个字符串在内存中的地址是否一致,equals用来判断字符串中存放的内容是否一致。

public class Strings {    public static void main(String[] args) {        String str1 = "hello";        String str2 = "hello";        String str3 = new String("hello");        String str4 = "he"+"llo";        String str5 = "he";        str5 = str5 +"llo";                System.out.println(str1==str2);   //true;        System.out.println(str1==str3);   //false;        System.out.println(str1==str4);      //true;        System.out.println(str1==str5);   //false;        System.out.println("--------------------");        System.out.println(str1.equals(str2));   //true;        System.out.println(str1.equals(str3));   //true;        System.out.println(str1.equals(str4));   //true;        System.out.println(str1.equals(str5));   //true;    }}

2.关于字符串的运算效率问题。在字符串的多次循环叠加中直接使用"+"是非常耗费内存和时间的,因为每一次相加,系统都将创建一次对象。建议使用StringBuilder进行字符串运算,可以有效解决字符串相加效率不高的问题。

private static String stringCal() {   //3486ms        String s0 = "abcdefghijklmnopqrstuvwxyz";        String s = "";        for(int i=0;i<10000;i++) {            s += s0;//s = s + s0;        }        return s;    }        private static String stringBuildCal() { //2ms        String s0 = "abcdefghijklmnopqrstuvwxyz";        StringBuilder s = new StringBuilder();        for(int i=0;i<10000;i++) {            s.append(s0);        }        return s.toString();    }

 StringBuilder与 StringBuffer

    StringBuilder:线程非安全的

    StringBuffer:线程安全的

    当我们在字符串缓冲去被多个线程使用是,JVM不能保证StringBuilder的操作是安全的,虽然他的速度最快,但是可以保证StringBuffer是可以正确操作的。当然大多数情况下就是我们是在单线程下进行的操作,所以大多数情况下是建议用StringBuilder而不用StringBuffer的,就是速度的原因。

转载于:https://www.cnblogs.com/lxsir/p/6930783.html

你可能感兴趣的文章
取消chrome(谷歌浏览器)浏览器下最小字体限制
查看>>
模板方法模式
查看>>
什么是ECC内存?
查看>>
使用Visual Studio 2013进行UI自动化测试
查看>>
13-集体照
查看>>
读了曾国藩家书,,心态逐渐平和起来。搞技术的如果缺乏信念的指引,生活会很乏味无聊!...
查看>>
echart.js的使用
查看>>
自己动手写一个单链表
查看>>
常用正则表达式
查看>>
PHP 重置数组为连续数字索引的几种方式
查看>>
160809308周子济第六次作业
查看>>
大型Web应用运行时 PHP负载均衡指南
查看>>
为phpStorm 配置PHP_CodeSniffer自动检查代码
查看>>
测试工具网址大全(转)
查看>>
ServiceStack DotNet Core前期准备
查看>>
webpack中‘vant’全局引入和按需引入【vue-cli】
查看>>
Date、String和Timestamp类型转换
查看>>
计算机的组成
查看>>
关于render函数的总结
查看>>
JavaScript 小刮号
查看>>