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

张小明 2025/12/28 9:44:00
电子商务网站建设预算表,网站建设 青海,郑州谷歌优化外包,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进行投诉反馈,一经查实,立即删除!

专业网站设计服务商东莞市做阀门的网站

1. 为什么这个毕设项目值得你 pick ?安全生产水利工程智慧管理系统的设计与实现,摆脱了传统“烂大街”选题的窠臼。该系统主要功能模块涵盖人员管理、设备管理及任务分配等多个方面,在提高工作效率的同时保证生产安全。普通员工和部门领导的角色分工明确…

张小明 2025/12/27 13:49:49 网站建设

外贸经常用的网站苏州网站建设专家

玩转STM32 HAL库:从迷茫到精通的全攻略 一、为什么HAL库看起来如此令人困惑? 如果你曾盯着STM32CubeMX生成的上千行代码感到不知所措,或者翻阅数百个HAL函数却不知道从何入手,别担心——几乎每个STM32开发者都经历过这个阶段。 HA…

张小明 2025/12/27 12:14:12 网站建设

泉州做企业网站建设注册管理中心网站首页

RS-fMRI培训 直播-RS-fMRI统计分析及作图入门 mALFF : 平均ALFF 计算方法:全脑各个体素的ALFF相加再除以体素个数 头动矫正删除标准: 大于3mm或者3度理论上予以排除 大于2.5mm或者2.5度根据个人标准决定是否排除查看扫描质量,扫描时要注意扫到…

张小明 2025/12/27 17:47:08 网站建设

网站建设投放广告做网站哪家好 要钱

番茄小说下载器终极指南:智能调度与个性化输出的高效解决方案 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 您是否曾为喜爱的番茄小说无法离线阅读而烦恼?是否担心…

张小明 2025/12/28 7:53:39 网站建设

沈阳网站建设方案推广网站建设学习网公司有哪些

图解minicom:为什么老派工具仍是嵌入式开发的“定海神针”?你有没有遇到过这样的场景——手里的开发板连不上网络,SSH登不进去,屏幕一片漆黑,唯一的希望就是那根不起眼的USB转TTL串口线?这时候,…

张小明 2025/12/27 11:54:15 网站建设

长春火车站是南站还是北站微信公众号推广文案范文

本文以通俗易懂的方式解释了AI和大模型领域的15个核心术语,包括序列化、反序列化、解析、解析器、块、词元、向量、嵌入、检索增强生成(RAG)、提示词、温度、TOP P、LLM、预训练和微调等。作者旨在帮助初学者理解这些"行业黑话",消除学习障碍&…

张小明 2025/12/26 11:45:42 网站建设