您身边的网站建设专家
成功案例

【建站服务】博罗爱采购会员/58同城会员账户/百度竞价开户/百家号注册运营/推广公司网站-网站营销全网推广-域名申请

日期: 2022-09-21 02:35:25 浏览数:3


上往建站提供服务器空间服务商百度快照排名网站托管百度推广运营,致力于设计外包服务与源代码定制开发360推广搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。


博罗爱采购会员/58同城会员账户/百度竞价开户/百家号注册运营/推广公司网站-网站营销全网推广

网站建设.png

  1. 执行结果为:

    falsetruefalse

    解析:

    String str1 = "hello world"; 和 String str3 = "hello world"; 都在编译期间生成了字面常量和符号引用,运行期间字面常量 "hello world" 被存储在运行时常量池(当然只保存了一份)。通过这种方式来将 String 对象跟引用绑定的话,JVM 执行引擎会先在运行时常量池查找是否存在相同的字面常量,如果存在,则直接将引用指向已经存在的字面常量;否则在运行时常量池开辟一个空间来存储该字面常量,并将引用指向该字面常量。 

     

    众所周知,通过 new 关键字来生成对象是在堆区进行的,而在堆区进行对象生成的过程是不会去检测该对象是否已经存在的。因此通过 new 来创建对象,创建出的一定是不同的对象,即使字符串的内容是相同的。

    阿颖

       阿颖

      553***793@qq.com

    4年前 (2018-08-13)
  2.    GritHub

      147***6963@qq.com

    39

    String 类中 concat() 方法和 + 号的区别:

    pubic class Demo{
        pulic satic void main(String[] args){
            String str1 = "a".concat("b").concat("c");
            String str2 = "a"+"b"+"c";
            String str3 = "abc";
            String str4 = new String("abc");
            System.out.println(str1 == str2); //运行结果为false
            System.out.println(str1 == str3); //运行结果为false
            System.out.println(str2 == str3); //运行结果为ture
            System.out.println(str2 == str4); //运行结果为false
            System.out.println(str1.equals(str4)); //运行结果为true
        }}

    执行结果为:

    falsefalsetruefalsetrue

    解析:

    首先关于 new 出来的对象和 String s = "字符串" 的 == 执行结果为 false 就不多赘述了,因为 == 比较的是两个对象的地址值,equals() 比较的是字面值。那么 concat 方法和 + 号的区别在这里有体现了,我们查看concat方法的源码可以看到,它是通过复制数组在通过 char 数组进行拼接生成一个新的对象,所以地址值会有变动,而 + 号不会。(作者很菜,初来乍到,前辈多包涵)


Java StringBuffer 和 StringBuilder 类

当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。


和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。




在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer。


StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。


由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。


实例

public class RunoobTest{

    public static void main(String args[]){

        StringBuilder sb = new StringBuilder(10);

        sb.append("Runoob..");

        System.out.println(sb);  

        sb.append("!");

        System.out.println(sb); 

        sb.insert(8, "Java");

        System.out.println(sb); 

        sb.delete(5,8);

        System.out.println(sb);  

    }

}



以上实例编译运行结果如下:


Runoob..

Runoob..!

Runoob..Java!

RunooJava!

然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。


Test.java 文件代码:

public class Test{

  public static void main(String args[]){

    StringBuffer sBuffer = new StringBuffer("菜鸟教程官网:");

    sBuffer.append("www");

    sBuffer.append(".runoob");

    sBuffer.append(".com");

    System.out.println(sBuffer);  

  }

}

以上实例编译运行结果如下:


菜鸟教程官网:www.runoob.com

StringBuffer 方法

以下是 StringBuffer 类支持的主要方法:


序号 方法描述

1 public StringBuffer append(String s)

将指定的字符串追加到此字符序列。

2 public StringBuffer reverse()


博罗爱采购会员/58同城会员账户/百度竞价开户/百家号注册运营/推广公司网站-网站营销全网推广


上往建站提供搭建网站域名注册官网备案服务网店详情页设计企业网店专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管网页美工排版,致力于域名申请竞价托管软文推广全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机网站推广百度竞价托管网站建设上网建站推广服务网络公司有哪些等业务,专业团队服务,效果好。

服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)


全国咨询热线:400-111-6878

地址:全国各地都有驻点商务

Copyright © 2021 通陆科技

网站建设上往建站