易截截图软件、单文件、免安装、纯绿色、仅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遍历一个文件夹中的所有文件

在实际项目中给定一文件夹,得到这个文件夹下所有的文件这样的需求并不是很多,更多的是查找或是删除某一具体的文件
import java.io.File;
import java.util.ArrayList;
public class FileTest {
 private static ArrayList<String> filelist = new ArrayList<String>();
 
 public stati ......

几种常见的排序算法的JAVA实现

以O(n)的时间实现对正整数的排序。思路是:从最末位开始,对数组中每一个数的第k位进行计数排序,直到排到最高位为止。
缺点:只能对正整数进行排序,而且需要知道最大整数的最高位,使用范围太小。但这不失为一个很有趣的排序,因为它颠覆了比较排序的传统思路。
public static int[] radixSort(int[] inputs,int d){
......

java Socket的怪异之处

怪异之一:
connect(SocketAddress endpoint):这个方法,尝试连接server端,如果连接不上,就抛出IOException异常。如果连接成功了,就继续执行下一步的代码。
怪异之二:
boolean isConnected()  :这个方法的结果仅仅代表这个socket曾经成功连接到了server,但并不表示现在这个时刻它和server仍保持连接状态。
有 ......

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

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

Java语言基础(一)

一,Java语言中的对象引用
C++中指针和引用兼有,而Java中没有指针的概念,完全用引用替代。如C++中一样,引用是我们给变量的一个“别名”,一个变量可以有多个“别名”。引用的值是一个内存地址,在对象的引用被定义时,如:
String s;  //此时s值为空,系统并没有为s所指的对象分配内存
s = ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号