This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
Depends how you mean. In a simple example, the main will execute first. Consider:
When the JVM starts, there are no objects created. Therefore, the JVM needs a starting point in the code. This is the main method, which is static--it belongs to a class, not a particular instance of the class. The constructor is called when you create an object. When the above code says "new Test()" it invokes the constructor of the Test class. However, only the main of one class is invoked. If you used another class ("OtherClass") that had a main in it, that main would not be called (unless you called it yourself in your code). The constructor would be called anytime you said "new OtherClass()" Hope this clear up the usage between constructors and main methods.
Piscis Babelis est parvus, flavus, et hiridicus, et est probabiliter insolitissima raritas in toto mundo.
With the code you've posted, with the main method empty the way it is, if you run this class alone (at the command line, like "c:\java MyClass") your constructor won't ever execute. Likewise, if you are instantiating this class from another class (like MyClass m = new MyClass("hi Chenna")) your main method won't ever execute. If this class is the entry to your application, typically you instantiate your class (call your constructor, with the new keyword) from its own main method, like Mike did in his example.