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

怎样做影视网站不侵权站群系统哪个好用

怎样做影视网站不侵权,站群系统哪个好用,网站建设 外文文献,为什么大家用wordpress建网站一、String的不可变性 为什么不可变&#xff1f;设计者认为可变字符串带来的灵活性<不可变带来的好处 好处&#xff1a;安全&#xff08;网络传参、URL、HashMap key&#xff09;、线程安全&#xff08;多线程共用没风险&#xff09;、可缓存&#xff08;字符串常量池复用…

一、String的不可变性

为什么不可变?设计者认为可变字符串带来的灵活性<不可变带来的好处

好处:安全(网络传参、URL、HashMap key)、线程安全(多线程共用没风险)、可缓存(字符串常量池复用)

Java中的字符串是不可变的,但是你说oi,咋可能,我这不是变了吗,

public class Demo{public static void main(String[] args){String name = "ikun";name = "not_ikun";}
}

但这并不是字符串不变性的含义,它并没有改变内存中的字符串对象,而是在内存中的指向变为了not_ikun

我们接着说为什么不想更改这些字符串对象呢,因为它使Java能够保存大量的内存空间,比如当我们用anothername时,就会指向之前的ikun,如果不这样的话,我们在使用成百上千上万...个不同的变量,它们都具有完全相同的字符串值,就指向了同一个字符串值,大大节省了内存空间

public class Demo{public static void main(String[] args){String name = "ikun";String anothername = "ikun";}
}

怎么保证不可变?

        final类:String被final修饰,不能被继承,不允许被改写

        final数组:底层存储时private final char[](或新版本byte[] + 编码标志),指向地址不可变

        没有暴露修改的方法:String没有setCharAt()之类的方法,内部方法也都是产生新对象,不会修改原对象

        hashCode缓存:不可变可以安全缓存哈希值,提升性能。

二、字符串常量池(String Pool)

Java会把字面量字符串(也就是一样的)放在常量池中复用,通过==比较可以验证是否时同一个对象

public class Demo{public static void main(String[] args){String name = "ikun";String anothername = "ikun";System.out.println(name == anothername); // 这里打印会是true}
}

三、new String 与字面量的区别

public class Demo{public static void main(String[] args){String name = "ikun";String anothername = new String("ikun");System.out.println(name == anothername); // 这里打印会是false}
}

“ikun”在常量池,new String("ikun")在堆里重新创建一个对象,可以说它们并不是同一个ikun😏

四、常用的String方法

方法作用例子
length()获取长度"abc".length() -> 3
charAt(int)返回指定位置字符"abc".charAt(1) -> 'b'
equals(Object)比较内容"abc".equals("abc")
equalsIgnoreCase()忽略大小写比较"Abc".equalsIgnoreCase("abc")
substring(int) / substring(int, int)截取子串"abcdef".substring(2) -> "cdef""abcdef".substring(2,4) -> "cd"
indexOf(String)子串首次出现位置"abcabc".indexOf("bc") -> 1
lastIndexOf(String)子串最后出现位置"abcabc".lastIndexOf("bc") -> 4
contains(String)是否包含子串"abc".contains("b") -> true
startsWith()是否以...开头"abc".startsWith("a") -> true
endsWith()是否以...结尾"abc".endsWith("c") -> true
replace()替换子串"abcabc".replace("a","x") -> "xbcxbc"
split(String)按分隔符拆分"a,b,c".split(",") -> ["a","b","c"]
trim()去除首尾空格" abc ".trim() -> "abc"
toUpperCase()转大写"abc".toUpperCase() -> "ABC"
toLowerCase()转小写"ABC".toLowerCase() -> "abc"
valueOf()基本类型转字符串String.valueOf(123) -> "123"

 五、可变字符串StringBuilder 和 StringBuffer

Java-String StringBuilder StringBuffer有什么区别-CSDN博客

  • String 不可变,频繁拼接低效。

  • StringBuilder:可变,单线程推荐,效率高。

  • StringBuffer:可变,线程安全,老项目用得多,新项目少。

http://www.dtcms.com/a/434870.html

相关文章:

  • 项目中HTTP协议处理部分
  • 二元锦标赛:进化算法中的选择机制及其应用
  • 2026新选题-基于Python的老年病医疗数据分析系统的设计与实现(数据采集+可视化分析)
  • Linux权限核心:chmod命令终极指南(文字与数字法详解)
  • 太原网站建设总部地址青岛seo推广专员
  • 藏语自然语言处理入门 - 4 找相似的句子
  • ubuntu 环境
  • php网站开发 多少钱服务器网站建设软件有哪些
  • Python 图像中矩形四角二维坐标和归一化一维坐标相互转换
  • 做电商网站有什么用万网网站建设教程
  • 网站 设计风格wordpress 加链接地址
  • 中山市企业网站seo营销工具wordpress 搜索 自定义字段
  • 05、Python从入门到癫狂:数据库操作与其他
  • 网页制作报价徐州seo外包平台
  • jQuery简化了事件的绑定和解除,常用的方法有.on()和.off()
  • [Dify] 知识库切片逻辑解析:段落切分 vs 语义块切分,该怎么选?
  • [Windows] 发票识别工具。支持xml、pdf、ofd文件
  • 流量安全——基于Sentinel实现限流,熔断,降级
  • Semaphore GUI 详细介绍
  • 中山网站优化营销做专业课视频课的网站
  • 元表纪基于一个Excel表实现一键发货、打印面单
  • 企业外贸网站建设建设一个直播网站多少钱
  • 网站建设需要基础吗电子商务网站建设与管理是什么
  • 【LeetCode - 每日1题】换水问题1
  • 资深面试之MySQL 问题及解答(一)
  • 自定义脚手架
  • 云空间布置网站seo顾问赚钱吗
  • 网络设备中的硬件转发和软件转发
  • 永州建设网站公司网站开发费的税率是多少
  • js时间格式转化器