Java

Java

[Java] 가비지 컬렉션(Garbage Collection)

가비지 컬렉션(Garbage Collection)이란? 자바의 메모리 관리 방법 JVM의 Heap 영역에서 동적으로 할당했던 메모리 영역 중 필요 없게 된 메모리 영역을 주기적으로 삭제하는 프로세스 C언어는 free()라는 함수를 통해 직접 메모리를 해제해주어야 하지만 자바는 JVM의 가비지 컬렉터가 불필요한 메모리를 알아서 정리해준다. 장점 메모리 누수 방지 해제된 메모리에 접근 방지 해제한 메모리를 또 해제하는 이중 해제 방지 단점 개발자가 메모리가 언제 해제되는지 정확하게 알 수 없다. 가비지 컬렉션(GC)이 동작하는 동안에는 다른 동작을 멈추기 때문에 오버헤드가 발생한다. Stop-The-World(STW) : GC를 수행하기 위해 JVM이 프로그램 실행을 멈추는 현상 이로 인해 GC가 너무 자주..

Java

[Java] 진법 변환 정리

10진수 -> n진수 10진수를 제외한 나머지 진수는 String으로 받음 2진수 toBinaryString(num) 8진수 toOctalString(num) 16진수 toHexString(num) public class Solution { public static void main(String[] args) { int a = 25; System.out.println("10진수 -> 2진수"); System.out.println(Integer.toBinaryString(a)); System.out.println(Integer.toString(a,2)); System.out.println("10진수 -> 3진수"); System.out.println(Integer.toString(a,3)); System...

Java

[Java] 가비지 컬렉터 (Garbage Collector)

가비지 컬렉터 (Garbage Collector) 가비지 컬렉터는 자동 메모리 관리 시스템이다. C나 C++ 등에서는 메모리 관리를 직접 해야하지만, 자바에는 가비지 컬렉터가 존재해서 자동으로 객체의 메모리 점유를 자동으로 초기화해준다. 가비지 컬렉터가 하는 일 메모리 할당 사용 중인 메모리 인식 사용하지 않는 메모리 인식 프로그램에 의해 할당된 메모리가 더이상 인스턴스를 참조하지 않아 가비지(garbage) 상태가 되면 자동으로 메모리를 초기화해준다. 가비지 컬렉터의 특징 가비지 컬렉터 동작은 자바에 의해 자동 실행되고 어느 시점에 어디에서 시작할지에 따라 다르다. 가비지 컬렉터가 동작하면, 어플리케이션에 있는 모든 쓰레드들은 잠시 중단된다. 가비지 컬렉터의 한계 실행 시간에 작업을 하기 때문에 성능 ..

Java

[Java] 맵(Map)과 HashMap

맵 (Map) Map은 선언 시 로 값을 넣는다. key와 value는 한 쌍으로 key를 통해 value값을 얻어낼 수 있다. key는 중복이 불가능하고 동일한 key값을 넣을 시 가장 최근 값이 적용된다. Map은 선언 시 아래의 종류로 선언이 가능하다. HashMap : Map 안에서 key/value에 따른 순서 없음 TreeMap : key 값에 따라 오름차순 정렬, 정렬 때문에 대량의 데이터 삽입/삭제시 오래 걸림 LinkedHashMap : 삽입 순서에 따라 정렬됨 HashTable : key/value에 null을 넣을 수 없고, 동기화 되어있음 HashMap HashMap은 자바의 맵 중 가장 기본적인 맵이다. map.put("key","value") 삽입 map.get("key") ke..

Java

[Java] JVM, JRE, JDK가 뭔가요?

https://www.youtube.com/watch?v=VvVruEDCSSY JVM < JRE < JDK JVM (Java Virtual Machine, 자바 가상 머신) 컴파일러는 우리가 읽고 작성하는 프로그래밍 언어를 컴퓨터가 알아듣는 기계어로 바꿔준다 컴파일러에 의해 .java 파일이 **.class** 파일로 바뀌고 이 파일을 바이트 코드라고 한다. 바이트 코드는 사람의 언어와 컴퓨터의 기계어의 중간단계이 JVM = 자바 프로그램 실행환경을 만들어주는 소프트웨어 - 바이트 코드를 기계어로 번역하여 동작시킴 자바로 짜서 컴파일한 소프트웨어들이 JVM이 깔린 어떤 종류의 컴퓨터에서든 돌 수 있게 해줌 자바 이외의 그루비, 스칼라, 코틀린 같은 언어들로도 JVM을 돌리는 기계에서의 프로그램을 짤 수 ..

Java

[Java] Scanner 클래스와 메서드(입력)

Scanner 클래스 기본적인 데이터 타입들은 Scanner를 사용하여 입력받을 수 있다. import java.util.Scanner;를 통해 Scanner 클래스를 import 한 후 사용할 수 있다. Scanner sc = new Scanner(System.in); // Scanner 객체 생성 Scanner 메서드 sc.nextByte() // byte 형 입력 및 리턴 sc.nextShort() // short 형 입력 및 리턴 sc.nextInt() // int 형 입력 및 리턴 sc.nextLong() // long 형 입력 및 리턴 sc.nextFloat() // float 형 입력 및 리턴 sc.nextDouble() // double 형 입력 및 리턴 sc.nextBoolean() //..

Java

[Java] 제너릭스

데이터 타입을 지정하지 않고 선언 필요할 때 원하는 데이터 타입을 넣어서 불러오기 가능 타입이 다른 각 클래스들을 제너릭스를 사용해 통합 class Main { public static void main(String[] args) { 저장소 a저장소1 = new 저장소(); a저장소1.setData(30); int a = a저장소1.getData(); System.out.println(a); 저장소 a저장소2 = new 저장소(); a저장소2.setData(5.5); double b = a저장소2.getData(); System.out.println(b); 저장소 a저장소3 = new 저장소(); a저장소3.setData(new 사과()); 사과 c = a저장소3.getData(); System.out...

Java

[Java] 자동형변환과 수동형변환

자동형변환 double d = 1; 에서 d에는 1이 자동으로 1.0 실수형태로 형변환되어서 들어감 수동형변환 double d = 1.5; int i = (int)a; 수동으로 형변환 수동으로 형변환해도 되는 경우에만 해야함 안되는 경우에 수동형변환 진행시 Exception 발생 // 작은컵에서 큰컵으로 옮길 때는 안전, 자동형변환 int i = 10; double d = i; // 큰컵에서 작은컵으로 옮길 때는 안전보장x, 수동형변환 필요 doubld d = 10.0; int i = (int)d; // 작은컵에서 큰컵으로 옮길 때는 안전, 자동형변환 청둥오리 a청둥오리 = new 청둥오리(); 오리 a오리 = a청둥오리; // 큰컵에서 작은컵으로 옮길 때는 안전보장x, 수동형변환 필요 오리 a오리 = ..

Java

[Java] Object 클래스와 메서드

Object 클래스는 모든 클래스의 최상위 클래스로 모든 클래스는 기본적으로 Object 클래스를 상속받는다. 따라서 모든 클래스는 Object 클래스의 메서드를 오버라이딩해서 사용할 수 있다. 1. 객체 문자 정보 toString() toString()은 객체를 문자열로 표현한 값을 반환한다. 기본적으로 클래스명@16진수해시코드로 이루어진 문자 정보이다. 클래스에서 toString()을 오버라이딩하여 사용할 수 있다. Car car01 = new Car(); Car car02 = new Car(); System.out.println(car01.toString()); // 실행결과 : Car@15db9742 System.out.println(car02.toString()); // 실행결과 : Car@6d..

Java

[Java] String 메서드 정리

문자열 인덱스 반환 문자열의 첫번째 인덱스 기준으로 마지막 인덱스까지 검사하여 특정 문자나 문자열이 위치한 인덱스를 반환 (찾지 못하면 -1) str.indexOf(int ch) str.indexOf(int ch, int fromIndex): fromindex에서 끝까지 검색 str.indexOf(String str) str.indexOf(String str, int fromIndex) 문자열의 마지막 인덱스 기준 str.lastIndexOf(int ch) str.lastIndexOf(int ch, int fromIndex) str.lastIndexOf(String str) str.lastIndexOf(String str, int fromIndex) 문자열 인덱스 검색 str.substring(int b..

jny0
'Java' 카테고리의 글 목록