가비지컬렉터 - 동적을 할당된(Heap) 메모리 영역중 사용하지 않는 영역을 탐지하여 해제하는 기능 Heap에는 오브젝트 타입의 객체 데이터들이 저장된다. Stack에는 파라미터 등 임시 변수와 참조 변수를 저장한다. 자바에서는 Heap에 오브젝트(객체) 데이터 할당된다.(String, Intager(int랑 다르다!) 등) (Stack은 정적(Static)으로 할당한 메모리 영역 - 임시데이터(파라미터, 임시데이터), 및 Heap을 참조하는 참조변수 저장 가비지 컬렉터는 "현재 Stack"을 돌면서(현재 사용하고 있는 객체와 연결된 변수들은 Stack에 존재하니까) 참조 연결된 객체들을 마킹(Reachable)하고 그 외의 것(UnReachable)들은 제거한다. 그래서 가비지 컬렉팅은 언제 일어나는데..
#www.acmicpc.net/problem/15685 문제 드래곤 커브는 다음과 같은 세 가지 속성으로 이루어져 있으며, 이차원 좌표 평면 위에서 정의된다. 좌표 평면의 x축은 → 방향, y축은 ↓ 방향이다. 시작 점 시작 방향 세대 0세대 드래곤 커브는 아래 그림과 같은 길이가 1인 선분이다. 아래 그림은 (0, 0)에서 시작하고, 시작 방향은 오른쪽인 0세대 드래곤 커브이다. 1세대 드래곤 커브는 0세대 드래곤 커브를 끝 점을 기준으로 시계 방향으로 90도 회전시킨 다음 0세대 드래곤 커브의 끝 점에 붙인 것이다. 끝 점이란 시작 점에서 선분을 타고 이동했을 때, 가장 먼 거리에 있는 점을 의미한다. 2세대 드래곤 커브도 1세대를 만든 방법을 이용해서 만들 수 있다. (파란색 선분은 새로 추가된 선..
디자인 패턴 = 소프트웨어를 개발하며 공통적으로 발생하는 문제를 해결하기 위한 양식이나 패러다임 그 중에서 대표적인 디자인 패턴인 MVC 디자인 패턴은 애플리케이션을 모델,컨트롤러,뷰 세가지 역할로 구분한 개발 방법론 Model + Veiw + Controller 자바에서는 = JavaBean(Service) + JSP + Servlet JavaBean - 데이터를 표현하기 위한 목적으로 JAVA Bean규약에 따라 작성된 자바 클래스 JSP - HTML에 Servlet기반의 JAVA코드를 삽입하는 형식(기술)(HTML에서 Servlet이 돌아가도록한 서버 스크립트 기술) (Servlet & JSP - 둘다 같은 역할이 가능하다. 하지만 MVC패턴에서 둘의 역할을 나눠서 장점을 활용해 담당하는 부분을 나..
https://www.acmicpc.net/problem/15683 문제 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감시할 수 있는 방법은 다음과 같다. 1번 2번 3번 4번 5번 1번 CCTV는 한 쪽 방향만 감시할 수 있다. 2번과 3번은 두 방향을 감시할 수 있는데, 2번은 감시하는 방향이 서로 반대방향이어야 하고, 3번은 직각 방향이어야 한다. 4번은 세 방향, 5번은 네 방향을 감시할 수 있다. CCTV는 감시할 수 있는 방향에 있는 칸 전체를 감시할 수 있다. 사무실에는 벽이 있는데, CCTV는 벽을 통과할 수 없다. CCTV가 감시할..
C와 C++의 경우는 OS에 Dependency하다.-> OS가 달라지면 배포가 불가능하다. 따라서 크로스컴파일이 필요하다. 크로스 컴파일 - 타켓 플랫폼에 맞춰 컴파일 하는 것을 크로스 컴파일이라고 한다. JVM은 이를 더 근본적으로 해결해준다. 자바는 운영체제에 제한을 받지 않는다. 자바 바이트코드를 JVM 위에서 동작시켜 OS에 제한을 받지않는다. JVM이 OS에 관련된 작업들을 대신 해준다. 힙 & 스택 관리 GC등 .java(= 소스코드) ---> (컴파일러/javac) ---->.class파일:(=자바 바이트 코드를 담은 파일) ----> JVM이 실행 "당신이 짠 자바 코드를 컴파일 해서 배포하면 어떤 플랫폼이든 다시 컴파일 할 필요 없이 실행시킬 수 있다." - SUN