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
相关文档:
现在很多人都问 C++和Java 哪个好. 其实技术上各有各的好处与不足,我想大家所说的好不好指得是前途好不好,赚的多不多.
要说赚钱最多的肯定是C++了.因为一门技术是否值钱全看会它的人有多少而不在于这个技术本身的好坏. C++涉及硬件底层的东西比较多,学起来很复杂,会的人少,所以值钱.
&nb ......
XML文件是一种可扩展性标识语言,xml文件的主要用途:
做web开发时,可以用xml文件来做系统的配置
系统的集成
数据的中转
因为xml文件是跨平台的,所以对雨不同的系统之间的数据的传送,交互可以用xml文件来实现
下面的这个项目主要是用来:
1,将oracle数据库中的emp表的结构读取,并且生成xml文件,并且将表中的数据同 ......
不知不觉做软件已经做了十年,有成功的喜悦,也有失败的痛苦,但总不敢称自己是高手,因为和我心目中真正的高手们比起来,还差的太远。世界上并没有成为高手的捷径,但一些基本原则是可以遵循的。
1. 扎实的基础。数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握他们,很难写出高水平的 ......
归纳一些网上取JAVA路径的方法:
注明:如果从ANT启动程序,this.getClass().getResource("")取出来的比较怪,直接用JAVA命令行调试就可成功。
得到classpath和当前类的绝对路径的一些方法
获得CLASSPATH之外路径的方法:
URL base = this.getClass().getResource(""); //先获得本类的所在位置,如/home/popeye/ ......