728x90

Java 6

[Java] 가비지 컬렉션의 여러가지 동작 알고리즘

[Java] 메모리 구조와 가비지 컬렉션 Java의 메모리 구조 가비지 컬렉션에 대해 알아보기에 앞서 java의 메모리 영역에 대해 간단하게 다뤄보겠습니다. static / stack / heap 이렇게 세 영역으로 구분됩니다. Static 영역 하나의 JAVA 파일은 excited-hyun.tistory.com 위 게시물에 설명한 기본적인 GC 방식 외에도 여러가지 알고리즘을 이용한 방식들이 있습니다. 이번 게시물에서는 이러한 여러가지 방식들에 대해 다뤄보도록 하겠습니다. Serial GC Java SE 5, 6에서 사용되는 방식입니다. 가장 단순한 방식의 GC동작 방식으로 싱글 스레드로 동작합니다. 그렇기 때문에 다소 느려, Stop the world 시간이 비교적 긴 방식입니다. Old 영역에서 M..

Java/Java 기타 2021.11.16

[Java] 자바 가상 머신 JVM(Java Virtual Machine)

자바 가상 머신 (JVM) 자바 가상 머신은 자바 애플리케이션을 클래스 로더를 통해 읽어들여 자바 API와 함께 실행해줍니다. 또한 자바와 OS 사이에서 자바가 OS에 관계없이 실행될 수 있도록 하는 역할을 해줍니다. 이 덕분에 윈도우에서 구현한 자바 프로그램이 mac에서도 동작하게 될 수 있는 겁니다. JVM의 역할 자바 애플리케이션을 클래스 로더를 통해 읽어 자바 API와 함께 실행해 주는 역할을 합니다. 자바와 OS 사이에서 OS에 독립적으로 자바 프로그램이 실행 될 수 있도록 해줍니다. 또한 가비지 컬렉션 같은 기능을 통해서 프로그램의 메모리 관리를 알아서 해주기도 합니다. 사실 저는 이걸 보고도 음.. 그래서 뭘 어떻게 해서 OS에 관계없이 자바 프로그램이 실행되게 해주는거지? 하는 의문이 계속..

Java/Java 기타 2021.11.11

[Java] 메모리 구조와 가비지 컬렉션

Java의 메모리 구조 가비지 컬렉션에 대해 알아보기에 앞서 java의 메모리 영역에 대해 간단하게 다뤄보겠습니다. static / stack / heap 이렇게 세 영역으로 구분됩니다. Static 영역 하나의 JAVA 파일은 크게 필드(field), 생성자(constructor), 메소드(method)로 이루어집니다. 필드에서 선언된 전역변수와 static 멤버변수가 Static 영역에 저장됩니다. Static 영역의 데이터는 프로그램이 시작할 때부터 끝날 때까지 계속 메모리에 유지 됩니다. 그렇다보니 전역변수를 과하게 많이 사용하다 보면 메모리가 부족 문제가 발생할 수 있어 필요한 변수만 전역변수로 사용해야 합니다. Stack 영역 메소드에서 정의한 기본 자료형(int, double, byte, l..

Java/Java 기타 2021.11.10

[Java 기초 문법] 입력 및 Scanner 클래스

java.util 패키지의 Scanner 클래스를 이용하여 콘솔 입력을 받는 방법은 java의 다양한 입력 방법들 중 가장 많이 사용되는 방식입니다. c언어의 scanf(), c++의 cin, python의 input()과 비슷하다고 생각하시면 됩니다. Scanner 클래스를 사용하기 위해선? Scanner 클래스는 바로 사용할 수 있는 것이 아닙니다. Scanner에 오류가 왜 뜨는 걸까요? Scanner는 외부 패키지인 java.util에 포함되어있기 때문에 사용하기 위해서는 이를 import해주어야 사용이 가능합니다. import java.util.Scanner; 이걸 써주니 더 이상 오류가 뜨지 않습니다. 입력 메소드의 사용 Scanner라는 클래스 안에 있는 메소드를 사용합니다. ex)next(..

[Java 기초 문법] 출력문(println, print, printf) 및 자료형

프로그래밍에 있어서 출력문을 출력해봐야만 내가 코드를 잘 짠게 맞는지 확인해 볼 수 있다고 생각하는데요. 그래서 java에서는 이러한 출력문을 어떤 방식으로 출력하는지에 대해서 먼저 다뤄보려고 합니다. 1. println() println()의 경우엔 괄호안의 값을 그대로 출력하고 마지막에 줄바꿈을 넣어주는 메소드입니다. System.out.println(); 위의 코드를 이용해서 출력하는데요. 평소 c++을 사용해 온 저는 저 앞에 System.out. 이 부분이 붙는게 몹시 어색하고 불편하더라구요. 매번 저 긴 걸 입력해야 하나...? 하는 생각이 들던 차에 이클립스는 자동 완성 기능을 제공한다는것을 알게 되었습니다. !!!) 이클립스의 자동완성 기능을 통해서 'syso'라고 입력하고 'ctrl+sp..

[Java] 맥에서 이클립스의 자동완성 기능 사용하기

맥을 사용하는 경우 윈도우와 달리 이클립스에서 자동완성 기능을 Control + Space 키를 이용해 사용할 수가 없습니다. 그 이유는 아래에 확인 가능하듯이 Control + Space 키가 이미 기본적으로 맥의 입력소스 단축키에 설정되어 있기 때문입니다. 맥 설정에서 단축키를 수정하는 것과 이클립스의 단축키를 수정하는 것 이렇게 두가지 방식이 있습니다. 그렇지만 저는 맥 설정에서 단축키를 수정하고 싶지는 않아서 이클립스의 단축키를 수정하는 방식을 선택했고 그 방식에 대해서 알려드리겠습니다. 이클립스의 단축 키 수정하기 우선 이클립스의 Preferences (환경설정)을 눌러줍니다. 그런 뒤 General > Keys 를 눌러줍니다. Content Assistant를 보면 현재 ^Space 즉, co..

Java/Java 기타 2021.07.20
728x90
반응형