JAVA(77)
-
List - ArrayList
ListList 는 Collection Framework 의 자료 구조중 하나로, 순서가 있으며, 중복을 허용한다. List 특징과 한계점앞서, 배열은 크기가 정적으로 고정된다. 는 내용을 학습했다.List는 이러한 한계점을 극복. 크기가 동적으로 변동된다.public class 내맘대로ArrayList{ private static final int DEFAULT_CAPA = 10; // 배열의 길이 private Obejct[] elementData; private int size; // 배열에 담긴 자료 수 private void grow(){ /* 1. 기존 크기 * 2 배값 구하기 2. 새로운 배열 생성[2배 크기] ..
2024.07.02 -
복습 - 배열
앞서 기본적인 자료구조인 배열에 대해 학습 하였다.배열을 복습해보자. 배열관련있는 데이터들은 연속적으로 묶은 기본적인 자료구조이다. 배열의 특징과 한계점1. 배열은 인덱스를 통해 배열에 담긴 값에 빠르게 접근 및 수정할 수 있다. 1회연산 O(1)공식배열의 시작 참조값 + (데이터 크기 * 인덱스 위치)ex)int[] arr = new int[5_000];arr[4500] x100 + (4byte * 4500) // x10018002. 순서가 보장된다.3. 배열의 중간간 위치를 수정하기 위한 메서드를 일일이 작성해야 한다.4. 배열의 처음, 중간에 값을 추가/삭제 하기 위해선 기존 데이터 상당량을 이동시켜야 한다. O(n) (기존 값들이 훼손되거나 불필요한 공간이 남으면 안 되기 때문)5. 배열을..
2024.07.02 -
배열
배열이란?배열은 연관된 데이터를 모아서 관리하기 위한 자료 구조이다. 생성 원리int[] intArr = new int[5]; // x100 자바에서 배열은, heap 메모리 영역에 생성된다.배열 생성 후, 할당받은 메모리의 주소값을 변수에 담아 활용하게 된다. 이렇게 생성된 배열은, 연속된 메모리 구조를 갖는다. (연관된 데이터 모아서 관리하는 게 목적이니까)이 때, 배열은 인덱스를 갖게 된다. 이 때 인덱스는 0번 부터 시작한다. 인덱스는 원하는 메모리 위치에 접근하는 이정표가 된다.intArr[0] = 1;intArr[1] = 5;intArr[2] = 9;intArr[3] = 15; 접근 공식메모리 주소값 + (배열의 타입이 갖는 메모리 크기 x 인덱스) 위의 공식을 바탕으로, 인덱스를 통해 ..
2024.06.23 -
예외처리 - try ~ catch ~ finally
try{ // 예외가 발생할 수 있는 코드}catch(예외클래스 e){ // 정상화시키는 코드}finally{ // try 블럭에 담긴 코드 종료 후 실행될 코드} 앞선 글에서 try~catch 문을 짧게나마 들여다 보았다.try ~ catch 문에는 문제점이 존재한다. catch(잡아낼 예외 클래스 e){} 에서 예상했던 예외 외의 상황이 발생했을 때,별도의 처리가 없으면 그대로 예외가 밖으로 날아가 버리고결국 프로그램 종료에 이른다는 것이다. 이 때, 사용한 자원에 대한 회수 처리가 이루어져야 하는데,JVM 관리 하에 있는 코드면 몰라도, DB 등 외부 프로그램을 사용할 경우, db는 자원회수(연결 종료)가 이루어지지 않는다.앱에서 동일한 오류가 발생할 때마다 연결이 계속해서 새로 생성되고, 유지되고..
2024.06.03 -
예외처리 - Unchecked Exception(런타임 익셉션)
RuntimeException 을 상속받는 모든 sub 예외들은 Unchecked Exception이라 했다.코드 작성 시 컴파일러가 예외를 체크하지 않는다.Unchecked 와 Checked 예외라는 점에서 동일하다. 그러나 Unchecked 는 throws 생략이 가능하다. thorws 를 생략해도 예외 발생 시 상위(메서드를 호출한 쪽)으로 예외를 던진다.public class UncheckedException extends RuntimeException{ public UncheckedException(){ ...; }} public void call(){ throw new 런타임 예외 or 상속 받은 예외(); }예외를 발생키셨으면, 처리하거나, 던져야 하는데, 해당 코드는 처리도, 던..
2024.06.02 -
예외처리 -Checked Exception
예외처리 계층 구조도Error메모리 부족이나 심각한 시스템 오류로 인해 앱 내에서 복구가 불가능한 예외이다. Exception- 앱 내에서 사용할 수 있는 실질적인 최상위 예외이다.- Exception 과 Exception을 상속받는 하위 클래스는 모두 컴파일러가 체크하는 체크 예외이다. 단, RuntimeException 은 컴파일러가 체크해주지 않는다.RuntimeException- 컴파일러가 체크하지 않는 언체크 예외이다.- RuntimeException을 상속하는 모든 예외는 언체크 예외이다.- 통용적으로, 앱 실행 중 발생하는 익셉션을 RuntimeException 으로 부르곤 한다.Exception개발자는 checked 예외를 처리하기 위해 명시적 작업을 수행해야 한다.Exception은 클래..
2024.06.02