他们在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