반응형

IT is True 550

[Java] 자바 ArrayList 클래스 개념 정리 및 활용

ArrayList ArrayList는 List 인터페이스를 구현한 클래스로 컬렉션 프레임워크에서 가장 많이 사용된다. 기능적으로는 Vector와 동일하지만, 기존의 Vector를 개선한 것으로 주로 ArrayList를 사용한다. ArrayList에 객체를 추가하면 객체가 인덱스로 관리된다는 점에서 배열과 유사하다. 그러나 배열은 생성될 때 크기가 고정되며, 크기를 변경할 수 없다. 하지만 ArrayList는 저장 용량을 초과하여 객체들이 추가되면, 자동으로 저장용량이 늘어나게 된다. 또한 List 자료구조의 특성을 이어받아 데이터가 연속적으로 존재하여 순서를 유지한다. ArrayList의 생성 List 객체이름 = new ArrayList(초기 저장 용량); ArrayList를 생성하기 위해서는 저장할 ..

[Java] 자바 List<E> 컬렉션 인터페이스 정리

List List 인터페이스는 배열과 같이 객체를 일렬로 늘어놓은 구조를 가지고 있다. 객체를 인덱스로 관리하여 객체를 저장하면 자동으로 인덱스가 부여되고, 인덱스로 객체를 검색, 추가, 삭제 등의 기능을 수행할 수 있다. List 인터페이스를 구현한 클래스는 ArrayList, Vector, LinkedList, Stack 등이 있다. List 인터페이스에서 사용 가능한 메서드는 컬렉션 인터페이스의 메서드와 함께 사용이 가능하다. add(int index, Object element) 주어진 인덱스에 객체를 추가하며 반환 값은 없다. addAll(int index, Collection c) 주어진 인덱스에 컬렉션을 추가하며 그 결과를 boolean 타입으로 반환한다. set(int index, Obje..

[Java] 자바 컬렉션 프레임워크 개념 정리 (Collection Framework)

컬렉션 프레임워크란? (Collection Framework) 자바에서는 데이터를 저장하기 위해 다양한 자료 구조를 바탕으로 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 컬렉션을 만들고, 관련된 인터페이스와 클래스를 포함하여 제공한다. 이를 컬렉션 프레임워크라고 한다. 컬렉션 프레임워크가 제공하는 다양한 인터페이스와 구현 클래스를 활용하면, 보다 객체 지향적이고 재사용성 높은 코드를 작성할 수 있다. 컬렉션은 여러 데이터들의 집합을 의미한다. 즉, 여러 데이터들을 그룹으로 묶어놓은 것을 컬렉션이라 하며, 컬렉션을 다루는 데 있어 편리한 메서드들을 미리 정의해 놓은 것을 컬렉션 프레임워크라 한다. 컬렉션 프레임워크는 특정 자료 구조에 데이터를 추가, 삭제, 수정, 검색 등의 동작을 수행할 수 있는 ..

[Java] 자바 컴파일 에러와 런타임 에러

컴파일 에러(Compile Time Error) 컴파일 에러는 컴파일할 때 발생하는 에러이다. 즉, 자바 컴파일러가 에러를 감지하여 프로그램을 실행조차 하지 않는다. 이 경우 IDE에서 미리 감지하여 알려주기 때문에 상대적으로 쉽게 발견하고 수정할 수 있다. 컴파일 에러에는 주로 세미 콜론(;) 또는 괄호() 생략, 잘못된 데이터 타입, 잘못된 포맷 등 문법적인 문제인 Syntax 에러를 발생한다. public class ErrorTest { public static void main(String[] args) { for (int i = 0; i < 5; i++) { System.out.println(i) } } } java: ';' expected 다음과 같이 System.out.println(i) 구..

[Java] 자바 예외 처리(Exception Handling) 개념 정리 및 활용

Intro 프로그래밍을 하고 실행하면 수많은 에러와 예외를 마주하게 된다. 에러 또는 예외가 발생하게 되면 프로그램은 의도한 대로 작동하지 않거나 실행을 비정상적으로 종료하기도 한다. 이러한 에러와 예외들이 발생할 가능성이 있을 때, 효과적으로 처리하는 방법이 바로 예외 처리이다. 예외 처리란? (Exception Handling) 예외 처리는 코드 작성자가 예기치 않게 발생하는 에러들에 대응할 수 도록 사전에 방지하는 것이다. 예외 처리를 하면 프로그램의 비정상적인 종료를 방지하여 정상적인 실행 상태를 유지할 수 있다. 프로그램에서 에러가 발생하는 이유 에러가 발생하는 원인은 수없이 다양하다. 하지만 자주 발생하는 에러의 몇 가지 예시는 다음과 같다. 사용자의 입력 실수 네트워크 연결 끊김 메모리 공간..

[Java] 자바 래퍼 클래스(Wrapper Class) 개념 정리 및 활용

래퍼 클래스(Wrapper Class) 래퍼 클래스는 기본 타입의 데이터를 객체로 취급하여 사용(참조 변수를 사용) 하기 위해 사용한다. 예를 들어, 제네릭 같은 기본형 데이터 타입의 사용을 하지 못하나, 기본 타입의 데이터를 사용해야만 할 경우에 사용된다. 실제로, Integer와 Double와 같은 클래스는 내부에서 기본 데이터 타입을 감싸는 형태로 구현되어 있다. public final class Integer extends Number implements Comparable { ... @Native public static final int MIN_VALUE = 0x80000000; @Native public static final int MAX_VALUE = 0x7fffffff; ... } 래퍼..

[Java] 자바 제네릭(Generic)이란? 개념 정리 및 활용

Intro class Parents { private String info; Parents(String info) { this.info = info; } public String getInfo() { return info; } public void setInfo(String info) { this.info = info; } } 다음과 같은 코드가 있을 때, 문자열 변수 info의 데이터 타입은 String이다. 따라서 Parents 클래스를 통해 만들어진 인스턴스는 String 타입의 데이터를 저장해야 한다. 만약, Parents 클래스와 같은 기능을 하면서 String이 아닌 다양한 데이터 타입도 저장할 수 있도록 하려면 타입 별로 같은 내용의 클래스를 반복적으로 작성해야 할 것이다. class Par..

[Codestates] 코드스테이츠 백엔드 Section1 회고

Intro 코드스테이츠에 들어와서 학습한 지 벌써 한 달이라는 시간이 지났다. 코드스테이츠를 하기 전까지만 해도 밤낮이 바뀐 생활을 하며, '어떻게든 되겠지~', '이만하면 됐으니 내일부터..' 등 지금 생각하면 이렇게 시간을 낭비할 수 있나 싶을 정도로 답 없는 하루를 보낸 반면에, 코드스테이츠를 시작하고 한 달이 지난 지금, 하루하루 바쁜 생활을 보내며 천천히 미래를 개척해나가고 있는 나는 많은 것들이 변해있다. 돌이켜 보면, 나는 대학시절 팀 프로젝트를 할 때 빼고는 무엇인가에 몰입하면서 시작했던 적이 없었다. 그때의 기억이 떠오르면서 다시 내가 무엇인가에 몰입하고 시작하는 좋은 시간들을 보내고 있다. 이와 동시에 내 몸이 두 개였으면 하는 생각을 매일 한다. 그만큼 하루하루가 너무 소중하고 하루에..

[Java] 자바 이넘(Enum: 열거형) 개념 정리 및 활용

Enum(열거형: Enumerated Type) Enum(이넘)은 자바에서 여러 상수들을 보다 편리하게 선언할 수 있도록 만들어진 문법 요소이다. Enum은 주로 서로 연관 있는 내용들을 한데 모아 관리하기 쉽도록 하기 위해 사용한다. 예를 들어, 계절(봄, 여름, 가을, 겨울)이나 방위(동, 서, 남, 북), 과목(국어, 영어, 수학, 사회, 과학) 등과 같이 관련 있는 내용들을 묶어서 관리할 수 있다. 자바에서 상수는 변하지 않는 값을 의미하며, final 키워드를 사용하여 선언한다. Enum은 서로 연관된 상수들의 집합으로 서로 관련 있는 변하지 않는 데이터를 다루는 데 사용한다. Enum을 사용하는 이유 JDK 1.5 이전 버전에서는 enum 문법을 지원하지 않았다. 따라서 여러 개의 상수를 사용..

[Java] 자바 인터페이스 활용 예제

Intro 인터페이스를 왜 사용하고, 이것이 가지는 장점이 무엇인지 예제를 통해 알아보도록 한다. 예상 시나리오 1. 식당를 운영하는 사람이 있다. 2. 단골손님들은 매일 먹는 음식이 정해져 있다. 3. 단골손님 A는 항상 김치찌개를 주문한다. 4. 단골손님 B는 항상 제육볶음을 주문한다. 인터페이스를 활용하지 않는 경우 // 식당 손님 class ResCustomer { public String resCustomer; public void setResCustomer(String resCustomer) { this.resCustomer = resCustomer; } } // ResCustomer 클래스로부터 단골손님 A와 B 상속 class ResCustomerA extends ResCustomer { ..

반응형