A pues basicamente un constructor en java es el metodo que se ejecuta al momento de que se crea una instancia de un objeto, aqui le puedes setear algun valor que debe tener tu objeto antes de poder trabajar con el, o ejecutar alguna accion que se necesita realizar antes de poder utilizar el objeto, ahora si que como el nombre lo dice, construye tu objeto.
La estructura basica del constructor es: miClase(); no se le especifica un valor de retorno ni siquiera la palabra reservada void, se tiene que llamar igual que la clase siempre si le pones a tu clase Perrito el constructor debe quedar Perrito() y puede tener de 0 a n parametros.
Aunque no le especifiques uno, internamente la JVM le agrega uno por default vacio, algo asi como constructor(); y tambien le puedes definir mas de un constructor por si necesitas que tu objeto se comporte de diferente manera (polimorfismo) dependiendo de lo que le mandes, para diferenciar entre un constructor y otro la JVM se basa en los parametros que recive, entonces no puede haber mas de un constructor con la misma cantidad de parametros y con los mismos tipos.
Haber si te sirve o te hice mas bolas, por que segun yo, yo no se explicar, checate la wikipedia por lo general ahi estan estos conceptos muy bien esplicados