분류 전체보기(129)
-
빅오(Big-o) 표기법
빅오 표기법?알고리즘 성능을 분석할 때 사용하는 표현 방식이다. 정확한 계산을 위한 표기법은 아니다.눈대중용 표기법이라 생각하고 편하게 보자. 종류 - O(1) : 상수형입력 데이터 크기와 상관 없이 알고리즘 실행 시간이 일정함.ex) 배열 등에서 인덱스를 사용할 때 - O(log n) : 로그형데이터 크기의 로그에 비례하여 증가함.ex) 이진 탐색 (트리 구조 등) - O(n) : 선형입력 데이터의 크기와 비례하여 실행 시간이 증가함.ex) 배열의 검색, 배열 모든 요소 순회 등 - O(n log n) : 선형로그형 - O(n^2) : 제곱형데이터 크기의 제곱에 비례해 실행시간이 증가함.ex) 2중첩 반복문을 사용하는 알고리즘 - O(n^n) : 지수형데이터의 크기의 N제곱에 비례해 실행시간이 폭발적으..
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 -
중첩 클래스 -정적 중첩 클래스
public class NestedOuter { private static int outClassValue = 1; private int outInstanceValue = 2; static class nested{ private int nestedInstanceValue = 3; public void print() { // 자신의 멤버에 접근 - 가능 System.out.println("nestedInstanceValue = " + nestedInstanceValue);// // 바깥 인스턴스에 직접 접근 - 불가능// System.out.println("outInstanceValue ..
2024.05.28 -
중첩 클래스
중첩 클래스말 그대로 중첩해서 정의한 클래스. 이를 중첩 클래스라 한다. 중첩 클래스 분류중첩 클래스는 정의하는 위치, 키워드에 따라 분류 된다. 내부 클래스 - non-static(비정적)중첩 클래스 - static(정적)Inner class(내부 클래스)static nested class(정적 중첩 클래스)Local class(지역 클래스) anonymous class(익명 클래스) *바깥 인스턴스 소속*전혀 다른 인스턴스 중첩 클래스 선언 위치(= 변수의 선언 위치)- 정적 중첩 클래스 위치 = 정적 변수 위치- 내부 클래스 위치 = 인스턴스 변수 위치- 지역 클래스 위치 = 지역 변수 위치(= 코드 블럭 안)ㄴ 익명 클래스는 지역 클래스의 하위 개념이다. 특수성을 띄고 있다. 내부 vs 중첩중첩(..
2024.05.28