본문 바로가기

728x90
반응형

한권떼기/자바의 정석

(7)
[한권떼기] 자바의정석 챕터12. 제네릭스, 열거형, 어노테이션 **자바의 정석(남궁성 저)를 읽고 정리한 글입니다. 제네릭스 제네릭스는 다양한 타입의 객체들을 다루는 메소드나 클래스에 컴파일 시 타입 체크를 해주는 기능 장점 의도하지 않는 타입이 저장되고, 꺼내지는 것을 방지하여 항변환 오류가 줄어듦 -> 타입 안정성 제공 타입체크와 형변환을 생략할 수 있어 코드가 간결해짐 제네릭 타입 제네릭 타입은 , , 등으로 사용되며 클래스와 메소드에 선언할 수 있음 , ... 등 모두 기호의 종류만 다른 것이며, T, K 각각은 임의의 참조형 타입을 의미함 제네릭의 용어 class Hello {} 를 예시로 들면 Hello는 제네릭 클래스, T는 타입 변수, Hello는 원시 타입임 Box b = new Box에서 가 이 되면서 String이 대입된 타입이 되었음 와일드카드..
[한권떼기] 자바의정석 챕터11. 컬렉션 프레임워크 **자바의 정석(남궁성 저)를 읽고 정리한 글입니다. 컬렉션 프레임워크 데이터 군을 저장하는 클래스들을 표준화한 설계 Vector, Set과 같이 다수의 데이터를 저장할 수 있는 클래스를 컬렉션 클래스라고 함  컬렉션 프레임워크에서는 List, Set, Map이 있는데 이 때 List와 Set은 Collection 클래스를 상속받았으나 Map은 상속받지 않았음 List: 순서O, 중복O ex. 대기자 명단 -> 구현클래스: ArrayList, LinkedList, Stack, Vector ... Set: 순서X, 중복X ex. 정수집합 -> 구현클래스: HashSet, TreeSet ... Map: 키와 값의 쌍으로 이루어짐. 순서X, 키는 중복X 값은 중복O -> 구현클래스: HashMap, Tree..
[한권떼기] 자바의정석 챕터07. 객체지향프로그래밍 심화개념 **자바의 정석(남궁성 저)를 읽고 정리한 글입니다. 상속이란? 상속은 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것으로, 코드의 재사용성과 유지보수가 쉬워짐 클래스는 상속 관계에 따라서 조상 클래스, 자손 클래스로 나눌 수 있는데, 상속해주는 클래스가 조상클래스, 상속받는 클래스가 자손클래스임 이 때 조상클래스의 생성자와 초기화 블럭은 상속되지 않고, 멤버만 자손클래스에게 상속됨 따라서 자손클래스는 부모에게서 물려받은 멤버+자신의 멤버 의 구성으로 클래스를 사용하게 됨 인스턴스 또한 조상 클래스의 멤버+자손 클래스의 멤버인 하나의 인스턴스가 생성됨 private 또는 default여도 자손 클래스에게 상속될까? 상속됩니다. 정확하게 말하면 상속되지만, 자손 클래스에서 접근할 수 없습니다. 상속..
[한권떼기] 자바의정석 챕터06. 객체지향프로그래밍 기본개념 **자바의 정석(남궁성 저)를 읽고 정리한 글입니다. 객체지향언어란? 객체 지향 언어는 기존의 프로그램이 언어에서 규칙을 더하여 객체지향성을 보장하도록 한 언어 객체 지향 언어의 장점 1. 코드의 재사용성 2. 코드 관리의 용이 (유지보수 용이) 3. 신뢰성이 높은 프로그램이 가능 (코드의 중복 제거 및 데이터를 보호하고 오류를 최소화함) 클래스와 객체 클래스: 객체를 정의해 놓은 것. 비유하자면 붕어빵 틀과 같음 객체: 클래스에 정의된 내용대로 메모리에 올라간 실체가 있는 것. 붕어빵 틀로 찍어낸 붕어빵. 클래스로부터 객체를 만들어내는 것을 인스턴스화라고 하며, 클래스 -> 인스턴스화 -> 인스턴스(객체) 의 흐름으로 객체가 만들어짐 객체의 구성요소 객체는 속성과 기능으로 구성되어있음 속성은 멤버변수,..
[한권떼기] 자바의정석 챕터05. 배열(Array) **자바의 정석(남궁성 저)를 읽고 정리한 글입니다. 배열이란? 배열: 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것 아래와 같이 생성 int[] myArr; //배열을 다루기 위한 참조변수 myArr = new int[4]; //실제 저장공간 생성 메모리에 아래와 같이 저장됨 배열의 길이를 변경하는 방법 배열은 기본적으로 한 번 생성하면 길이를 바꿀 수 없음 따라서 더 큰 배열을 새로 생성하여 값을 복사해야함 String vs char[] String과 char[] 은 본질적으로는 동일한 것임 String 클래스는 char 배열에 메서드를 더 추가해서 개발자가 편하게 사용할 수 있도록 한 것 중요한 차이점은 String 객체는 char 배열과는 다르게 immutable함(변경불가능). -> 문자열..
[한권떼기] 자바의정석 챕터02. 변수(Variable) **자바의 정석(남궁성 저)를 읽고 정리한 글입니다. 변수란? 변수는 단 하나의 값을 저장할 수 있는 메모리 공간. 변수를 선언하면, 변수 타입에 알맞는 크기의 저장 공간이 만들어지는데, 변수 이름을 통해 접근할 수 있음 자바의 명명 규칙 자바 프로그래머에게 권장되는 암묵적인 규칙이 있는데, 다음과 같음 1. 클래스 이름 첫글자는 항상 대문자 (ex. HelloController) 2. 여러 단어로 이루어진 이름은 단어 첫글자를 대문자로 함. 특히 CamelCase를 자주 쓴다. (ex. inputList) 3. 상수의 이름은 대문자로 하고, 여러 단어로 이루어진 경우 _ 를 붙인다. (ex. MAX_MEMORY_SIZE) 변수의 타입 자바의 자료형에는 기본형과 참조형이 있음 기본형 기본형 변수에는 실제..
[한권떼기] 자바의정석 챕터01. 자바 배경 지식 **자바의 정석(남궁성 저)를 읽고 정리한 글입니다. 자바언어의 특징 1. 운영 체제 독립적 운영체제의 종류에 상관 없이 실행이 가능 => 어떻게 가능할까? : 자바는 JVM이라는 가상 머신과만 통신하고, JVM이 OS와 통신하는 역할을 함 => 무엇이 좋을까? : 안드로이드, 리눅스 등 다양한 운영체제 위에서 실행할 수 있음 2. 객체지향언어 객체지향개념의 특징인 상속, 캡슐화, 다형성이 잘 적용되어 있음 => 무엇이 좋을까? : 객체지향의 장점을 취할 수 있음. ex) 유지보수가 용이, 유연한 구조로 변경이 쉬움 ... 3. 자동 메모리 관리 (가비지컬렉션) 가비지컬렉터가 메모리를 자동으로 관리해줌 => 어떻게 가능할까? : 가비지 컬렉터가 더이상 필요없는 메모리를 체크하여 해제해줌 => 무엇이 좋을..

728x90
반응형