목록Study/Java (18)
자바칩
Java 8과 Java 17 버전의 주요 기능 차이1. Java 8의 주요 기능 람다 표현식: 함수를 간단하고 짧게 작성할 수 있게 해주는 기능. 예를 들어, 리스트의 각 요소를 출력할 때 이렇게 사용 가능. list.forEach(element -> System.out.println(element)); 스트림 API: 데이터를 처리 방법을 더 쉽게 만들어주는 기능.예를 들어, 리스트에서 짝수만 골라내는 코드는 이렇게 작성 가능. list.stream() .filter(num -> num % 2 == 0) .forEach(System.out::println); 새로운 날짜와 시간 API: 날짜와 시간을 더 편리하게 처리할 수 있는 기능. ..
정리해 봅시다 1. Map 형태의 자료 구조는 무엇과 무엇으로 구성되어 있나요?키(Key), 값(Value)자료구조특징List- 목록 관리- Collection 인터페이스 확장- 순서 중요 (배열처럼 인덱스 위치 사용)Set- 목록 관리- Collection 인터페이스 확장- 순서 상관 X- 데이터 중복 XQueue- 목록 관리- Collection 인터페이스 확장- 순서 중요 (맨 처음과 맨 마지막 위치 접근)Map- 키(Key)-값(Value) 쌍 데이터 관리- Collection 인터페이스 확장 X. 별도의 인터페이스- 순서 상관 X- 키 중복 X, 값 중복 O 2. Map에서 데이터를 저장하는 메소드는 무엇인가요?put(K key, V value)*사용 예시Map map = new HashMap..
정리해 봅시다 1. 순서와 상관 없는 여러 데이터를 하나의 객체에 저장할 때 사용하는 Collection의 하위 인터페이스는 무엇인가요?Set 인터페이스 2. HashSet 클래스는 생성자를 통하여 저장 가능한 데이터의 초기 크기를 지정할 수 있나요?HashSet 클래스는 생성자를 통하여 저장 가능한 데이터의 초기 크기를 지정할 수 있다.*사용 예시HashSet set = new HashSet(100);* 생성자 종류생성자설명 HashSet() 데이터를 저장할 수 있는 16개의 공간과 0.75의 로드 팩터를 갖는 객체를 생성한다.HashSet(Collections c)매개 변수로 받은 컬렉션 객체의 데이터를 HashSet에 담는다. HashSet(int initialCapacity) 매개 변수로 받은 ..
정리해 봅시다 1. Collection 인터페이스를 구현하는 대표적인 3개의 자료 구조에는 어떤 것들이 있나요?List(목록), Set(셋), Queue(큐) 2. 배열과 같이 순서가 있는 목록형을 나타내는 대표 인터페이스는 무엇인가요?List 인터페이스 3. ArrayList라는 클래스의 생성자 중 매개변수가 없는 기본 생성자를 사용하면 기본적으로 몇 개의 저장 공간을 가지나요?10개의 저장 공간*사용 예시ArrayList list = new ArrayList(); 4. 만약 ArrayList 클래스의 저장 공간 개수를 처음부터 지정하려면 어떤 생성자를 사용하면 되나요?ArrayList(int initialCapacity)이 생성자는 매개 변수로 넘어온 initialCapacity 개수만큼의 저장..
정리해 봅시다 1. 제네릭이 자바에 추가된 이유는 무엇인가요?타입 형 변환에서 발생할 수 있는 문제점을 "사전"에 제거하기 위해 추가되었다. 여기서 "사전"이라고 하는 것은 실행 시에 예외가 발생하는 것을 처리하는 것이 아니라, 컴파일할 때 점검할 수 있도록 한 것을 말한다. 2. 제네릭 타입의 이름은 T나 E처럼 하나의 캐릭터로 선언되어야 하나요?제네릭 타입의 이름은 어떤 것으로 선언하든 상관이 없다. 하지만 다른 어떤 사람이 보더라도 쉽게 이해할 수 있도록 하려면 자바에서 정의한 기본 규칙을 따르는 것이 좋다. 자바에서 정의한 기본 규칙은 다음과 같다.* 자바에서 정의한 기본 규칙E: 요소(Element, 자바 컬렉션에서 주로 사용됨)K: 키N: 숫자T: 타입V: 값S, U, V: 두 번째, 세 번..
정리해 봅시다 1. 자바 패키지 중 같은 패키지에 있는 클래스를 제외하고, 별도로 import 하지 않아도 되는 패키지는 무엇인가요?java.lang 패키지 2. 자바의 메모리가 부족해서 발생하는 에러는 무엇인가요?OutOfMemoryError (OOME) 3. 메소드 호출 관계가 너무 많아서 발생하는 에러는 무엇인가요?StackOverflowError 4. java.lang 패키지에 선언되어 있는 3개의 어노테이션에는 어떤 것들이 있고, 각각의 역할은 무엇인가요?어노테이션역할@Override부모 메소드를 Overriding 하는 것을 명시적으로 선언한다.이 어노테이션을 선언하면 Overridng을 하기 위한 부모 메소드의 시그니처와 다르게 메소드를 선언했을 때 컴파일 에러를 발생시킨다.@Depre..
요약 문제 1. 참조 자료형(Reference type)과 기본 자료형(Primitive type)의 차이를 정리해 주세요.참조 자료형(Reference type)기본 자료형(Primitive type)- 기본 자료형 외의 모든 타입은 참조 자료형 - 개발자가 클래스로 직접 생성 가능- String 클래스만 + 연산 사용 가능하고, 나머지는 모두 불가능- Pass by Reference: 매개변수로 전달할 때 참조 객체(주소값)를 전달하기 때문에 값 변경 가능- byte, short, int, long, float, double, char, boolean 타입 - 이 외에는 개발자가 직접 생성 불가능- 모든 사칙 연산(+, -, *, /, % 등) 가능- Pass by Value: 매개변수로 전달할때 값..
1. @Override 어노테이션의 용도는 무엇인가요?부모 클래스에서 선언된 메소드의 이름과 매개변수가 같은 메소드를 자식 클래스에 선언하는 것을 Overriding이라고 한다. 만약 자식 클래스에 선언된 메소드가 여러 개일 경우, 어떤 메소드가 Overriding된 메소드인지 찾기 어려울 수도 있기 때문에, 명시적으로 어노테이션을 선언해서 Overridng된 메소드를 쉽게 찾기 위한 용도이다. 또한, 자식 클래스에서 Overriding한 메소드를 선언할 때 혹시 잘못 코딩했을 수도 있으니 컴파일러한테 확인해 달라고 요청하는 용도이다.*사용 예시@Overridepublic void overridingMethod() {} 2. @SuppressWarnings 어노테이션의 용도는 무엇인가요?컴파일할 때 경..