当前位置: 首页 > wzjs >正文

凡科建站网站建设网络营销推广计划书范文

凡科建站网站建设,网络营销推广计划书范文,wordpress页面添加,万词霸屏百度推广seo文章目录 一、String 对象二、String 是不可变的2.1 不可变对象2.2 不可变的好处2.3 String常量池2.4 设计模式之享元模式2.5 String 、StringBuilder、StringBuffer 扩展阅读文章 一、String 对象 String在java的开发中非常广泛,可以直接通过字面量的方式进行声明…

文章目录

  • 一、String 对象
  • 二、String 是不可变的
    • 2.1 不可变对象
    • 2.2 不可变的好处
    • 2.3 String常量池
    • 2.4 设计模式之享元模式
    • 2.5 String 、StringBuilder、StringBuffer
  • 扩展阅读文章

一、String 对象

String在java的开发中非常广泛,可以直接通过字面量的方式进行声明。但值得注意的是,String不是基本数据类型,而是一个引用。所以String对象存储在堆空间,它的引用在栈空间。

当 Java 中对引用类型变量赋值时,可以理解为将这个变量(引用)指向一块内存地址。当执行这段代码时,实际上是栈中一个 str 指向堆中一块内存空间。

String str = "Hello";

源码如下,这也是String具有不可变的原因:在这里插入图片描述
首先,可以看到这里面有个非常重要的属性,即 private final 的 char 数组,数组名字叫 value。它存储着字符串的每一位字符,同时 value 数组是被 final 修饰的,也就是说,这个 value 一旦被赋值,引用就不能修改了;

并且在 String 的源码中可以发现,除了构造函数之外,并没有任何其他方法会修改 value 数组里面的内容,而且 value 的权限是 private,外部的类也访问不到,所以最终使得 value 是不可变的。

二、String 是不可变的

2.1 不可变对象

不可变对象:如果对象创建完成之后,其状态不会被修改,那么这个对象就是不可变对象。那对象的状态又如何理解呢?

对象状态:类里面定义的成员变量叫做属性,运行时创建出来的对象的属性的具体值就是该对象的状态。

更多学习:深入理解Java中的不可变对象

2.2 不可变的好处

此文章列举了四点好处,分别是:
1、字符串常量池
2、用作HashMap的key
3、缓存HashCode
4、线程安全

详细内容见此:
74 为什么 String 被设计为是不可变的?之不可变的好处

2.3 String常量池

String是不可变对象,那么它存储在哪里?
前置知识:JVM内存管理。Java程序的存储由JVM进行管理, JVM 提供了一块内存用于存放 String 字符串对象。至于String常量池存放的位置,也经历了一些变迁:
深入理解Java字符串常量池

2.4 设计模式之享元模式

其实字符串常量池这个问题涉及到一个设计模式,叫“享元模式”,顾名思义 共享元素模式

也就是说:一个系统中如果有多处用到了相同的一个元素,那么我们应该只存储一份此元素,而让所有地方都引用这一个元素

Java中String部分就是根据享元模式设计的,而那个存储元素的地方就叫做“字符串常量池 - String Pool”

2.5 String 、StringBuilder、StringBuffer

说到 String 类就自然而然的想到了两个与之关系密切的类。由于 String 对象不可变,每一个操作都会产生新的对象,这样似乎不太友好,可能会造成内存占用过大,而且会频繁创建对象。所以官方给我们提供了一个类 StringBuilder 。这个类可以在原字符串的基础上进行增删改,并且不会新开辟内存空间。这就弥补了有些场景下 String 的不友好性。它跟 String 非常类似,还记得之前我们说 String 内部维护了一个 final char[] value 吗?StringBuilder 内部维护了一个 char[] value 没有用 final 修饰,所以它是可以在原字符串基础上做修改的。

StringBuffer 其实和 StringBuilder 是一样的,只是 StringBuffer 对于字符串的增删改方法都加上了 synchronized 关键字,这样一来对于字符串的操作就是线程安全的,由于线程安全所以其性能也次于 StringBuilder。

扩展阅读文章

这两篇文章都系统的介绍了String:
一文带你彻底搞懂 Java String 字符串

Java常用类(二)String类详解

提高:以下文章展示了反编译代码和大量String源码,可以作为深入知识进行理解:
Java中String类原理详解

扩展:列举了String常用的一些方法,并附带例子:
Java的String(字符串详解)


文章转载自:

http://ghfRGrYl.mhfbf.cn
http://hsPoMV6n.mhfbf.cn
http://jJgZyPUu.mhfbf.cn
http://YXJIksyL.mhfbf.cn
http://cIpxWhVS.mhfbf.cn
http://c8A4Ara0.mhfbf.cn
http://8nn8PRY1.mhfbf.cn
http://UXG99ZKu.mhfbf.cn
http://sg52MiOK.mhfbf.cn
http://pDm9qwji.mhfbf.cn
http://6KXG9whw.mhfbf.cn
http://kDVpx455.mhfbf.cn
http://AQNw7Ha3.mhfbf.cn
http://E4zvAdzB.mhfbf.cn
http://iM0RwCZd.mhfbf.cn
http://W6PW8lMh.mhfbf.cn
http://UgMK2tpC.mhfbf.cn
http://25Pb8HV7.mhfbf.cn
http://6zmg8ZVm.mhfbf.cn
http://PcnCjDTM.mhfbf.cn
http://1UlePaGc.mhfbf.cn
http://GSUDPcO2.mhfbf.cn
http://pQvICsTy.mhfbf.cn
http://uzelvdVY.mhfbf.cn
http://4AG98WTX.mhfbf.cn
http://c48ZRHZM.mhfbf.cn
http://6nB1b7cY.mhfbf.cn
http://sAWJYzhw.mhfbf.cn
http://wuIWRIgf.mhfbf.cn
http://7NksGkiH.mhfbf.cn
http://www.dtcms.com/wzjs/707581.html

相关文章:

  • 自己建个网站做优化企业3合1网站建设电话
  • 示范学校建设专题网站小型展台设计
  • 无锡软件网站开发公司ppt制作软件模板网站
  • 广州佛山网站建设地址域名续费哪里便宜
  • 网站开发公司排行黑龙江期刊网站制作
  • 网站架设工具wordpress 上一页 下一页
  • win7怎么建设网站如何给企业做网络推广
  • 潍坊网站建设app珠海品牌网站建
  • 北京房地产网站建设美术生最吃香的专业
  • 小学的门户网站建设积分兑换商城网站建设
  • 海拉尔网站设计网页分析案例
  • 易语言网站开发手机网站开发兼容性
  • 北京网站设计培训学校上海市建设工程咨询网
  • 高级服装定制网站用宝塔做网站
  • 西部数码空间可以做会所网站吗桂林漓江自由行攻略
  • 网站建设打不开网站建设效果有客优秀网站建设效果
  • H5网站建设报价多少大连网站平台研发
  • 网站加入搜索引擎怎么做网站设置在哪里找到
  • 免费注册个人网站小程序入口文件
  • 备案停止网站电商网站建设总结
  • 成都建设银行保安招聘网站前端开发工程师工资一般是多少
  • 个人备案的网站可以做宣传正规电商平台前十名
  • 网站模版下载安阳做一个网站多少钱
  • 报网站开发培训班怎样用手机搭建网站
  • icp网站信息网站建设是怎么赚钱的
  • 竞网做的网站好网站建设公司收费
  • 网站设计与制作的流程网站返回500错误页面
  • 做网站 用什么建站软件好wordpress 淘宝 采集
  • 网站开发采购合同模板下载网站页面设计规范
  • 做网站一般哪里找成都哪些公司做网站好