본문 바로가기

Foundation/- Java

(17)
Collection Framework(ArrayList, HashSet, HashMap) Collection Framework 란? - 여러 데이터들을 편하게 처리하기 위한 방법을 제공해주는 클래스들의 모임 - Collection : 데이터 그룹 - Framework : 프로그래밍 방식 - Collection Framework의 핵심적인 Interface는 List, Set, Map가 있다. ▶ List - 순서가 있고 중복이 가능한 데이터의 집합 List인터페이스를 상속받고 있는 대표적인 Class(ArrayList, Vector, LinkedList) (1) ArrayList Class - 배열과 비슷한 기능을 하지만 다루기 쉽고 유동적이다. (배열의 단점을 보완) ArrayList a1 = new ArrayList(); ---> a1 객체를 생성 a1.add("data") ---> 데이..
유용한 클래스(StringBuffer, Random)(2) 1.5 join()과 StringJoiner join()은 여러 문자열 사이에 구분자를 넣어서 결합한다. 구분자로 문자열을 자르는 split()과 반대의 작업을 한다고 생각하면 이해하기 쉽다. java.util.StringJoiner클래스를 사용해서 문자열을 결합할 수도 있다. 예시를 보면 쉽게 이해가 갈 것이다. 2.1 StringBuffer클래스의 특징 - String처럼 문자열 배열(char[])을 내부적으로 가지고 있다. - String클래스와 달리 내용을 변경할 수 있다. - 인스턴스를 생성할 때 버퍼(배열)의 크기를 충분히 저정해주는 것이 좋다. (버퍼가 작으면 성능을 저하시킨다. ) - String클래스와 달리 equals()를 오버라이딩하지 않았다. 2.2 StringBuffer클래스의 생..
유용한 클래스(String class)(1) 1.1 String클래스의 특징 - 문자열 배열(char[])과 그에 관련된 메서드들이 정의되어 있다. - String인스턴스의 내용은 바꿀 수 없다. (StringBuffer인스턴스에 저장된 문자열은 변경이 가능하다) 1.2 문자열의 비교 (String str = "abc" vs String str = new String("abc"); ▶예시. equals()를 사용했을 때는 두 문자열의 내용("abc")를 비교하기 때문에 두 경우 모두 true를 결과로 얻는다. 여기서 문자열 리터럴 "abc"는 한번만 저장되며, 따라서 str1과str2는 "abc"인스턴스를 공유하게 된다. 따라서 true를 반환하고 str3과 str4는 new 연산자에 의해서 메모리할당이 이루어지기 때문에 새로운 String인스턴스..
유용한 클래스(Object class) 1.1 Object클래스의 메서드 - 모든 클래스의 최고 조상이다. 11개의 메서드만 가지고 있다. - notify(), wait() 등은 쓰레드와 관련된 메서드이다. - equals(), hashCode(), toString()은 적절히 오버라이딩해야 한다. Object클래스의 메서드 설 명 protected Object clone() 객체 자신의 복사본을 반환한다. public boolean equals(Object obj) 객체 자신과 객체 obj가 같은 객체인지 알려준다. (같으면 true 다르면 false를 반환) protected void finalize() 객체가 소멸될 때 가비지 컬렉터에 의해 자동적으로 호출된다. 이 때 수행되어야하는 코드가 있는 경우에만 오버 라이딩한다. public C..
예외처리 1.1 프로그램 오류 ▶ 컴파일 에러(compile-time error)와 런타임 에러(luntime error) 컴파일 에러 - 컴파일할 때 발생하는 에러 ex) 오타 런타임 에러 - 실행할 때 발생하는 에러 ex) 배열 범위의 초과 논리적 에러 - 의도와 다른 결과를 초래 ex) 창고의 재고가 음수 등 ▶ Java의 런타임 에러 에러 - 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 예외 - 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 1.2 예외처리의 정의와 목적 - 에러(error)는 어쩔 수 없지만, 예외(exception)는 처리해야 한다. ▶정의 - 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것 ▶목적 - 프로그램의 비정상 종료를 막고, 정상적인..
추상클래스, 인터페이스, 내부클래스 1. 추상클래스란? (abstract class) - 클래서가 설계도라면 추상클래스는 '미완성 설계도' - 추상메서드(미완성 메서드)를 포함하고 있는 클래스 - 완성된 설계도가 아니므로 인스턴스를 생성할 수 없다. - 다른 클래스를 작성하는 데 도움을 줄 목적으로 작성된다. - 일반메서드가 추상메서드를 호출할 수 있다. ( 호출할 때 필요한 건 선언부 ) 2. 추상메서드(abstract method)란? - 선언부만 있고 구현부(몸통, body)가 없는 메서드 - 꼭 필요하지만 자손마다 다르게 구현될 것으로 예상되는 경우에 사용 - 추상클래스를 상속받는 자손클래스에서 추상메서드의 구현부를 완성해야한다. (만약에 자손클래스에서 추상메서드의 구현부를 다 정의하지 않는다면 abstract를 붙여줘야 한다.) ..
제어자(modifier) 1. 제어자란?? - 클래스, 변수, 메서드의 선언부에 사용되어 부가적인 의미를 부여한다. - 제어자는 크게 접근 제어자와 그 외의 제어자로 나뉜다. - 하나의 대상에 여러 개의 제어자를 조합해서 사용할 수 있으나, 접근제어자는 단 하나만 사용할 수 있다. 접근제어자 - public, pretected, default, private 그 외 - static, final, abstract, native, transient, syschronized, volatile, strictfp 1-1 그 외 제어자 자주 쓰이는 static, final, abstract에 대해 알아보자. 나머지 그 외 제어자는 자바 프로그래밍을 하면서 익혀 나가면 된다. ▶ static - 클래스의, 공통적인 static 제어자는 가장..
생성자 1. 생성자란 ? ? ▶ 생성자 - 인스턴스가 생성될 때마다 호출되는 '인스턴스 초기화 메서드' -인스턴스 초기화란 인스턴스 변수에 적절한 값을 저장하는 것이다. - 인스턴스 변수의 초기화 또는 인스턴스 생성시 수행할 작업에 사용 - 몇가지 조건을 제외하고는 메서드와 같다. - 모든 클래스에는 반드시 하나 이상의 생성자가 있어야 한다. (지금까지 생성자를 따로안해준이유는 기본 생성자 덕분 밑에 나옵니다.) ※ Card c = new Card(); 을 하면 일어나는 일 (1) 연사자 new에 의해서 메모리(heap)에 Card클래스의 인스턴스가 생성된다. (2) 생성자 Card()가 호출되어 수행된다. (3) 연산자 new의 결과로, 생성된 Card인스턴스의 주소가 반환되어 참조변수 c에 저장 된다. ▶ ..