노드와 연결낭비되는 메모리 없이 딱 필요한 만큼만 메모리르 ㄹ확보해서 사용하고, 또 앞이나 중간에 데이터를 추가하거나 삭제할 때도 효율적인 자료 구조가 있는데, 바로 노드를 만들고 각 노드를 서로 연결하는 방식이다. public class Node { Object item; Node next;}---------------------------------------------------public class NodeMain1 { public static void main(String[] args) { //노드 생성하고 연결하기: A-> B -> C Node first = new Node("A"); first.next = new Node("B"); ..
Backend
배열의 특징배열과 인덱스배열과 같이 여러 데이터(자료)를 구조화해서 다루는 것을 자료 구조라 한다.자바는 배열 뿐만 아니라, 컬렉션 프레임워크라는 이름으로 다양한 자료 구조를 제공한다. 배열의 특징배열에서 자료를 찾을 때 인덱스(index)를 사용하면 매우 빠르게 자료를 찾을 수 있다.인덱스를 통한 입력, 변경, 조회의 경우 한번의 계산으로 자료의 위치를 찾을 수 있다. 공식: 배열의 시작 참조 + (자료의 크기 * 인덱스 위치)배열에서 인덱스를 사용하는 경우 데이터가 아무리 많아도 한 번의 연산으로 필요한 위치를 찾을 수 있다. 배열의 검색배열에 들어있는 데이터를 찾는 것을 검색이라 한다.배열의 순차 검색은 배열에 데이터가의 크기만큼 연산이 필요하다. 배열의 크기가 n이면 연산도 n만큼 필요하다. ..
제네릭 정리제네릭에 타입 매개변수 상한을 사용해서 타입 안정성을 지키면서 상위 타입의 원하는 기능까지 사용할 수 있었다. 제네릭 타입정의: GenericClass 타입 인자 전달: 객체를 생성하는 시점예) new GenericClass 제네릭 메서드정의: T genericMethod(T t)타입 인자 전달: 메서드를 호출하는 시점예) GenericMethod.genericMethod(i) 제네릭 메서드는 클래스 전체가 아니라 특정 메서드 단위로 제네릭을 도입할 때 사용한다.제네릭 메서드를 정의할 때는 메서드의 반환 타입 왼쪽에 다이아몬드를 와 같이 타입 매개변수를 적어준다.제네릭 메서드는 메서드르 실제 호출하는 시점에 다이아몬드를 사용해서 와 같이 타입을 정하고 호출한다.인스턴스 메서드, sta..
제네릭제네릭이 필요한 이유 정리다형성을 활용한 덕분에 코드의 중복을 제거하고, 기존 코드를 재사용할 수 있게 됬다. 하지만 입력할 때 실수로 원하지 않는 타입이 들어갈 수 있는 타입 안정성 문제가 발생한다. 예를 들어 integerBox에는 숫자만 넣어야 하고, StringBox에는 문자열만 입력할 수 있어야한다. 하지만 박스에 값을 보관하는 set()의 매개변수가 Obejct 타입이기 때문에 다른 타입의 값을 입력할 수 있다. 그리고 반환 시점에서 Object를 반환하기 때문에 원하는 타입을 정확하게 받을 수 없고 항상 위험한 다운 캐스팅을 시도해야 한다. 결과적으로 이 방식은 타입 안정성이 떨어진다.다형성을 통한 중복 해결 시도 제네릭 적용제네릭을 사용하면 코드 재사용과 안정성이라는 두 마리 토끼를 ..
1. 예외 처리 도입1-1. 시작오류 코드어떤 종류의 오류가 발생했는지 구분하기 위해 예외 안에 오류 코드를 보관한다.오류 메세지오류 메세지에 어떤 오류가 발생했는지 개발자가 보고 이해할 수 있는 설명을 담아둔다. 1-2. 예외 복구 1-3. 정상, 예외 흐름 분리 1-4. 리소스 반환 문제 1-5. finally정리자바 예외 처리는 try ~ catch ~ finally 구조를 사용해서 처리할 수 있다. 덕분에 다음과 같은 이점이 있다.정상 흐름과 예외 흐름을 분리해서, 코드를 읽기 쉽게 만든다.사용한 자원을 항상 반환할 수 있도록 보장해준다. 2. 예외 계층2-1. 시작예외를 단순히 오류 코드로 분류하는 것이 아니라, 예외를 계층화해서 다양하게 만들면 더 세밀하게 예외를 처리할 수 있다. ..