Java가 운영체제에 독립적이라는 말을 얼핏 들은적이 있을거다! 그렇다면 java가 왜 os에 독립적인걸까?바로 JVM 덕분이다.프로그램을 실행하는 것은 결국 컴퓨터이다. 다시 말해 인간이 짠 코드를 컴퓨터가 알아들을 수 있어야 한다.자바의 경우 JVM이 이해할 수 있
오늘은 JVM 구성요소인 클래스 로더에 대해 자세하게 알아보겠다.자바는 동적으로 클래스를 읽어오므로(동적 로드), 프로그램이 실행 중인 런타임(바이트 코드를 실행할 때)에서야 모든 코드가 자바 가상 머신과 연결됩니다. 이 동적 로드를 담당하는 부분이 JVM의 클래스 로
같은 타입의 여러 변수를 하나의 묶음으로 다루는 것읽기 (장점)원소의 인덱스 값을 알고 있으면 O(1)에 해당 원소로 접근할 수 있다. (Random Access가 가능)탐색(단점)해당 value의 존재 유무와 위치를 모를 경우선형 검색(Linear Search) -
해시 테이블은 (Key, Value)로 데이터를 저장하는 자료구조 중 하나로 빠르게 데이터를 검색할 수 있는 자료구조이다. 해시 테이블이 빠른 검색속도를 제공하는 이유는 내부적으로 배열(버킷)을 사용하여 데이터를 저장하기 때문이다. 해시 테이블은 각각의 Key값에 해시
JVM의 메모리 영역으로 자바 애플리케이션을 실행할 때 사용되는 데이터들을 적재하는 영역입니다. 이 영역은 크게 Method Area, Heap Area, Stack Area, PC Register, Native Method Stack로 나눌 수 있습니다.Method
가장 마지막으로 들어간 데이터가 가장 첫 번째로 나오는 성질(LIFO : 후입선출)을 가진 자료구조이다.삽입 및 삭제 O(1) 탐색 O(n)언제 사용?재귀, 웹 브라우저 방문 기록, 역순 출력, 후위 표기법java에서 스택 선언push와 pop할 때는 해당 위치를 알고
아마존 넷플릭스과 같은 해외 기업에서부터 배달의 민족, 쿠팡, 페이코와 같은 국내 IT기업까지 많은 기업에서 msa 전환 에 성공했다는 이야기가 들려온다.왜 많은 기업들이 msa 전환을 하고 있을까?그리고 본인의 프로젝트인 Dining-together 회식모아 프로젝트
정점(Vertex)과 간선(Edge)으로 이루어진 자료구조이다.정확히는 정점(Vertex)간의 관계를 표현하는 조직도라고 볼 수 있다.이러한 면에서 트리는 그래프의 일종인 셈이다.하지만 그래프는 트리와는 달리 정점마다 간선이 있을 수도 있고 없을 수도 있으며, 루트노드
트리(Tree)는 그래프의 일종으로 정점과 간선을 이용하여 데이터의 배치 형태를 추상화한 자료구조이다.서로 다른 두 노드를 연결하는 길이 하나뿐인 그래프를 트리라고 부른다.힙(Heap)을 구현하는 방법 중 하나가 트리이다.Node (노드) : 트리를 구성하고 있는 각각
하나의 정점으로부터 시작하여 차례대로 모든 정점들을 한 번씩 방문임의의 노드에서 시작하여 최대한 깊숙이 들어가서 노트를 방문한 후,다시 돌아가 다른 경로를 탐색하는 알리고리즘이다.시작 노드를 스택에 삽입 방문 처리스택의 최상단 노드에 방문 방문하지 않은 인접 노드가 있
n개의 원소에서 순서를 생각하며 r개의 원소를 선택하는 방법이다.입력 : 1, 2, 3출력 : 1, 2, 3, 1, 3, 2, 2, 1, 3, 2, 3, 1, 3, 2, 1, 3, 1, 2swap 함수를 만들어서 배열들의 값을 직접 바꾸는 방법이다.배열의 첫 값부터 순
분할 정복법 (Divide and Conquer) 문제를 나눌 수 없을 때까지 나누어서 각각을 풀면서 다시 합병하여 문제의 답을 얻는 알고리즘이다. 이는 Top-down approach로 볼 수 있다. 알고리즘을 설계하는 요령 1) 분할 (Divide) : 해결할 문
두 인접한 데이터의 크기를 비교해 정렬하는 방법시간 복잡도 - swap 여부를 판단 할 수 있는 변수를 두지 않고 하는 구현의 경우는 O(N2), swap여부를 판단할 수 있는 변수를 둔 경우 O(N)대상 데이터에서 최대나 최소 데이터를 데이터가 나열된 순으로 찾아가며
카카오,,,티스토리 서버 오류로 들어가지지 않는다. 거의 참고할 수 있는 참고자료가 반이 줄었다https://velog.io/@jifrozen/JAVA-JVM-%EA%B5%AC%EC%84%B1%EC%9A%94%EC%86%8C-%EB%A9%94%EB%AA%A8%
자바는 대표적인 객체지향 프로그램 언어임실제세계를 객체하는 단위로 나누고 객체들간의 상호작용을 의미한다.즉, 프로그램을 여러개의 독립된 단위인 객체들의 모임으로 파악하고자 하는 것이다.클래스 : 객체를 정의해 놓은 것으로 객체를 생성하는데 사용된다. → 제품 설계도객체
합병정렬 합병 = '문제를 분할하고, 분할한 문제를 정복하여 합치는 과정'이다. 분할정복 알고리즘을 기반으로 정렬된 방식이라고 볼 수 있다. 합병정렬의 구조상 최대한 작게 문제를 쪼개어 앞의 부분리스트부터 차례대로 합쳐나가기 때문에 안정정렬(Stable Sort) 알
대표적 그래프 알고리즘으로 '합집합 찾기'라는 의미를 가지고 있다.상호 배타적 집합(Disjoint-set)이라고도 한다.여러 노드가 존재할 때, 두 개의 노드를 선택해서, 현재 두 노드가 서로 같은 그래프에 속하는지 판별하는 알고리즘2가지 연산으로 이루어짐 \- fi
탐색 범위를 두 부분으로 분할하면서 찾는 방식처음부터 순차적으로 탐색하는 것보다 훨 씬 빠른 장점을 지님배열이 정렬되어 있어야함배열의 중앙에 있는 값을 조사하여 찾고자 하는 항목이 왼쪽 또는 오른쪽 부분 배열에 있는지를 알아내어 탐색의 범위를 반으로 줄인다. -> 재귀
동일하다는 뜻으로 두 객체가 완전히 같은 경우를 의미한다.완전히 같다는 것은 두 객체의 주소값이 같기때문에 같은 객체 즉 하나의 객체로 봐도 무방하다.동일성을 판단하는 연산자는 ==연산자이며 Primitive타입의 객체는 주소가 없기때문에 같은 값을 가지면 동일하다고
데이터 베이스 존재하기 이전에는 파일 시스템을 이용하여 데이터를 관리하였다. 데이터를 각각의 파일 단위로 저정하며 이러한 일들을 처리하기 위한 독립적인 애플리케이션과 상호 연동이 되어야 한다. 이 때의 문제점은 데이터의 종속성(상호 의존관계 맺음)과 중복성(여러 파일에
String과 StringBuilder, StringBuffer의 가장 큰 차이점은 불변성이다.불변성은 변하지 않는 성질이다.위 코드에서 String 객체 안에 어떤 일이 벌어지는지 확인해보자실제로 기존의 "java"를 저장한 메모리 영역은 str과의 참조가 끊어지면서
제어권 \- 코드를 실행할 권리를 말한다. 제어권을 가진 함수는 자신의 코드를 끝까지 실행한 후, 자신을 호출한 함수에게 돌려준다결과값 반환 \- 함수 결과값을 반환함을 의미한다.둘의 차이는 제어권의 관점으로 바라봐야한다.1) 블로킹A함수가 B함수를 호출하여 제어권
자바의 자료형은 기본타입(primitive type)과 참조 타입(reference type)으로 나눠집니다. 기본 타입으로는 char, int, boolean 등이 있고 참조타입은 String, class 등이 있습니다. 프로그래밍을 할때, 기본 타입의 데이터를 객체
네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다.7단계로 나눈 이유는?통신이 일어나는 과정이 단계별로 파악할 수 있기 때문이다.흐름 파악, 이해 도움, 장애가 생기면 계층을 확인해 해당 계층만 손보면 되는 장점주로 전기적, 기계적, 기능적인 특성을 이용해
프로세스와 스레드의 차이 프로그램 : 파일 단위로 저장 장치에 저장되어 있으며, 아직 실행되지 않은 상태의 코드 덩어리를 의미한다. 프로세스 프로세스는 운영체제로부터 메모리 공간을 할당 받아 실행 중인 프로그램이다. 프로세스에 할당되는 메모리 영역 코드(Code), 데
인터넷 통신IP(Internet Protocol)TCP, UDPPORTDNS클라이언트 서버 컴퓨터마다 IP주소가 있다.지정한 IP 주소(IP Address)에 데이터 전달패킷(Packet)이라는 통신 단위로 데이터 전달출발 IP, 도착 IP, 기타...전송할 데이터와
웹 통신의 큰 흐름: https://www.google.com/ 을 접속할 때 일어나는 일https://www.youtube.com/watch?v=5MM8NDzWHdE 1\. www.google.com을 브라우저 주소창에 입력한다. 해당 U
보기 좋게 수정 할 예정~운영체제란? 운영체제는 하드웨어와 가장 가깝게 맞닿아있는 소프트웨어로써 응용프로그램과 하드웨어 사이 인터페이스 역할을 합니다. 커널이란? 메모리에 상주하는 운영체제 핵심부분 소프트웨어가 컴퓨터 시스템에서 수행되기 위해서는 메모리에 그 프
JVM의 구조와 Java의 실행방식을 설명해주세요. 자바 가상 머신의 약자를 따서 줄여 부르는 용어로 JVM의 역할은 운영체제의 독립적으로 자바를 실행하는 것입니다. JVM의 구조Class Loader : JVM 내(Runtime Data Area)로 Class