Backend/Java

· Backend/Java
리스트 추상화List 자료 구조순서가 있고, 중복을 허용하는 자료 구조를 리스트(List)라 한다. 인터페이스 도입 다형성과 추상화를 활용하면 클라이언트 코드를 변경하지 않고, 원하는 리스트 전략을 런타임에 지정할 수 있다. 의존관계 주입package collection.list;public class BatchProcessor { private final MyList list; public BatchProcessor(MyList list) { this.list = list; } public void logic(int size) { long startTime = System.currentTimeMillis(); for (int i = 0; i (..
· Backend/Java
노드와 연결낭비되는 메모리 없이 딱 필요한 만큼만 메모리르 ㄹ확보해서 사용하고, 또 앞이나 중간에 데이터를 추가하거나 삭제할 때도 효율적인 자료 구조가 있는데, 바로 노드를 만들고 각 노드를 서로 연결하는 방식이다. 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/Java
배열의 특징배열과 인덱스배열과 같이 여러 데이터(자료)를 구조화해서 다루는 것을 자료 구조라 한다.자바는 배열 뿐만 아니라, 컬렉션 프레임워크라는 이름으로 다양한 자료 구조를 제공한다. 배열의 특징배열에서 자료를 찾을 때 인덱스(index)를 사용하면 매우 빠르게 자료를 찾을 수 있다.인덱스를 통한 입력, 변경, 조회의 경우 한번의 계산으로 자료의 위치를 찾을 수 있다.  공식: 배열의 시작 참조 + (자료의 크기 * 인덱스 위치)배열에서 인덱스를 사용하는 경우 데이터가 아무리 많아도 한 번의 연산으로 필요한 위치를 찾을 수 있다. 배열의 검색배열에 들어있는 데이터를 찾는 것을 검색이라 한다.배열의 순차 검색은 배열에 데이터가의 크기만큼 연산이 필요하다. 배열의 크기가 n이면 연산도 n만큼 필요하다.  ..
· Backend/Java
제네릭 정리제네릭에 타입 매개변수 상한을 사용해서 타입 안정성을 지키면서 상위 타입의 원하는 기능까지 사용할 수 있었다.   제네릭 타입정의: GenericClass 타입 인자 전달: 객체를 생성하는 시점예)  new GenericClass 제네릭 메서드정의: T genericMethod(T t)타입 인자 전달: 메서드를 호출하는 시점예) GenericMethod.genericMethod(i)  제네릭 메서드는 클래스 전체가 아니라 특정 메서드 단위로 제네릭을 도입할 때 사용한다.제네릭 메서드를 정의할 때는 메서드의 반환 타입 왼쪽에 다이아몬드를 와 같이 타입 매개변수를 적어준다.제네릭 메서드는 메서드르 실제 호출하는 시점에 다이아몬드를 사용해서 와 같이 타입을 정하고 호출한다.인스턴스 메서드, sta..
· Backend/Java
제네릭제네릭이 필요한 이유 정리다형성을 활용한 덕분에 코드의 중복을 제거하고, 기존 코드를 재사용할 수 있게 됬다. 하지만 입력할 때 실수로 원하지 않는 타입이 들어갈 수 있는 타입 안정성 문제가 발생한다. 예를 들어 integerBox에는 숫자만 넣어야 하고, StringBox에는 문자열만 입력할 수 있어야한다. 하지만 박스에 값을 보관하는 set()의 매개변수가 Obejct 타입이기 때문에 다른 타입의 값을 입력할 수 있다. 그리고 반환 시점에서 Object를 반환하기 때문에 원하는 타입을 정확하게 받을 수 없고 항상 위험한 다운 캐스팅을 시도해야 한다. 결과적으로 이 방식은 타입 안정성이 떨어진다.다형성을 통한 중복 해결 시도 제네릭 적용제네릭을 사용하면 코드 재사용과 안정성이라는 두 마리 토끼를 ..
Coffebara
'Backend/Java' 카테고리의 글 목록 (5 Page)