Java中的数据比较(再谈==与equals的区别)
Java中的变量与对象有区别吗?
引子:变量与对象
变量是Java中最基本的存储单元,为变量赋值可以使用赋值表达式。如:
int i = 10;
该表达式的含义是将一个字面量(literal)10赋值给一个类型为int型的变量,变量名为i。这是一个为基本数据类型的变量赋值的例子,它表达了一个非常朴素的信息,那就是变量i的值为10。
那么这种赋值表达式引申到引用类型的变量时,其含义又有什么变化呢?再看一个赋值表达式:
String str = null;
该表达式的含义是将空内存地址(null)赋值给String类型的变量,变量名为str。朴素的说法是变量str的值为null。对于引用类型的变量而言,赋值操作只是将对象的内存地址保存到变量中。也就是说引用类型的变量值是对象的内存地址而不是对象的内容。如下例:
String str1 = "abc";
String str2 = new String("abc");
上述两种赋值操作本质上没有任何区别,最大的区别是生成对象的方法不同(这一点与赋值操作无关)。对于变量而言,其值仍然是所指对象的内存地址。
相对于变量,对象也是存储单元的一种。对象有自己的属性与方法,其内容的表现形式由实例化该对象所用的类决定。如:
new java.sql.Time(0L);
要使用对象,必须将对象的内存地址指定到一个引用类型的变量中(也就是变量的赋值操作)。该变量的类型可以与对象的类型一致,或者是对象类型的父类,或者是对象类型实现的接口。后两种是典型的多态应用。如:
java.util.Date date = new java.sql.Time(0L);
当然,我们只能通过变量去调用对象的方法或者设置对象的属性,其作用无非两种:取得或者修改对象的内容。如:
java.util.Date date = new java.sql.Time(0L);
date.setTime(3600000L);
System.out.println(date.toString());
注意,变量的内涵只有一个,就是它的值。我们通过变量调用对象的方法时,可以改变的也只是对象的内容。记住:
变量的值只能通过赋值表达式来改变;对象的内容只能通过自身的方法或属性来改变。
区分变量与对象是很有必要的,当我们讨论变量时总是与它们的值有关;当我们讨论对象时更多的是在讨论如何取得或修改它们的内容。
变量值的比较
当我们讨论变量之间是否相等时,通常使用“==”关系运算符。如:
int i = 10;
int j = 20;
if (i == j) {
System.out.println("两个变量的值相等");
}
上例是基本数据类型之间的比较,本质上是变量之间值的比较。对于两个引用变量的比较,
相关文档:
本次主要以例子为主:
1.匹配图像 /**
* 匹配图象 <br>
* 格式: /相对路径/文件名.后缀 (后缀为gif,dmp,png)
* 匹配 : /forum/head_icon/admini2005111_ff.gif 或 admini2005111.dmp<br>
* 不匹配: c:/admins4512.gif
*/
public static final String icon_regexp = "^(/{0,1}\ ......
if(null != agent && -1 != agent.indexOf("MSIE")){
filename = URLEncoder.encode(filename
,"UTF8");
}else if ......
Here is a simple library to query Google Maps with the following features:
geocode addresses to their geographic coordinates
retrieve static images with given custom size, format and zoom
To see a live sample of this API, you can check here: Java ME Google Maps API sample MIDlet
Contents
[h ......
亲爱的 Java 新手们:
很高兴你们愿意来这里共同学习,
Java 这个语言,已经不再是语言了,他勾勒出一个开放式的开发环境,
基本上 java.sum.com 很粗略地把 Java 分为三个部分:
(1) J2SE ( Java 2 Standard Edition )
(2) J2EE ( Java 2 Enterprise Edition )
(3) J2ME ( Java 2 Micro Edition ) ......