클래스 내부에서 생성자 선언을 생략한다면 기본 생성자를 생성한다고 알고 있는데

만약 생성자 선언을 따로 직접 해준다면

클래스(매개변수선언,  ...) {
// 객체의 초기화 코드
}

이런 꼴이라고 알고 있어

궁금한 점 첫 번째는, 객체의 초기화 코드 부분을 공백으로 비워놔도 상관은 없는 거임?

그리고 두 번째로 궁금한 것은,

public 클래스(매개변수선언,  ...) {
// 객체의 초기화 코드
}

이런 식으로 앞에 public이 붙어도 상관 없음??
책에선 기본 생성자 설명 부분에선 public이 붙을 수 있다고 나왔는데
생성자 선언 부분에선 이 설명이 없어서 궁금