`

关于String的终极解释

阅读更多
今天上来看到 Tao 兄大作 http://www.cnblogs.com/anytao/archive/2007/05/28/must_net_09.html 其中不少大牛都提出了对String这个类的认识,这里我只想提出自己的一点看法,取了个很拉风的标题,希望更多的人来关注技术的细节问题。

其实对String是引用类型的问题那是毋庸置疑的,但是String的不可改变很多同志都举错了例子,其实最好的例子就是找不到一个例子可以说明我们能够改变String的内部内容,因为对象的封性原则决定了,String类根本没有提供一个对外的接口(方法、属性)来改变其内部的数据,而所提供的诸如SubString等方法都是创建了一个新的String的事例并返回。

很多人被String所迷惑主要都是在对"abc"这样子的常量的问题没搞清楚,比如
String a="aaaa";
其实是我们用常量"aaaa"的地址给a赋值而已,这是典型的引用赋值,而在所有的引用类型中只有String具有"aaa"这样子的常量的表述方式,所以困惑由此而生。

分享到:
评论

相关推荐

    Rxjava+ReTrofit+okHttp终极封装(String方案).zip

    方案是为解决特定问题或达成特定目标而制定的一系列计划或步骤。它的作用是提供一种系统性的方法,以有效地应对挑战、优化流程或实现目标。以下是方案的主要作用: 问题解决: 方案的核心目标是解决问题。...

    终极骰子.rar

    WindowsMediaPlayer1.URL = "C:\Documents and Settings\Administrator\桌面\终极色子\Media\1683.mp3" End If End Sub Private Sub Command2_Click() Timer1.Enabled = False Dim image4_name, image5_name As ...

    RxjavaRetrofitDemo-string-master:Rxjava+ReTrofit+okHttp终极封装(String方案)

    Rxjava+ReTrofit+okHttp深入浅出-终极封装特殊篇(替换Gson返回) 介绍 封装原理博客专栏: 介绍如何放弃GsonConverterFactory,直接返回String,灵活我们的封装! 具备功能 1.Retrofit+Rxjava+okhttp基本使用方法 ...

    voca_rs:Voca_rs是受Voca.js,string.py和Inflector启发的终极Rust字符串库,实现为独立函数和外来类型(String和str)

    voca_rs Voca_rs是一个Rust库,用于处理...let string_in_words = split :: words ( & input_string); // => ["Lazy", "Load", "with", "XML", "Http", "Request", "and", "snake", "case"] let words_in_string = &

    C字符串函数对应的C++ string操作详解

    string是STL里的标准类,习惯了使用指针操作C的char *字符串,刚开始并不是很适应,主要原因是对string.h里的函数没有找到合适的C++替换方法,因此,对常用的sring.h里的函数替换说明如下: strcpy: str.substr() ...

    Mass String Processor:终极复制粘贴伴侣-开源

    它是一种文本处理器,旨在对基于单行的批量内容执行基本的字符串操作。

    Java/J2EE中文问题终极解决之道

    Java/J2EE中文问题终极解决之道 Java中文问题一直困扰着很多初学者,如果了解了Java系统的中文问题原理,我们就可以对中文问题能够 采取根本的解决之道。  最古老的解决方案是使用String的字节码转换,这种方案...

    猜字母游戏终极版

    public static void main(String[] args) { char[] arr = rand(); System.out.println(arr); Scanner sn=new Scanner(System.in); while(true){ System.out.println("输入字母"); String can = sn.next()....

    Android最强大的屏幕适配终极版简单易用

    /* * 以下可以写在任何地方,只要在生成View之前 */ InflaterAuto.init(new InflaterAuto.Builder() .width(720) ... public HashMap<String, String> getConvertMap() { return null;// 添加映射 } }

    J2EE中文问题终极解决之道

    最古老的解决方案是使用String的字节码转换,这种方案问题是不方便,我们需要破坏对象封装性,进行字节码转换。还有一种方式是对J2EE容器进行编码设置,如果J2EE应用系统脱离该容器,则会发生乱码,而且指定容器配置...

    v8n:终极JavaScript验证库,拥有超级简单的fluent API,可定制,可重复使用-javascript

    这与我们习惯于使用 i18n、a11y、l10n 看到的模式相同……可链式 API 使用可链式 API 非常轻松地创建验证: v8n() .string() .minLength(5) .first("H") 。 last("o") .test("你好"); // true 难以置信的流畅 将...

    算符优先分析算法(实验报告)

    三 设计源码 算符优先分析器 ... //文法终极符集 char input[100]; //文法输入符号串 char string[20][10]; //用于输入串的分析 int k; char a; int j; char q; int r; //文法规则个数 int r1;

    【Java面试+Java学习指南】 一份涵盖大部分Java程序员所需要掌握的核心知识

    string和包装类 final关键字特性 Java类和包 抽象类和接口 代码块和代码执行顺序 Java自动拆箱装箱里隐藏的秘密 Java中的Class类和Object类 Java异常 解读Java中的回调 反射 泛型 枚举类 Java注解和最佳实践 JavaIO...

    javascript 去字符串空格终极版(支持utf8)

    代码如下:/** 去字符两端空格 开始 *@author 敖士伟 *@version v1.0 *@date 2009/11/14 22:51 */ String.prototype.trim = function() { var r = this.replace(/(^\s*)|(\s*$)/g, “”); r = Lremoveb

    Ultimate-String-Array-List:developing开发Android应用程序时可能每天需要的字符串数组的完整列表

    终极字符串数组列表 作为一名Android开发人员,当我不得不担心要获取涉及诸如国家列表,州列表甚至是让用户输入出生年份之类的常见用例的数据时,我绝对讨厌它。 我们在大多数android应用程序中都看到了这一点,尤其...

    算符优先分析

    char string[20][10]; //用于输入串的分析 int k; char a; int j; char q; int r; //文法规则个数 int r1; int m,n,N; //转化后文法规则个数 char st[10][30]; //用来存储文法规则 char first[10][10]; //文法非终结...

    aes-256-java-bks

    aes-256-java-bks (JAVA) AES-256 加密/解密,使用 Bouncy Castle Keystore (BKS) 进行密钥存储... encryption (Key key, String IV, String FilePath) 注意:此示例是使用JDK7 、终极强度 JCE (JDK7) 和Eclipse构建的

    netty websocket通讯接收数据不完整问题

    这是一个java web项目集成了netty websocket的完整代码。java web项目作为服务器端和客户端进行数据通信。但是常常存在提示Max frame length of 65536 has been ...以下是终极解决办法,供大家参考和解决这样的问题。

    leetcode2sumc-leetcode:leetcode的所有练习题

    问题的终极指南 创建存储库是为了解决基本的面试问题,重点是数据结构和算法。 该文件维护每个程序的详细信息以及相关的源/其他信息。 当前使用 C# 编写的存储库(VS 2019 - .net 8.0 版) 二和 问题: 问题: 解决...

    解决Oracle字符串中包含数字、特殊符号的排序问题

     终极办法:  使用translate函数 可以发现,结果正常显示 。 以下附上translate使用方法 一、语法: TRANSLATE(string,from_str,to_str) 二、目的 返回将(所有出现的)from_str中的每个字符替换为to_str中的

Global site tag (gtag.js) - Google Analytics