他们在java中说“每件事都是一个对象”。这是真的吗?

2022-09-04 05:29:33

当我键入时

int a = 5;

是对象吗?a

任何人都可以向我解释一下在java中,每件事物都是一个对象吗?


答案 1

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

但是,有许多事物不是对象。

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

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

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


答案 2

,这不是一个Object.Java不是纯粹的面向对象语言,因为和。为了使原始变量成为Object java引入了包装器,如整数布尔值等。primitivesstatic