印象很深的是关于Java 字符串的一些很有意思的 ,首先对于字符串String 对象,API中已经用final对该类class进行修饰,无法继承,而且字符串是一个final常量,new出了一个新的字符串后,是无法改变的,如果改变了字符串,只是重新创建了一个字符串对象,而原字符串对象并未改变。
比如 String s = “abcd ”; s= “mmnnoqp”。在内存中”abcd”也是一个对象,改为”mmnnopq”后,字符串”abcd”并未发生变化,只不过是s的引用地址变为了新的对象”mmnnoqp”。
而且java程序中,如果有相同的字符串对象,指引的地址为同一个对象,可以用范例String s1 =”abc”; String s1=”abc”; System.out.println(s1==s2);结果为true。这样可以节省更多的内存空间。
有一个重点就是,在新建字符串对象的时候。String s =”abc”; 和String s = new String(“abc”); 是不一样的,前者只是在内存中创建了一个对象,而后者创建了两个对象,一个为new String(),一个为”abc”;创建的过程是不一致的。
作为最常见也是最常用的对象,JAVA已经封装了一系列的方法供调用来处理字符串对象,每一个都应该熟记和熟练应用,比如去掉空格的trim(),还有类型转换的方法String.valueOf(); 多学并多练。
|
|