name в данном случае является переменной экземпляра, и вы пытаетесь получить к ней доступ без создания объекта, поэтому технически переменная name не существует в памяти, но для статической переменной (s_name), которая является переменной класса, она возникает как только класс создан.

String name = "Marcus";
static String s_name = "Peter";

public static void main(String[] args) {    
    System.out.println(name);//ERROR
    System.out.println(s_name);//OK
}

А: не может сделать статическую ссылку на нестатическое имя поля

Ответы на вопрос(3)

Ваш ответ на вопрос