电子商务网站建设预算表网站建设 青海

张小明 2025/12/30 21:40:06
电子商务网站建设预算表,网站建设 青海,郑州谷歌优化外包,wordpress中用户注册在 Java 中#xff0c;String 是最常用的核心类之一#xff0c;用于表示不可变的字符序列#xff0c;属于 java.lang 包#xff08;无需手动导入#xff09;。以下从核心特性、常用操作、内存原理、常见陷阱等维度全面解析#xff1a;一、核心特性1. 不可变性#xff08…在 Java 中String是最常用的核心类之一用于表示不可变的字符序列属于java.lang包无需手动导入。以下从核心特性、常用操作、内存原理、常见陷阱等维度全面解析一、核心特性1. 不可变性ImmutableString对象一旦创建其内部的字符数组char[] valueJava 9 改为byte[]以节省内存就无法修改。所有看似修改的操作如substring、replace都会返回新的 String 对象原对象保持不变。String s hello; s world; // 实际创建了新对象原hello仍存在 System.out.println(s); // 输出hello world不可变的好处线程安全多线程访问无需同步可哈希hashCode缓存计算一次后永久不变适合作为 HashMap 键字符串常量池复用。2. 字符串常量池String PoolJVM 为优化内存在方法区元空间中维护一个字符串常量池直接赋值String s abc先检查常量池存在则复用引用不存在则创建新对象放入常量池new String(abc)会创建两个对象常量池的 abc 堆中的 String 对象堆对象引用常量池的字符数组。String s1 abc; String s2 abc; String s3 new String(abc); System.out.println(s1 s2); // true常量池同一对象 System.out.println(s1 s3); // false堆 vs 常量池 System.out.println(s1.equals(s3)); // true内容相等3. 常用创建方式方式说明示例直接赋值优先使用常量池效率最高String s java;new String()堆中创建新对象避免使用除非特殊场景String s new String(java);String.valueOf()安全转换基本类型 / 对象避免 nullString s String.valueOf(123);字符数组构造从字符数组创建char[] arr {j,a,v,a}; String s new String(arr);二、常用方法高频方法功能示例length()获取字符串长度java.length(); // 4charAt(int index)获取指定索引字符java.charAt(1); // aequals(Object obj)比较内容区分大小写Java.equals(java); // falseequalsIgnoreCase()忽略大小写比较Java.equalsIgnoreCase(java); // truecontains(CharSequence s)判断是否包含子串hello.contains(ell); // trueindexOf(String s)查找子串首次出现索引无则返回 -1hello.indexOf(l); // 2lastIndexOf(String s)查找子串最后出现索引hello.lastIndexOf(l); // 3substring(int start)从 start 截取到末尾hello.substring(2); // llosubstring(int start, int end)截取 [start, end) 区间hello.substring(1,3); // eltrim()去除首尾空白Java 11 用strip()更通用 java .trim(); // javareplace(CharSequence old, CharSequence new)替换所有匹配子串java.replace(a, o); // jovosplit(String regex)按正则分割字符串a,b,c.split(,); // [a,b,c]toLowerCase()/toUpperCase()转小写 / 大写Java.toLowerCase(); // javaisEmpty()/isBlank()判断空字符串Java 11isBlank()包含空白 .isBlank(); // trueconcat(String str)拼接字符串等价于但效率低a.concat(b); // ab三、内存与性能优化1. 避免频繁拼接号循环中使用拼接字符串会创建大量临时对象效率极低。推荐使用StringBuilder非线程安全或StringBuffer线程安全// 低效 String s ; for (int i 0; i 1000; i) { s i; // 每次创建新 String } // 高效 StringBuilder sb new StringBuilder(); for (int i 0; i 1000; i) { sb.append(i); // 仅操作一个字符数组 } String result sb.toString();2.intern()方法手动将堆中的 String 对象加入常量池复用引用String s1 new String(java); String s2 s1.intern(); // 将 s1 内容加入常量池并返回常量池引用 String s3 java; System.out.println(s2 s3); // true适用场景大量重复字符串如数据库返回的重复字段减少内存占用。3. Java 9 优化byte[]替代char[]Java 9 前String用char[]存储每个字符占 2 字节Java 9 后根据字符编码自动选择byte[]Latin-1 占 1 字节UTF-16 占 2 字节节省内存。四、常见陷阱1.vsequals()比较对象引用是否指向同一内存地址equals()比较字符串内容String 重写了equals()方法。String s1 new String(abc); String s2 new String(abc); System.out.println(s1 s2); // false不同对象 System.out.println(s1.equals(s2)); // true内容相同2. 空指针风险调用null的 String 方法会抛出NullPointerException建议先判空String s null; // 错误NPE // s.equals(abc); // 正确常量在前或先判空 abc.equals(s); // false Objects.nonNull(s) s.equals(abc); // 更严谨3.substring()内存泄漏Java 7 前Java 7 前substring()会复用原字符串的char[]即使截取小片段也会持有原大字符串的引用导致内存泄漏。Java 7 已修复创建新的char[]。五、总结String是不可变的所有修改操作返回新对象优先使用直接赋值常量池避免new String()拼接字符串用StringBuilder单线程/StringBuffer多线程比较内容用equals()比较引用用大量重复字符串用intern()优化内存。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建设 李奥贝纳长沙定制网页设计

