Java简明笔记(二) 面向对象

Java 创建对象的过程

当我们实例化一个对象时,例如:

1
Person p = new Person();

Java首先会在堆中开辟一块内存空间用来存放这个新的 Person 对象,然后在栈中创建一个引用 p , p 指向堆中的 Person 对象。这样,我们通过 p 就能找到 Person 的内存地址。

之后,我们执行:

1
Person p2 = p;

我们创建了一个新的引用 p2, p2 跟 p 一样,都是保存在栈中,也指向了 Person 对象。当我们改变 p2 的状态, p 也会跟着改变,因为他们指向同一个对象。

阅读更多

Java简明笔记(一) 基础知识

java

Java 与 C++ 的区别

  1. C++支持多重继承,Java不支持,但可以实现多接口。(引申:多重继承菱形问题)
  2. 自动内存管理
  3. java不支持goto语句
  4. 引用与指针:在Java中不可能直接操作对象本身,所有的对象都由一个引用指向,必须通过这个引用才能访问对象本身,包括获取成员变量的值,改变对象的成员变量,调用对象的方法等。而在 C++ 中存在引用,对象和指针三个东西,这三个东西都可以访问对象。其实,Java中的引用和C++中的指针在概念上是相似的,他们都是存放的对象在内存中的地址值,只是在Java中,引用丧失了部分灵活性,比如 Java 中的引用不能像 C++ 中的指针那样进行加减运算。
阅读更多