验证String类型是不变对象

       我们都知道Java中的String类型对象是不变对象。也就是一旦创建了对象,就不能再改变其内容。到底不变量是怎么一回事儿,有些童鞋还存在疑惑。比如说,String s = "hello world";   s="happy new year";   字符串的值不是由"hello world" 变成"happy new year"了么,怎么说它是不变量呢?

      实际上“不变对象”指的是对象本身不可改变内容。这里s是指向字符串的引用,本身不是对象。s可以此时指向这个对象,彼时指向另外一个对象。而“hello world”和"happy new year"都是字符串对象。它们存储在内存空间的某处,它们一旦创建了,其内容便不可再改变。执行String s = "hello world";   s="happy new year";两句过程如下图1所示,虚线表示s初始时指向“hellw word”对象,实线表示后来指向 “happy new year”对象。 而不是如图2所示过程,s所指对象不变,对象本身内容变成了“happy new year”。

System.identifyHashCode() 方法返回Object的HashCode,即未被重写的原始hashCode,可以用来查看对象地址。

下面的程序可以验证一下。

public class StringFinalTest {
    public static void main(String[] args){
        String s1 = "hello world";
        String s2 = "hello world";  //两个字符串相等,实际上s1和s2指向同一个对象
        
        System.out.println(System.identityHashCode(s1)); //这里打印出的s1和s2的地址是一样的
        System.out.println(System.identityHashCode(s2));
        s2 = "happy new year";   //s2重新赋值,实际上是抛弃老对象,重新创建一个新对象。从对象的地址可以看出
        System.out.println(System.identityHashCode(s2));//这里打印的地址和原来的s2地址不一样了
    }
}

程序运行结果如下:

491044090
491044090
644117698

### 回答1: string touppercase()是一个字符串方法,用于将字符串中的所有小写字母转换为大写字母,并返回转换后的新字符串。例如: var str = "hello world"; var newStr = str.toUpperCase(); console.log(newStr); // 输出 "HELLO WORLD" ### 回答2: string touppercase()是一个字符串的方法,用于将字符串中的所有小写字母转换为大写字母。该方法返回一个新的字符串,其中包含原始字符串中的所有字符,但是所有小写字母都转换为对应的大写字母。 使用该方法很简单,只需将这个方法应用于一个字符串,即可得到转换后的新字符串。例如,我们有一个字符串str = "hello world",如果我们调用str.touppercase(),将返回一个新的字符串"HELLO WORLD",其中所有的小写字母"h"、"e"、"l"、"o"和"w"都被转换为对应的大写字母"H"、"E"、"L"、"O"和"W"。 string touppercase()方法只会作用于原始字符串中的小写字母,对于数字、特殊字符以及大写字母,不会有任何化。这意味着在转换后的字符串中,原始字符串中的大写字母和其他字符的大小写不会改。 使用该方法可以方便地将字符串中的小写字母转换为大写字母,实现大小写转换的需求。这在字符串比较、格式化输出和进行字符串操作时非常有用。比如,在用户输入的用户名进行验证时,可以使用该方法将用户名转换为统一的大写形式,以便进行比较。 需要注意的是,string touppercase()方法是不会修改原始字符串的,而是返回一个新字符串。因此,如果需要将转换后的字符串保存或使用,应该将其赋值给一个新的变量。例如,str = str.touppercase()。 ### 回答3: string的touppercase()方法是用来将一个字符串中的所有小写字母转换为大写字母的方法。该方法是字符串类的成员方法,可以直接通过一个字符串对象来调用。 touppercase()方法没有任何参数,它会遍历字符串中的每个字符,如果是小写字母就将其转换为对应的大写字母,如果不是小写字母则保持不变。转换后的结果被返回为一个新的字符串,原始字符串本身不会被修改。 例如,我们有一个字符串str = "hello world",调用str.touppercase()后,将返回一个新的字符串"HELLO WORLD"。 这个方法在处理需要大小写不敏感的字符串比较时非常有用。例如,我们可以将用户输入的用户名转换为大写再进行匹配,从而避免因为大小写不同而导致的错误。 另外,有一点需要注意的是,touppercase()方法只会将小写字母转换为大写字母,对非字母的字符,如数字、标点符号等,不会有任何影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值