void main() {
// Адрес следующей строки сохраняется как адрес возврата
int x = foo();
System.out.println(x);
}
void main() {
sayHello();
}
void sayHello() {
System.out.println("Hello");
}
class Hello {
public static void main(String... args) {
sayHello();
}
private static void sayHello() {
System.out.println("Hello");
sayHello();
}
}
...
Hello
Hello
Hello
Hello
Exception in thread "main" java.lang.StackOverflowError
...
at Hello.sayHello(Hello.java:8)
at Hello.sayHello(Hello.java:9)
at Hello.sayHello(Hello.java:9)
at Hello.sayHello(Hello.java:9)
...
Помимо рассмотренных ранее, куча имеет следующие ключевые особенности:
class Person {
int id;
String name;
public Person(int id, String name) {
this.id = id;
this.name = name;
}
}
public class PersonBuilder {
public static void main(String[] args) {
int id = 23;
String name = "John";
Person person = null;
person = buildPerson(id, name);
}
private static Person buildPerson(int id, String name) {
return new Person(id, name);
}
}