LANGUAGE/JAVA

스프링을 복습하면서 예외를 공부하는 시간이 다가왔다. 이전부터 항상 예외를 공부할 때면 나도 모르게 움츠러 들게 되는 느낌... 이라 ... 쫄지 않고자...! 정리 하려고 한다.ㅎㅎ 뭔가 정리하고 넘어가야 그래도 다음에 덜 무서워 할 것 같은 느낌! 예외는 종류도 워낙 많고 우리가 평소에 보는 오류들과도 관련이 있다 생각하니 내가 많이 부족한가?! 하는 생각도 많이 들고 쉽지 않게 느껴지는 듯 하다. 🔵 예외의 종류 Throwable 은 모든 에러와 예외의 최상위 클래스 - 에러 - 예외 (체크 예외, 언체크 예외) 에러(Error) 에러는 자바 JVM에 문제가 생겼을 때, 하드웨어 자체에 문제가 생겼을 때 등 과 같이 비정상적인 상황에서 발생한. 애플리케이션에 던지는 것으로 개발자가 직접 할 수 있는..
마지막 질문에 대한 답변이다. 항상 문제를 풀면서 사실 Iterator가 뭔지 모르고..어떻게 사용해야 할지 감이 잘 안잡혔었는데...🤔 이번 기회를 통해 공부할 수 있어서 너무 좋다! 🔵 Iterator의 사용 목적은 무엇인가요? 어떤 특징이 있죠? 💬 Iterator는 Collection 요소를 반복적으로 순회하기 위해 사용됩니다. List, Map, Set 등 의 데이터 구조에서 요소를 하나씩 순차적으로 접근하고 처리할 수 있게 해줍니다. Iterator는 내부적으로 컬렉션의 상태를 관리하고, 다른 스레드의 변경 작업이 일어나더라도 안정적으로 요소를 반복합니다. 이를 통해 여러 스레드가 동시에 컬렉션의 요소에 접근할 때 충돌이나 데이터 불일치 문제를 방지할 수 있습니다. Iterator는 한 번만 ..
스터디 두 번째 질문이다. Array와 ArrayList의 차이점에 대해 설명하기 ! 앞의 Collection Framework와 이어지는 질문이라고도 할 수 있다 : ) +) CS 스터디를 하면서 추가한 부분들이 있어 따로 노션 링크를 첨부한다. 아래의 내용보다 더 보기 쉽게 정리한 것이다. 역시 한 번 볼 때 보다 두 번 세 번 볼 때 더 이해가 쉽다... Array vs ArrayList vs LinkedList 비교 Array vs ArrayList vs LinkedList | Built with Notion 데이터를 저장하는 자료 구조 luminousol.notion.site 🔵 Array와 ArrayList의 차이점을 말해주세요. Array는 자바에서 제공하는 기본 기능이며 ArrayList는..
항상 정리하고싶었던 컬렉션을 드디어 드디어 스터디덕분에 정리하는 기회가 생겼다......ㅋ 항상 말로만 해야지 했던 부분이었는데 이렇게 정리할 수 있는 기회가 되어 너무 좋다. 그리고 내가 맡은 부분이 뭔가 제일 광범위한? 느낌이라... 재밌다... 진작에 시작할 걸.. 시간이 너무 없다ㅎㅎ 🔵 자바 컨테이너(컬렉션 프레임워크)란? 💬 "자바 컬렉션 프레임워크" 는 자바에서 제공하는 표준 라이브러리로 객체들을 저장하고 관리하는 자료구조입니다. 객체들을 담고 관리하는 역할을 수행하기 때문에 컨테이너 라고 부르기도 합니다. 컬렉션 프레임워크는 자바의 인터페이스를 사용하여 구현됩니다. 자바 컬렉션 프레임워크는 'java.util' 패키지에 포함되어 있으며, List, Set, Queue, Map 등 다양한 인..
스터디 공부하면서 정리한 내용 옮겨 적기 : ) 사실 공부하면서 정리하기 전 까지 스트링도 기본 타입인 줄 알았다.. 이전에 참조 타입과 기본 타입에 대해 정리를 한 적이 있는데 그 때 뭘 공부했는지 잘 모르겠을 정도로 다시 보며 오..이런 내용도 있었구나 하는 것이 많았다. 그래서 다시 정리를 하는 게 맞다고 생각했고 한 번 더 적는다. 하핫... 😅 나를 위해서다... 내가 선택한 질문은 "String은 기본 데이터 타입입니까?, String 클래스의 일반적인 메서드는 무엇이 있나요?" 두 가지 였다. 🔴 String은 기본 데이터 타입인가? 💬 아닙니다. String 데이터는 문자열을 표현하고 다루기 위한 “참조 데이터 타입”입니다. String은 클래스로 기본형 데이터가 아닌 "객체"라고 할 수 ..
제네릭(Generic)이란? 제네릭은 자바의 타입 안정성을 위한 프로그래밍 기법으로 제네릭을 통해 컬렉션에 저장될 데이터의 타입을 컴파일 시점에 체크 가능하여 런타임 시 발생하는 에러를 방지할 수 있습니다. 제네릭은 클래스나 인터페이스, 메서드를 정의할 때 타입을 명시적으로 고정하지 않고 외부에서 지정할 수 있도록 함으로써 다양한 타입에서의 동작이 가능합니다. 이렇게 일반화된 코드는 중복 코드를 줄이고 코드의 재사용성을 높일 수 있습니다. 제네릭을 사용하지 않는 코드에서는 명시적으로 데이터의 타입을 캐스팅 해주어야 하지만, 제네릭의 사용함으로써 특정 타입을 지정하여 타입 캐스팅 과정을 생략 하는 등 형변환의 번거로움을 줄여줍니다. 제네릭(Generic)은 포괄적인, 일반적인이라는 뜻을 가지고 있다. 클래..
그래프란? 그래프는 정점(vertex)와 간선(edge)의 집합으로 구성된다. 정점은 노드, 간선은 엣지를 말 하며 정점과 정점을 잇는 선을 간선이라고 한다. 그래프는 리스트와 행렬 구조 중의 하나로 구분 가능하지만 실제로는 두 구조의 조합된 형태를 나타낸다. 일반적으로 알고 있는 수학에서의 그래프와는 다른 모양이다. 그래프 종류로는 무방향 그래프, 방향 그래프, 완전 그래프, 부분 그래프, 가중 그래프, 유향 비순환 그래프, 연결 그래프, 단절 그래프 등이 있다. 그래프의 표현 방식 인접 행렬(Adjacency Matrix) 그래프를 행렬로 표현하는 방식 → 정방 행렬을 사용하여 그래프의 정점 간의 연결 관계를 나타냄 인접 행렬은 그래프의 정점(Vertex) 수를 n이라고 할 때, n x n 크기의 행..
Tree구조 Tree의 정의 그래프의 일종으로 비선형 계층적 자료 구조(Hierachical Data Structure)이다. 하나의 루트(root) 노드와 이를 기준으로 한 개 또는 여러 개의 서브트리(subtree)로 구성되어 있다. → 부모 노드와 자식 노드로 구분된다. ✅ 비선형 자료구조란? 한 노드가 여러 개의 노드와 연결되어 있는 형태를 가지는 자료 구조로 각 노드가 선형적인 순서가 아닌 여러 경로를 통해 연결될 수 있음을 의미한다. 대표적으로 트리(Tree), 그래프(Graph), 힙(Heap), 해시테이블(Hash table) 등이 있다. 한 노드에서 시작하여 다른 노드들을 순회하고 자기 자신에게 돌아오는 연결 그래프이다. 아래로 뻗어나가는 구조이기 때문에 사이클이 없다. 트리는 그래프의 ..
프로세스와 스레드 * 실행중인 어플리케이션(프로그램)을 프로세스 * 실행되는 소스 코드의 흐름을 스레드 프로세스(Process) 실행 중인 application 으로 application을 실행하면 운영체제로부터 실행에 필요한 만큼의 메모리를 할당 받아 프로세스가 됨 프로세스 = 데이터 + 스레드 + 컴퓨터 자원(CPU, RAM, 보조기억장치 등 연산을 위해 필요한 장치) 스레드(Thread) 실행되는 소스 코드의 흐름 스레드 = data + application 자원 → source code 실행 (code 실행흐름) 메인 스레드(main thread) java 에서 가장 먼저 실행되는 메서드는 main 메서드이며 main thread 가 main 메서드를 실행시켜준다. main thread는 main..
컬렉션 프레임워크(Collection Framework) 란? 데이터를 쉽고 효과적으로 처리할 수 있도록 미리 만들어 놓은 클래스의 집합이다. 자료 구조와 알고리즘을 구조화하여 클래스로 구현한 것으로 자바의 인터페이스를 사용해 구현한다. 컬렉션 프레임워크의 주요 인터페이스는 "List, Set, Map"이다. 자바 프레임워크의 상속구조 List 순서가 있는 데이터를 목록으로 이용할 수 있으며 크기가 동적이다. → 배열은 크기를 선언해주면 마음대로 못 바꾸지만 List를 구현하면 크기를 변환할 수 있다. - ArrayList 크기를 동적으로 관리한다. 배열처럼 주소값을 가지고 있지만 주소값이 무작위로 저장된다. 최상위 타입으로 배열을 생성, 복사하기 때문에 요소의 접근에 성능이 좋다. * 삽입, 삭제에는 ..
밝빛솔
'LANGUAGE/JAVA' 카테고리의 글 목록 (3 Page)