자바

· Java/BOJ
문제 https://www.acmicpc.net/problem/24042 24042번: 횡단보도 당신은 집으로 가는 도중 복잡한 교차로를 만났다! 이 교차로에는 사람이 지나갈 수 있는 $N$ 개의 지역이 있고 그 지역 사이를 잇는 몇 개의 횡단보도가 있다. 모든 지역은 횡단보도를 통해 직, www.acmicpc.net 풀이 다익스트라를 응용한 문제입니다. 일반적인 다익스트라 문제에서는 노드 간의 거리 비용을 가중치로 둡니다. 이 문제에서는 횡단 보도를 건너기 위해 기다려야하는 총 시간을 가중치로 두는 것이 핵심입니다. 특히, 이 문제에서는 M이라는 주기 변수가 있습니다. 그래서 다음 노드로 진행하기전에 이 부분을 체크해주어야합니다. 주기 M을 고려하여 다음 노드로 이동하기 위해 기다려야 하는 시간을 계산..
· Java/BOJ
문제https://www.acmicpc.net/problem/4386 4386번: 별자리 만들기도현이는 우주의 신이다. 이제 도현이는 아무렇게나 널브러져 있는 n개의 별들을 이어서 별자리를 하나 만들 것이다. 별자리의 조건은 다음과 같다. 별자리를 이루는 선은 서로 다른 두 별을 일www.acmicpc.net풀이 전형적인 크루스칼 문제입니다. 가중치 값이 소수라는 것이 조금은 특이합니다.  우선 입력받는 좌표 값을 stars 라는 ArrayList 에 입력받고, 이 값을 edgeList라는 ArrayList에서 연결했습니다.  이 때, 제공되는 좌표를 가중치(거리)로써 필요한 것에 집중하고, 두 쌍의 좌표는 하나의 인덱스(i or j)로 ArrayList에 입력을 해주었습니다. 그렇게 인덱스를 통해 서..
https://dcloud.tistory.com/98 [Java 파헤쳐보기] JVM을 파헤쳐보자JVM과 자바의 메모리 영역에 대한 학습을 정리했다.  우선 전반적인 실행 과정을 간단히 살펴보고, 하나씩 깊게 살펴보자!  1. Java 프로그램의 전반적인 실행 과정 가장 먼저, 자바 컴파일러가dcloud.tistory.com지난 포스팅에서 JVM에 대해 살펴보았다. JVM의 메모리 영역에는 메서드, 스택, 힙 영역 등이 있었다. 그리고 가비지 컬렉터가 그 중 힙 영역을 청소하고, Heap 영역에 있는 객체를 가리키는 레퍼런스 변수는 Stack 영역에 저장된다고도 언급했다.   이게 정확히 무슨 말일까? 이번 포스팅에서 JVM의 가비지 컬렉터(Garbage Collector)을 살펴보며 자세히 알아볼 것이다..
지난 포스팅에서 소스코드를 자바 컴파일러가 바이트코드로 변환하는 것을 다루어보았다. 그럼 Java의 바이트 코드가 어떻게 생겼는지 직접 생성하고 확인해보자  public class bytecode { public static void main(String[] args) { String name = "정동교"; int age = 20; Person me = new Person(name, age); System.out.println(me.getInfo()); }}class Person{ String name; int age; Person(String name, int age) { this.name = name; ..
JVM과 자바의 메모리 영역에 대한 학습을 정리했다.  우선 전반적인 실행 과정을 간단히 살펴보고, 하나씩 깊게 살펴보자!  1. Java 프로그램의 전반적인 실행 과정 가장 먼저, 자바 컴파일러가 Source Code (.java) 파일을 Java Compiler를 통해 기계어 파일인 Byte Code(.Class)로 변환한다.   그럼 변환된 기계어 파일을 JVM의 클래스 로더가 JVM 메모리 영역으로 가져온다. 클래스 로더는 말 그대로 Class 파일을 불러와서 메모리에 저장하는 역할을 수행한다. 이제 이렇게 JVM에 로딩된 바이트 코드들을 Execution Engine이 명령어 단위로 읽어서 실행한다.  위 실행 과정 중에서 JVM은 필요에 따라 가비지 컬렉션, 스레드 동기화 등으로 메모리와 자원..
equals() 메서드와 hashcode() 메서드에 대해 살펴보겠습니다. equals()우선 equals() 메서드는 두 객체의 값이 같은지를 비교하는 메서드입니다.  그래서 아래 코드의 결과를 보면 다음과 같습니다.String str1 = "Hi";String str2 = "Hi";System.out.println(str1 == str2); // == : 주소 비교 (false)System.out.println(str1.equals(str2)); // equals : 값 비교 (true) String 객체는 heap 영역에 생성되는데 각각의 주소가 달라, 단순 비교를 하면 false가 나오게 됩니다.   그렇다면 여기서 String과 같은 문자열이 아니라, 객체 자료형일 경우에는 equals가 어떻게..
동구름이
'자바' 태그의 글 목록 (6 Page)