JVM이란 무엇인가? Java Virtual Machine이라고 한다. JVM의 역할 자바 애플리케이션을 Class Loader를 통해 읽어 들여 자바 API와 함께 실행하는 것. JVM은 Java와 OS 사이에서 중개자 역할을 수행.(JAVA가 특정 OS에 구애받지고 재사용을 가능하게 해준다.) 메모리관리, Garbage Collection을 수행. 실행 과정 프로그램이 실행되면 JVM은 OS로부터 이 프로그램이 필요로 하는 메모리를 할당받는다. 자바 컴파일러가(Javac) 자바 코소스코드를 읽어들여 자바 바이트코드로 변환(.java -> .class). Class Loader를 통해 class파일들을 JVM으로 로딩. Execution engine을 통해 .class파일을 해석. 해석된 바이트코드는 ..
프리미티브 타입 종류와 값의 범위 그리고 기본 값 총 8가지 기본형 타입. 기본값이 있기 때문에 Null이 존재하지 않는다. 만약 기본형 타입에 Null을 넣고 싶다면 래퍼 클래스를 활용. 실제 값을 저장하는 공간으로 스택 메모리에 저장. 만약 컴파일 시점에 담을 수 있는 크기를 벗어나면 에러를 발생시키는 컴파일 에러가 발생한다. 주로 문법상의 에러가 많다. 예를 들어 ;을 안붙였다는 이유로 빨간 줄이 쳐지는 경우. 프리미티브 타입과 레퍼런스 타입 기본형 타입을 제외한 타입들이 모두 참조형 타입. 빈 객체를 의미하는 Null이 존재. 값이 저장되어 있는 곳의 주소값을 저장하는 공간으로 힙 메모리에 저장. 문법상으로는 에러가 없지만 실행시켰을 때 에러가 나는 런타임 에러가 발생한다. 예를 들어 객체나 배열..
풀이 1번 네트워크에 연결된 모든 네트워크를 찾으면 되는 문제이다. 여기서 처음엔 DFS알고리즘을 생각해보았지만 컴퓨터의 수(N)가 100이므로 시간초과에 걸릴수도있다고 생각이 들어서 BFS로 문제를 해결하였다. ArrayList배열을 만든후 서로 바라보는 양방향 리스트로 연결하였다. 그리고 Queue를 통해 1번 컴퓨터를 우선 넣고 탐색을 시작하였다. 1번 컴퓨터에 연결된 컴퓨터가 없으면 0이 출력될것이고, 연결된 컴퓨터가 있으면 Queue에 계속 넣으면서 BFS탐색을 통해 하나의 컴퓨터에 접근할때마다 cnt값을 +1 해주었다. 코드