他们在Java中说“每件事都是对象”。真的吗?


问题内容

当我打字

int a = 5;

a物体吗?

谁能向我解释在Java中每件事都是一个对象吗?


问题答案:

每个对象都是java.lang.Object(注意:java.lang.Object没有超类。;))

但是,有很多东西不是对象。

  • 原语和引用。
  • 字段(字段本身不是内容)
  • 局部变量和参数。
  • 通用类(在Java 8中可能会更改)
  • 方法(将在Java 8中更改)
  • 代码块(将在Java 8中更改)

将代码块作为对象是Java 8中最令人兴奋的功能之一。下面的示例都是Closures,因此就是对象。

x => x + 1
(x) => x + 1
(int x) => x + 1
(int x, int y) => x + y
(x, y) => x + y
(x, y) => { System.out.printf("%d + %d = %d%n", x, y, x+y); }
() => { System.out.println("I am a Runnable"); }

例如,这里的代码块将作为 对象 传递Runnable __

new Thread(() => { System.out.println("I am a Runnable"); }).start();

http://mail.openjdk.java.net/pipermail/lambda-
dev/2011-September/003936.html