他们在java中说"每件事都是一个对象".真的吗?

ziz*_*jab 9 java oop

当我输入

int a = 5;
Run Code Online (Sandbox Code Playgroud)

a一个对象?

任何人都可以向我解释一下java中的每一个东西都是一个对象吗?

Pet*_*rey 16

每个对象都是一个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"); }
Run Code Online (Sandbox Code Playgroud)

例如,这里的代码块将作为Object传递java.lang.Object

new Thread(() => { System.out.println("I am a Runnable"); }).start();
Run Code Online (Sandbox Code Playgroud)

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