Programming Language
[Java] 지네릭스 (Generics)
[Java] 지네릭스 (Generics)
2021.10.17지네릭스를 통해 타입안정성을 확보하고 코드 작성 시 형변환을 생략해 코드를 간결하게 작성할 수 있다. 지네릭스는 다양한 타입의 객체들을 다루는 메서드나 클래스 (List같은 것들) 에 컴파일 시 타입체크를 해 주는 기능을 한다. 실제로 큰 프로젝트를 진행할 때 타입 안정성때문에 쓰레기값이 나오는 경우가 있으면 안 되니까.. 런타임체크가 아니라 컴파일체크인 것도 알아놓자. 계속 봐도 모르겠으면 코드 짜면서 공부하고, 지금은 지네릭스는 타입체크를 위한 이름표구나~ 라고만 생각하자. 타입 안정성 + 형변환 생략(성능 향상) 지네릭 클래스는 클래스나 메서드에 선언할 수 있다. 왼쪽 코드를 지네릭 클래스로 변환하면 왼쪽과 같이 변한다. 여기서 T는 타입 변수로, 아무거나 써도 되고 안에는 comma를 사용해 여러..
[Java] Scanner클래스의 nextLine()과 next() 사용 시 주의점
[Java] Scanner클래스의 nextLine()과 next() 사용 시 주의점
2021.10.05한 줄로 입력받아 split을 이용해 배열로 처리해 줄 때 nextLine() 메서드를 쓰는 경우가 많다. 하지만, nextLine()과 next() 메서드를 함께 쓸 때, 가끔씩 원하는대로 입력되지 않는 경우가 있다. 어떤 이유 때문인지, 어떻게 해결할 수 있을 지에 대해 알아보자. 선행 지식으로 버퍼에 대한 지식이 필요하다. 데이터를 한 곳에서 다른 곳으로 전송할 때, 임시로 데이터를 보관하는 영역을 버퍼라고 한다. 즉 스캐너를 통해 키보드로 입력을 받을 경우, print로 출력을 할 경우 모두 데이터가 버퍼에 저장된다. int a = sc.nextInt(); 위 코드의 실행 과정을 살펴보자. 스캐너 클래스의 nextInt() 메서드가 실행된 직후에는 버퍼에 아무 내용도 없기 때문에 키보드로부터 입력..