반응형

스레드 3

JAVA 자주 까먹는 것들

자주 발생하는 예외 ArithmeticException : 정수를 0으로 나눌 때 NullPointerException : null 레퍼런스를 참조할 때 ClassCastException : 변환 할 수 없는 타입으로 객체를 변환 할 때 OutOfMemoryException : 메모리 부족 ArrayIndexOutOfBoundsException : 배열의 범위를 벗어난 접근 시 IllegalArgumentException : 잘못된 인자 전달 시 IOException : 입출력 동작 실패 또는 인터럽트 시 발생 NumberFormatException : 문자열이 나타내는 숫자와 일치하지 않는 타입의 숫자로 변환 시 OverLoading 메소드 명과 인자가 같으면서 return 값만 다른 경우 컴파일 오류..

Java 2022.02.25

Java Thread 기초

스레드 관리 정보 데몬 스레드 JVM이 스스로 필요에 의해 사용하는 스레드이다. 대표적인 예로 GC가 있다. 내가 작성한 스레드도 데몬 스레드로 표시하여 JVM이 인식하게 할 수도 있다. 일반 스레드가 모두 종료되면 데몬 스레드가 살아 있더라도 프로그램은 종료된다. 스레드 상태 NEW 스레드가 생성되었지만 아직 실행할 준비가 되지 않은 상태이다. start() 메소드가 호출되면 RUNNABLE 상태가 된다. RUNNABLE 스레드가 현재 실행되고 있거나 실행 준비되어 스케줄링을 기다리는 상태이다. WAITING 스레드가 어떤 Object 타입의 객체 a에 대해 a.wait()을 호출하고 무한 대기하면서 다른 스레드가 a.notify(), a.notifyAll()을 불러주기를 기다리고 있는 상태이다. 스레..

Java 2022.02.04

Java 메모리 영역(Static, Stack, Heap)

❓Static ❓Stack ❓Heap 멀티스레드를 어떻게 사용할까? ❓Static 패키지나 클래스 정보가 호출되는 시점에 올라간다. static이 붙은 클래스 멤버(필드,메소드)도 이 영역에 올라간다. static을 붙일 대상은 읽기 전용이 아닌 경우, 가능한 사용하지 않아야 하고 무분별하게 사용하면 멀티스레드에서의 Thread Safe 문제가 발생할 수 있다. 클래스, 메소드 영역이라고 불린다. JVM 종료 시점까지 사라지지 않고 유지된다. ❓Stack 흔히 말하는 call stack이 이 영역에서 다뤄지는 내용이다. stack에서 선언된 지역변수는 stack에 위치한다. primitive는 stack 영역에 저장되고 reference(wrapper 등)는 참조값만 저장된다. 외부의 stack fram..

Java 2022.01.11
반응형