Multisim 14.2 安装避坑指南:为什么你的电脑跑不动仿真软件?你有没有遇到过这种情况——兴致勃勃下载了Multisim 14.2,跟着网上的multisim14.2安装教程一步步操作,结果点开安装包直接闪退?或者好不容易装上了&#xff…

张小明 2025/12/29 2:29:44 网站建设

吉林省建设行业继续教续网站wordpress忘记了密码

Layui-Admin后台管理系统:快速构建企业级管理平台的实战指南 【免费下载链接】Layui-admin 一个现成的 LayuiVue的后台系统模板,开箱即用 项目地址: https://gitcode.com/gh_mirrors/layu/Layui-admin 当企业需要快速搭建内部管理系统时&#xff…

张小明 2025/12/28 18:36:39 网站建设

沈阳网站推广公司排名运营管理

近年来,大语言模型智能体正从静态模型向具备自主推理与工具调用能力的动态系统演进,而程序性记忆(procedural memory)作为内化“如何做”知识的关键机制,有望显著减少冗余试错、提升任务泛化能力。然而,现有…

张小明 2025/12/28 12:18:35 网站建设

网站接入商排名网站游戏网站怎么做

USB3.0引脚定义与连接器选型:硬件工程师必须掌握的实战指南你有没有遇到过这样的情况?一个看似完美的USB3.0电路板设计,烧录固件后却始终无法跑通高速模式——设备枚举正常,但传输速率被“降级”到USB2.0的480 Mbps。反复检查代码…

张小明 2025/12/30 7:00:47 网站建设

怎么免费推广自己网站网络工程师工作

零基础玩转Umi-OCR:PDF双层识别与自动化处理实战 【免费下载链接】Umi-OCR Umi-OCR: 这是一个免费、开源、可批量处理的离线OCR软件,适用于Windows系统,支持截图OCR、批量OCR、二维码识别等功能。 项目地址: https://gitcode.com/GitHub_Tr…

张小明 2025/12/30 2:37:30 网站建设

德州市建设局质监站网站网站后台漏洞

TypeScript SDK类型安全实战:从避坑到精通的架构思维 【免费下载链接】ag-ui 项目地址: https://gitcode.com/gh_mirrors/agu/ag-ui 在AI应用开发中,类型安全不再是可有可无的装饰,而是构建可靠系统的基石。ag-ui TypeScript SDK通过…

张小明 2025/12/29 10:32:31 网站建设