The finalize() method is called just prior to

The main method should be static for the reason

Given the following piece of code:
class Person{
        public int number;
public class Test{
        public void doIt(int i , Person p){
                i = 5;
                p.number = 8;
        public static void main(String args[]){
                int x = 0;
                Person p = new Person();
                new Test().doIt(x, p);
                System.out.println(x + " " + p.number);
What is the result?

Which of the following statements regarding static methods are correct?
1. Static methods are difficult to maintain, because you can not change their implementation.
2. Static methods can be called using an object reference to an object of the class in which this method is defined.
3. Static methods are always public, because they are defined at class-level.
4. Static methods do not have direct access to non-static methods which are defined inside the same class.

public class Test { }
What is the prototype of the default constructor?