1. 컬렉션 프레임워크란? 자료 구조는 프로그램 실행 중 메모리에 자료를 유지/관리하기 위해 사용한다. 자바에서는 필요한 자료구조를 미리 구현하여 java.util 패키지에서 제공하는데 이를 컬렉션 프레임워크라고 한다. 자바 컬렉션 프레임워크는 여러 인터페이스가 정의되어있고 그 인터페이스를 구현한 클래스가 있다. 컬렉션 프레임워크의 전체 구조는 Collection 인터페이스와 Map 인터페이스 기반으로 이루어져 있다. 2. Collection 인터페이스 Collection 인터페이스는 하나의 자료를 모아서 관리하는데 필요한 기능을 제공한다. Collection 인터페이스 하위에 List 인터페이스와 Set 인터페이스가 있다. 1) List 인터페이스(순서O, 중복O) List를 구현한 클래스는 순차적인 ..
1. 제네릭이란? 어떤 값이 하나의 참조 자료형이 아닌 여러 참조 자료형을 사용할 수 있도록 프로그래밍하는 것을 '제네릭(Generic) 프로그래밍' 이라고 한다. 2. 제네릭의 필요성 어떤 변수가 여러 참조 자료형을 사용할 수 있도록 Object 클래스를 사용하면 다시 원래 자료형으로 반환해 주기 위해 매번 형 변환을 해야하는 번거로움이 있다. Public class ThreeDPrinter{ private Object material; public void setMaterial(Object material) { this.material = material; } public Object getMaterial() { return material; } } ThreeDPrinter printer = new ..
1. Class 클래스란? 자바의 모든 클래스와 인터페이스는 컴파일 후에 class 파일로 생성되고 파일에 클래스나 인터페이스에 대한 변수, 메서드, 생성자 등의 정보가 담겨있다. Class 클래스는 컴파일된 calss 파일에 저장된 클래스나 인터페이스의 정보를 가져오는데 사용한다. 모르는 클래스의 정보를 사용할 경우에 Class 클래스를 활용해 클래스 정보를 직접 찾는다. 1번 방식은 이미 생성된 인스턴스가 있어야하고 2, 3번 방식은 컴파일된 클래스 파일이 있다면 클래스 이름만으로 Class 클래스를 반환받는다. 1. Object 클래스의 getClass() 메서드 사용하기 String s = new String(); Class c = s.getClass(); 2. 클래스 파일 이름을 Class 변수..
1. 기본 자료형을 위한 클래스 Wrapper 클래스는 기본 타입의 데이터를 객체로 표현하기 위해 포장해주는 클래스이다. 예를 들어, 매개변수가 객체거나 반환 값이 객체인 경우 기본 타입을 객체형으로 사용해야 한다. 기본형 Wrapper 클래스 boolean Boolean byte Byte char Character short Short int Integer long Long float Float double Double 2. Integer 클래스 사용하기 Integer 클래스는 int 자료형을 감싼 클래스다. Integer 클래스의 생성자는 매개변수로 정수 혹은 문자열을 받는 경우 2가지가 있다. Integer 클래스는 final 멤버 변수로 기본 자료형 int를 갖고 있고 int 값을 객체로 활용할 ..
1. String을 선언하는 2가지 방법 자바는 문자열을 사용하도록 String 클래스를 제공하는데 String을 사용하는 2가지 방식이 있다. 1. 문자열을 생성자의 매개 변수로 하여 생성하는 방식 new 예약어를 사용해 객체를 생성하는 방식은 문자열을 위한 힙 메모리가 할당되고 새로운 객체가 생성된다. String str1 = new String("abc"); 2. 이미 생성된 문자열 상수를 가리키는 방식 String 변수가 기존에 만들어져있던 문자열 상수의 메모리 주소를 가리킨다. 프로그램에서 사용되는 상수 값을 저장하는 공간을 상수 풀이라고 한다. String str2 = "test"; String str3 = "test"; 2. String 클래스의 final char[] 변수 자바는 Strin..
1. java.lang 패키지 java.lang 패키지에는 프로그램에서 가장 많이 사용하는 기본 클래스가 포함되어있다. (String, Integer 등) 자바 프로그래밍에서 외부 패키지에 선언한 클래스를 사용할 때는 import 문으로 클래스가 어느 패키지에 속해 있는지 선언해야한다. 하지만 java.lang 패키지는 컴파일 시 자동으로 추가되기 때문에 import 문을 직접 쓰지 않아도 java.lang 패키지의 모든 하위 클래스를 참조할 수 있다. 2. 모든 클래스의 최상위 클래스 Object Object 클래스는 모든 자바 클래스의 최상위 클래스다. 모든 클래스는 Object 클래스로부터 상속을 받는다. (컴파일 과정에서 자동으로 extends Object가 쓰임) 그러므로 모든 클래스는 Obje..
1. 인터페이스란? 1. 구현 코드가 없는 인터페이스 인터페이스는 클래스 혹은 프로그램이 제공하는 기능을 명시적으로 선언하는 역할을 한다. 인터페이스는 추상 메서드와 상수로만 이루어져 있다. 구현 코드가 없기 때문에 인터페이스로 인스턴스를 생성할 수 없다. public interface Calc { double PI = 3.14; int ERROR = -999999999; int add(int num1, int num2); int substract(int num1, int num2); int times(int num1, int num2); int divide(int num1, int num2); } public abstract 를 쓰지 않아도 자동으로 추상 메서드로 변환된다. public static f..
1. 추상 클래스 1. 추상 클래스란? 추상 클래스란 하나 이상의 추상 메서드를 포함하는 클래스를 말한다. 추상 메서드는 구현부가 없고 abstract를 이용하여 선언만 하는 메서드다. // 구현체가 없는 추상 메서드 abstract int add(int x, int y); // 추상 메서드 아님! int add(int x, int y) {} (주의) { }를 사용한 것만으로도 메서드를 구현한 것이므로 중괄호 {} 안에 구현 코드가 없다고 하더라도 구현부는 존재하므로 추상 메서드가 아니다! 함수의 선언부(반환 값, 함수 이름, 매개변수)를 정의한다는 것은 함수의 역할이 무엇인지, 어떻게 구현해야하는지를 정의한다는 뜻이다. 따라서 함수 몸체를 구현하는 것보다 중요한 것은 함수 선언부를 작성하는 것이다. 2..