일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 트리
- CleanCode
- java
- 연결 리스트
- 스택 큐 차이
- 쿼리메소드
- 마크다운 테이블
- 리스트
- JsonNode
- 쿠키
- @RequiredArgsConstructor
- code
- 빅 오 표기법
- 계산 검색 방식
- 정렬
- 인터페이스
- WebClient
- 마크다운
- 선형 리스트
- @ComponentScan
- 내부 정렬
- 배열
- query
- 클린코드
- 클린
- 자료구조
- 코드
- @NoArgsConstructor
- mysql
- 클래스
- Today
- Total
목록자료 구조/자바로 배우는 쉬운 자료구조 (32)
Developer Cafe
영업1팀 자동차 판매량 년/분기 1/4 2/4 3/4 4/4 2019년 63 84 140 130 2020년 157 209 251 312 영업2팀 자동차 판매량 년/분기 1/4 2/4 3/4 4/4 2019년 63 84 140 130 2020년 157 209 251 312 int sale[][][] = new int[][][] {{{63, 84, 140, 130}, {157, 209, 251, 312}}, {{59, 80, 130, 135}, {149, 187, 239, 310}}}; 분기, 연도, 팀에 대한 순서를 나타내야 하기 때문에 세 개의 인덱스가 필요하다. 3차원 배열이 필요하다. 3차원 논리 구조를 1차원의 물리 구조로 변환하는 방법은 인덱스인 면을 기준으로하는 방법과 마지막 인덱스인 열을 기준..
class Ex { public static void main(String srgs[]) { int sale[][] = new int[][] = {{63, 84, 140, 130}, {157, 209, 251, 312}); } } 0 1 2 3 0 63 [0][0] 84 [0][1] 140 [0][2] 130 [0][3] 1 157 [1][0] 209 [1][1] 251 [1][2] 312 [1][3] 2차원 배열일 경우 원소 위치 계산방법은 행 우선 순서와 열 우선 순서에 따라 달라진다 원소 위치 계산 - 행의 개수가 ni이고 열의 개수가 nj인 배열 A[ni][nj] 의 시작 주소가 a이고 원소 길이가 l 일때 A[i][j]의 위치는 행 우선 구조에서는 a+(ixni+j)xl 이 되고, 열 우선 구조..
int sale[] = new int[] {157, 209, 251, 312} 1차원 배열 sale은 int데이터 타입으므로 각 원소의 길이는 4바이가 된다. 배열 sale의 각 원소의 위치는 시작주소가 α일때 α+(인덱스 x 4바이트)가 된다. 문) 시작위치가 100번지이고 원소의 길이가 5바이트인 선형 리스트가 행 우선 순서 방법으로 저장되어있을 때, 9번째 원소의 주소는 얼마인가? (※ 9번째 원소의 인덱스는 8이 된다. 인덱스는 0부터 시작!) a+(ixℓ) = 100 + (8x5) = 140
(a) 원소 삭제 전 0 1 2 3 4 5 6 10 20 30 40 50 60 70 (b) 원소 삭제 후 (2번 자리 삭제 후 자리이동) 0 1 2 3 4 5 6 10 20 40 50 60 70 2번 자리 30을 삭제하면 빈자리가 생긴다. 이 자리를 채우기 위해 한칸씩 앞으로 이동해야되는데 이때 이동 횟수는 ( 마지막 원소의 인덱스 - 삭제한 원소의 인덱스) 가된다. 즉, 6 - 2 = 4 가 되므로 필요 이동 횟수는 4 읻다.
(a) 원소 삽입 전 0 1 2 3 4 5 6 10 20 30 40 50 60 (b) 원소 삽입 후(2번자리에 70 삽입) 0 1 2 3 4 5 6 10 20 70 30 40 50 60 이때 이동 횟수는 ( 마지막 자리 인덱스 - 삽입할 자리 인덱스 + 1 ) 이다. 즉, 2번 자리에 빈 자리를 만들기 위한 이동 횟수는 5 - 2 + 1 = 4 이다.
객체는 캡슐화 코드의 재사용성 다형성의 특징을 가진다 캡슐화 - 객체 내부의 메소드와 데이터를 외부에서 사용할 수 없도록 감싸서 객체를 독립적인 프로그램 부품으로 만드는 것이다. 캡슐화된 객체는 지정한 인터페이스를 통해서만 외부와 연결되어 밖에서 안의 내용을 볼 수 없기 때문에 독립성을 갖는다. 이를 데이터 은닉이라 한다. - 캡슐화 되어 있는 객체는 인터페이스만 맞춰주면 다른 프로그램에서도 연결하여 사용할 수 있다. 다형성 - 같은 메소드가 상황에 따라 다른 연산을 수행하는 것이다. 다형성을 갖는 객체의 메소드는 같은 이름으로 호출되어도 호출된 상황에 따라 구분되어 수행된다.
메모리 주소를 계산할 수 있는 참조 값을 다루기 위한 타입으로 배열, 클래스, 인터페이스, 열거 타입으로 나뉜다. 1. 배열 타입 - 같은 데이터 타입을 가진 데이터들을 메모리에 연속으로 저장하여 만든 데이터들의 그룹이다. 2. 클래스 타입 - 여러 타입의 변수와 메소드를 그룹으로 묶어서 새롭게 정의한 사용자 정의 타입이다. 데이터 타입을 정의할 때는 그 데이터를 연산하라 수 있는 메소드도 함께 정의해야 한다. 자바 기본 타입은 그에 대한 메소드가 이미 정의되어 있으므로 메소드 정의없이 타입에 대한 변수만 선언하고 사용한다. 3. 인터페이스 타입 - 인터페이스 타입은 여러 클래스 타입에서 공통으로 사용하는 상수와 메소드를 따로 분리하여 추상화시킨 타입이다. 클래스 타입과 유사하지만, 데이터 멤버에 상수만..
자바 플랫폼은 자바 프로그램을 실행할 수 있게 하는 '하드웨어적 프로그램'으로, 자바 API(Java Application Programming Interface)와 자바 가상 머신으로 구성되어 있다. ● 자바API - 자바 응용프로그램을 만드는 데 필요한 유용한 클래스들과 사용 방법을 문서화하여 제공한다. ● 자바 가상 머신 - 클래스 파일을 실행할 수 있는 기계어 파일로 번역해준다. - 클래스, 자바 스택, 힙, 네이티브 메소드 영역으로 구성되어 있다. ① 클래스 영역 - 실행에 필요한 클래스들을 로드하여 저장하는 공간이다. 로드된 클래스의 멤버 메소드들은 메소드 영역에 저장되고, 상수들은 상수 영역에 저장된다. 또한 사용자가 작성한 클래스 코드를 저장하는 영역이다. ② 자바 스택 영역 - 자바 프로..
요구분석 > 시스템 명세 > 설계 > 구현 > 테스트 > 유지보수 1. 요구분석 - 개발할 소프트웨어의 기능과 제약조건, 목표 등을 소프트웨어 사용자와 함께 명확히 정의하는 단계다. 개발 방법과 필요한 자원과 예산을 예측해야 한다. 요구 명세서를 작성하는데, 소프트웨어의 개발 완료 여부를 결정짓는 근거가 되므로 정확하게 작성해야 한다. 2. 시스템 명세 - 시스템 기능 명세서를 작성하여 소프트웨어의 입력 데이터는 무엇이며, 입력 데이터로 처리하는 내용과 그 결과 생성되는 출력이 무엇인지 정의한다. 기능 명세서는 개발 과정에서 의견 차이나 오류로 인해서 재개발 작업이나 사용자 불만이 발생하지 않도록 정확하게 작성한다. 3. 설계 - 시스템 명세 단계에서 정의한 기능을 실제 수행할 수 있도록 논리적으로 결정..
● 존 형식 ● 팩 형식 1. 존 형식 - 10진수는 1바이트(8비트)를 사용해 표현하는데 존 형식은 상위 4비트를 존형식으로 하위 4비트를 수치영역으로 표현한 것이다. ○ +213 1111 0010 1111 0001 1100 0011 F 2 F 1 C(+) 3 ○ -213 1111 0010 1111 0001 1101 0011 F 2 F 1 D(-) 3 2. 팩 형식 - 존 형식에서 존 영역 이외에는 항상 1111이 들어가므로 기억 공간을 낭비하고 처리시간을 지연시킨다. 팩 형식에서는 1바이트에 10진수 두 자리를 표현한다. 그리고 최하위 바이트의 하위 4비트에 부호를 표시한다. ○ +213 0010 0001 0011 1100 2 1 3 C(+) ○ -213 0010 0001 0011 1101 2 1 3..