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

Java语言基础(一)

一,Java语言中的对象引用
C++中指针和引用兼有,而Java中没有指针的概念,完全用引用替代。如C++中一样,引用是我们给变量的一个“别名”,一个变量可以有多个“别名”。引用的值是一个内存地址,在对象的引用被定义时,如:
String s;  //此时s值为空,系统并没有为s所指的对象分配内存
s = “hello”;  //对象实例化以后,系统为对象实例分配内存
t = s;   //给对象实例“hello”起了另一个别名t
t = “world”;  // s会随t的改变而改变吗?
答案是:没有,t变了,而s没有变,Java中所有的基本数据类(String、Integer等)的实例一旦创建,不能改变。
注意,我们说的是实例不能改变,可能有人会说:
s = “hello world”; 以后s不是变了吗?这是一个误区:
s的值从 “hello”的字符串首地址1变成了“hello world”的字符串首地址2,但是内存地址1中存放的数据没有改变,仍然是 “hello”,内存地址中存放的数据才是对象的实例。
二,Java语言中的 “==”和 “equals()”
Java中的 “==”可以对所有类型数据进行匹配,比C++中的 “==”要方便、强大了许多,在C++中需要重载才可以完成各种类型的匹配。我们可以思考一下为什么Java中的 “==”可以完成这样的通用功能?
原因就在于,Java中使用了对象的引用!
1.    “==”比较的是对象引用的值,如:
String a = “this is a string”;
String b = new(“this is a string”);//或者 String b= new (a);
虽然 a、b引用指向的对象实例值相同,但是,由于a、b引用的值不等,所以 “==”将返回false。
2.    Java.lang.Object中的“equals()”被其它类覆盖时,比如java.lang.String中的 “equals()”,不仅比较对象的引用值(即 “==”),而且在 “==”false的情况下,继续比较对象实例的值是否相等。
public boolean equals(Object anObject) {
//第一轮比较“==”
       if (this == anObject) {
           return true;
       }
//如果“==&rdqu


相关文档:

Java中HashMap使用自定义Key类

自定义的Key类需要重载equals, hashCode函数。。 
package com.albert.test;
import java.util.Vector;
import java.util.HashMap;
/**
* @author tough_guy
*
*/
//对于自定义的key, 需要重载hashCode函数和equals函数
class IPSegment
{
long ip_s;
long ip_e;
int p;
IPSegment Reset(long f ......

JAVA根据XML节点读取XML文件内容

XML文件 book.xml
<book>
<person>
<first>Kiran</first>
<last>Pai</last>
<age>22</age>
</person>
<person>
<first>Bill</first>
<last>Gates</last>
<age>46</age>
</person>
<person>
&l ......

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

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

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

      对于java的网络编程书中讨论的全部归纳起来有Socket的使用,DatagramSocket的使用,java与CGI的配合使用,java连接数据库以及java中调用远程方法。
     
首先是Socket的使用,对于服务端来说,应该声明的是ServerSocket对象,然后使用Socket
accept()方法进行 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号