public class Student{
private Scanner sc;
public Student(){
super();
sc = new Scanner(System.in);
}
}
여기서 스캐너 객체생성을 바로 안해주고 스튜던트 또 만든담에 뉴 스캐너 하는 이유가 뭐야??
private Scanner sc=new Scanner(System.in);랑 뭐가 다른거임??
public class Student{
private Scanner sc;
public Student(){
super();
sc = new Scanner(System.in);
}
}
여기서 스캐너 객체생성을 바로 안해주고 스튜던트 또 만든담에 뉴 스캐너 하는 이유가 뭐야??
private Scanner sc=new Scanner(System.in);랑 뭐가 다른거임??
걍 생성자에 써주는게 깔끔하니까 저러는거고 똑같음
생성자에 써주면 객체 생성시점에 만들어지고 너처럼 필드에 해주면 클래스 로딩시점에 만들어짐
근데 만약 너가 Student라는 클래스를 안썼다고 (new Student를 안했다고 쳐도).. Student 클래스가 로딩되기만 하면 new Scanner라는 객체가 생성되어있으니가 어떻게 보면 memory leak인거지
감사감사