java笔记(3):String(2)

参考资料:网易云网课李兴华:http://study.163.com/course/courseMain.htm?courseId=1455026

一、字符串一旦定义不可改变

一开始也许并不太好理解,先观察以下代码

public class B {    public static void main(String[] args) {String str = "Hello";str = str + "world";System.out.println(str);}
}

结果:

Helloworld

以上代码似乎主观上觉得String内容不是改变了吗,但并不是这样的,下面通过内存图分析

当执行str = str + “Word”语句时,原先指向“hello”的指针会断开,重新指向“hello”与“world”所连接的字符串,并且之前的“hello”与“world”成了垃圾。也就是说,字符串内容并没有改变,只是引用关系变了。

由于执行以上代码会产生垃圾,如果频繁使用“+”与字符串连接,所产生的垃圾的量也会是巨大的,会消耗大量资源,所以应当避免频繁该操作。

二、String类的特点

(1)String类对象的相等判断使用equal()方法完成,“==”实现的是地址数值的比较。

(2)字符串内容一旦声明则不可改变,String类对象内容的改变是依靠引用关系的改变实现的。

(3)String类有两种实例化方式,使用直接赋值可以不产生垃圾空间,并且可以自动入池,不要使用构造方法。

posted on 2018-04-07 20:19 辰歆 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/chenxina/p/8734548.html

java笔记(3):String(2)相关推荐

  1. Java笔记:String类

    1.String类是不可变类,一旦一个String对象被创建以后,包含在这个对象中的字符序列式不可改变的,直至这个对象被销毁. String s1 = "java"; s1 = s ...

  2. Java笔记-常用类String

    常用类String 在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串. String 创建的字符串存储在公共池中. import java.util.Arrays; ...

  3. java字符_Java String 类

    Java String 类 字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串. 创建字符串 创建字符串最简单的方式如下: St ...

  4. 10.4-全栈Java笔记:常用流详解(二)

    上节我们讲到「Java中常用流:文件字节流和字节数组流」,本节我们继续走起~  缓冲流 BufferedInputStream和BufferedOutputStream这两个流是处理流,通过内部缓存数 ...

  5. 9.1-全栈Java笔记: 容器泛型—认识Collection接口

    开发和学习中需要时刻和数据打交道,如果组织这些数据是我们编程中重要的内容. 我们一般通过"容器"来容纳和管理数据.   事实上,数组就是一种容器,可以在其中放置对象或基本类型数据. ...

  6. 4.8-全栈Java笔记:包机制

    包机制是java中管理类的重要手段. 开发中,我们会遇到大量同名的类,通过包我们很容易对解决类重名的问题,也可以实现对类的有效管理. 包对于类,相当于,文件夹对于文件的作用. package 我们通过 ...

  7. Java笔记07-List、Set、数据结构、Collections

    Java笔记07-List.Set.数据结构.Collections 主要内容 数据结构 List集合 Set集合 Collections 第一章 数据结构 2.1 数据结构有什么用? 当你用着jav ...

  8. Java笔记05-Collection、泛型、迭代器

    Java笔记05-Collection.泛型.迭代器 [Collection.泛型] 主要内容 Collection集合 迭代器 增强for 泛型 第一章 Collection集合 1.1 集合概述 ...

  9. Java笔记04-核心类库

    Java笔记04-核心类库 Object类 1.1 常用的包 java.lang包 -该包是Java语言中的核心包,该包中的内容由Java虚拟机自动导入 如:String类,System类等java. ...

最新文章

  1. Go 学习笔记(68)— goroutine 并发控制神器 Context
  2. Java 如何有效地避免OOM:善于利用软引用和弱引用
  3. python获取股票数据_python根据股票代码获取当前数据
  4. centos配置网络笔记
  5. 瞬时极性法对正负反馈的判断方法_何为反馈?如何判断?统统告诉你
  6. gitee项目能用SVN拉取吗_基于SpringBoot的车牌识别系统(附项目地址)
  7. SpringMVC静态资源问题
  8. CompletableFuture异步任务的简单使用
  9. ad15的stc元件库_AltiumDesigner常用元件库
  10. DM数据库体系结构介绍
  11. 代码大全(第2版)_2021【公式大全3.0版】【(数一)第371页】【(数二)第283页】【(数三)第324页】【有关矩阵秩的重要结论】6)~...
  12. 怎样把两个表格合并成一个
  13. 萌新卷妹带你逃出算法无名岛第五站
  14. wps怎么减少行间距_wps怎么设置行距_wps的行间距在哪怎么调整单倍行距及1.5倍行距_wps文字_office之家...
  15. pandas学习手记-柱状图
  16. 外贸询盘、对话、常用话术英语(上)
  17. 融云发送图片消息_融云开发者文档
  18. LaTeX中的分式及被分式压缩的数学符号
  19. JDBC的的CRUD
  20. 博客2.0时代——读者的赞赏,才是原创的动力

热门文章

  1. Oracle 游标的各种写法
  2. 关于flock文件锁的阻塞与非阻塞
  3. 实现手电筒Flash Light 关键代码
  4. Bootstrap 3 Typeahead
  5. R绘图系统中的坐标系
  6. 《大众创业做电商——淘宝与微店 开店 运营 推广 一册通》一一1.3 选择创业的行业...
  7. CPU-bound(计算密集型) 和I/O bound(I/O密集型)
  8. django之创建第6-1个项目-自定义过滤器
  9. Netflix是如何构建代码的
  10. mstsc /console 远程命令