易截截图软件、单文件、免安装、纯绿色、仅160KB

Java基础问题:java.lang.String

原文: http://forum.javaeye.com/viewtopic.php?t=17912搂主的问题问的含含糊糊:flyjie给出了非常详细的解释,不过就是没有解释String实例化的特殊方面以及Intern()方法的含义-------------------------------------------------------------------------------------------------------------------------------------------------------------------------java代码: String str ; 这样声明str它只支是一个对象的reference,不会产生实际的对象。如果没有初始化str,编译时便会发生错误。 java代码: String str1=new String("test"); String str2 = "test"; str1是一个新的对象。new关键字的意思就是创建某个新的对象。而str2是一个对象的引用。 它们的内容相同,但内存地址是不一样的。 java中对象的引用存在Stack(栈)中,而对象由Heap(堆)分配空间。 3、引用==变量?  不一定 java代码:   public class TestString { public static void main(String[] args) { String s1 = "test"; String s2 = new String("test"); if (s1 == s2) System.out.println("s1 == s2"); else System.out.println("s1 != s2"); if (s1.equals(s2)) System.out.println("s1 equals s2"); else System.out.println("s1 not equals s2"); } } 我们将 s2 用 new 操作符创建程序输出:s1 != s2 s1 equals s2. java代码: s2 = s2.intern(); 在你加上这句话后,上面的程序输入:s1 == s2 s1 equals s2 而String a = "test" ; String b = "test" ; a == b 会返回true; 这里a="test"时创建一个在栈中的reference, b=test时jvm发现栈中已存在名为"test"的字符串,直接引用。结论:String 是个对象,要对比两个不同的String对象的值是否相同明显的要用到 equals() 这个方法. 而== 比较的是内存地址的值。 4、private final String a = "test", 这个a属于常量,存放在常量存储空间(CS)中。 5、建议你看看<<深入浅出java虚拟机>>一书。 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------总结1. 在学习JAVA的时候就知道==比较的是内存地址.而equals比较的是内存地址对应的值!(可是还是有很多的


相关文档:

JAVA类权限

1、Class类的访问权限:
public:可以供所有的类访问。
默认(包访问权限):默认可以称为friendly但是,java语言中是没有friendly这个修饰符的,这样称呼应该是来源于c++。默认的访问权限是包级访问权限。
      即如果写了一个类没有写访问权限修饰符,那么就是默认的访问权限, ......

JAVA按汉字按头字母排序

public static void main(String args[]) {
Comparator cmp = (RuleBasedCollator)java.text.Collator.getInstance(java.util.Locale.CHINA);
String[] array = {"张三", "李四", "王五"};
Arrays.sort(array, cmp);
for(String str : array){
System.out.println(str);
}
} ......

think in java第十五章关于网络编程的读书笔记

      对于java的网络编程书中讨论的全部归纳起来有Socket的使用,DatagramSocket的使用,java与CGI的配合使用,java连接数据库以及java中调用远程方法。
     
首先是Socket的使用,对于服务端来说,应该声明的是ServerSocket对象,然后使用Socket
accept()方法进行 ......

Java语言基础(一)

一,Java语言中的对象引用
C++中指针和引用兼有,而Java中没有指针的概念,完全用引用替代。如C++中一样,引用是我们给变量的一个“别名”,一个变量可以有多个“别名”。引用的值是一个内存地址,在对象的引用被定义时,如:
String s;  //此时s值为空,系统并没有为s所指的对象分配内存
s = ......

关于Java中自定义包的创建

我在学习thinking in Java4 的时候,在创建自定义包的时候,碰到了很多错误,让我郁闷了几天,通过在网上的资料搜索,把包的创建过程给大家详细列出来。
我们以thinking in Java4中的例子为例
创建两个类Vector和List。将编译后的Vector.class和List.class文件放在包net.mindview.simple下(该包位于c:\DOC\JavaT).
//Vec ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号