`
xianglachigen
  • 浏览: 11808 次
社区版块
存档分类
最新评论

黑马程序员——使用String类时的一个注意事项

阅读更多
android培训java培训、期待与您交流!      

  因为String是不可变对象,如果多个字符串进行拼接,将会形成多个对象,这样可能会造成内存溢出,会给垃圾回收带来工作量,如下面的应用最好不要用String
   
public class StringTest
{
public static void main(String[] args)
{
String s = "";

for(int i = 0; i < 100; i++)
{
//以下语句会产生大量的对象
//因为String为不可变对象
//存在大量的对象相加或者相减的时候,一般不建议使用String
//建议使用StringBuffer 或 StringBuilder 优先选择StringBuilder
//采用JProbe可以对内存进行分析


s += i;
}
}
}

再介绍下StringBuffer 和 StringBuilder

StringBuffer称为字符串的缓冲区,它工作的原理是:预先申请一块内存,存放字符列,如果字符序列满了,会重新改变缓存区的大小,以容纳更多的字符序列。StringBuffer是可变对象,这个是和String最大的不同。

StringBuilder和StringBuffer的区别是StringBuffer中所有的方法都是同步的线程安全的,但速度慢,StringBuilder的速度快,但是不是线程安全的,这也是为什么上面要首选StringBuilder


---------------------- android培训java培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net/heima----------------------
分享到:
评论

相关推荐

    黑马程序员Javase笔记

    "黑马程序员Javase笔记"是一个自学者在学习黑马程序员提供的Java全套课程过程中整理的笔记,主要涵盖了Java Standard Edition (Javase) 的核心内容。下面将详细讨论其中的关键知识点。 首先,DOS命令是操作系统中的...

    黑马程序员入学Java精华总结

    ### 黑马程序员入学Java精华总结 #### 一、Java概述与基础知识 1. **何为编程?** - 编程是指通过编写计算机能够理解的指令来解决问题或完成特定任务的过程。这些指令通常被组织成算法,并使用某种编程语言实现。...

    黑马程序员入学Java知识——精华总结

    "黑马程序员入学Java知识——精华总结"这份文档很可能包含了Java编程的基础到进阶的知识点,旨在帮助初学者快速掌握Java的核心概念和技能。 1. **Java基础知识**:Java是一种面向对象的语言,它的基础包括语法、...

    数据结构学习——我的string类

    在C++编程中,"数据结构学习——我的string类"是一个典型的任务,旨在帮助初学者理解数据结构的基本概念,并通过实现自定义的string类来深化对C++的理解。下面将详细讨论这个主题,以及相关的知识点。 首先,让我们...

    黑马程序员_java8新特性详解笔记和源码

    Java 8是Java语言发展的一个重要里程碑,引入了许多创新性的特性和改进,极大地提升了开发效率和代码质量。本文将深入探讨Java 8的三大关键新特性:接口的默认方法实现、Lambda表达式以及一系列相关的变化。 一、...

    struts2学习笔记黑马程序员

    当需要支持同时上传多个文件时,可以修改Action类中的方法签名,接受类型为`List&lt;File&gt;`或`List&lt;String&gt;`的对象作为参数。 #### Struts2框架中的Ajax开发 **JSON介绍** JSON(JavaScript Object Notation)是一种...

    【黑马面试宝典】虐面试官神器之必备黑马程序员面试宝典V2.51

    继承则是通过一个类(子类)继承另一个类(父类)的属性和方法,实现代码复用。多态允许不同类型的对象对同一消息作出不同的响应,提高代码的灵活性。抽象则是在不考虑具体实现的情况下定义对象的公共行为,通常通过...

    黑马程序员_(适合初学者入门的Java基础视频)

    3. **面向对象编程**:深入讲解Java的核心特性——面向对象编程,包括类的定义、对象的创建与使用、封装、继承和多态等概念。 4. **数组和集合框架**:介绍数组的使用,以及ArrayList、LinkedList、HashSet、...

    零点起飞学C之文本处理——string类PPT学习教案.pptx

    《零点起飞学C之文本处理——string类详解》 在C++编程中,文本处理是一项基础且重要的任务,而C++中的`std::string`类则是处理文本数据的得力工具。`string`类提供了丰富的功能,使得操作字符串变得更加方便和安全...

    2018年黑马程序员全套java教程第2天笔记+讲义+源码

    本套教程“2018年黑马程序员全套Java教程”针对的是第二天的学习内容,主要涵盖了数据类型转换、算数运算符、比较运算符、逻辑运算符以及三元运算符,同时也涉及到了简单方法的定义与调用。这些知识点是Java编程的...

    黑马程序员_Java基础辅导班教程课件[第01期]第13天

    【Java基础辅导班教程...总之,"黑马程序员_Java基础辅导班教程课件[第01期]第13天"是一个全面覆盖Java基础的教程,结合课堂内容、视频、源码和图解,为学员提供了丰富的学习资源,助力他们稳步迈进Java开发的世界。

    黑马程序员-----javaBean的操作类学习笔记

    - JavaBean可以通过`PropertyUtils`或`BeanUtils`类(来自Apache Commons BeanUtils库)进行便捷的属性读写,例如`BeanUtils.copyProperties(destBean, srcBean)`可以复制一个bean的所有属性到另一个bean。...

    黑马程序员面试宝典(java)2018版

    《黑马程序员面试宝典(java)2018版》是一本专门为Java开发者准备的面试指南,涵盖了大量在面试过程中可能遇到的问题和知识点。这本宝典由黑马程序员机构精心编纂,汇集了近万名学员的实际面试经验,为求职者提供了...

    黑马程序员----泛型学习注意点

    当定义一个类时,可以声明类型参数,如`class Box&lt;T&gt;{}`,这里的`T`是类型参数,可以在类的方法或成员变量中使用。 4. 泛型方法: 方法也可以有类型参数,如`public &lt;T&gt; void print(T item) {}`,这里的`&lt;T&gt;`声明...

    黑马程序员Python视频中代码、课后习题等第三章内容

    在“黑马程序员Python视频中代码、课后习题等第三章内容”这个资源包中,我们聚焦于Python编程语言的学习,特别是围绕第三章的主题展开。Python作为一种高级编程语言,以其简洁明了的语法和强大的功能深受程序员喜爱...

    string类的构造方法_String类重要吗_C++_STL_string_

    在C++标准模板库(STL)中,`std::string`类是一个极其重要的容器,它专门用于存储、操作和管理字符串数据。标题中的“string类的构造方法”揭示了我们要探讨的核心内容——如何初始化和创建`std::string`对象。`std...

    Java程序员面试宝典——2012版

    《Java程序员面试宝典——2012版》是一份针对Java程序员面试的全面指南,旨在帮助准备面试的程序员深入理解和掌握Java的核心概念和技术。以下是对该文档标题、描述及部分内容涉及的重要知识点的详细解析: ### Java...

    String类——按照类的方式进行动态管理字符串1

    【String类】是C++中的一个核心类模板,它提供了对字符串的高效管理和操作。String对象可以被视为一种动态的字符数组,它允许我们方便地处理文本数据。在C++中,String类通常位于`std`命名空间下,因此在使用之前...

    黑马程序员之C#编程学习笔记

    C#是一种面向对象的编程语言,由微软公司开发,...总的来说,"黑马程序员之C#编程学习笔记"是一个很好的起点,涵盖了C#编程的基础内容,通过学习,你可以逐步掌握C#语言,为进一步学习更复杂的应用开发打下坚实基础。

Global site tag (gtag.js) - Google Analytics