Why do we put Java fields at the top of the class?

Here is a typical example:

public class Employee {
  private String m_firstName;
  private String m_lastName;

  public Employee(String firstName, String lastName) {
  …

From day one, this convention has always struck me as odd and
counter-intuitive, especially coming from a C++ background where developers go
to great lengths to hide private members.

When I read a source code for the first time, I couldn’t care less about the
log instance and resource bundle it uses, or all the private HashMaps needed to
maintain its state.  My attention usually goes immediately to the outline
of the class showing all the public methods, and then to the constructor. 
All the rest is noise to me at this early stage.

Since it has now (sadly) become a standard, I put the Java fields of my
classes at the top, like everyone else, but I still can’t figure out why such a
nonsensical convention happened in the first place.

Any suggestion?