Study in SSAFY

    [이것이 자바다] 12.4 멀티스레드 - 동기화 메소드와 동기화 블록

    [이것이 자바다] 12.4 멀티스레드 - 동기화 메소드와 동기화 블록

    본 포스팅은 [이것이 자바다]의 내용을 참고하여 작성하였습니다. 12.4.1 공유 객체를 사용할 때의 주의할 점 멀티 스레드 프로그램에서는 스레드들이 객체를 공유해서 작업해야 하는 경우가 있음. ex) 스레드 A가 사용하던 객체가 스레드 B에 의해 변경될 수 있기 때문에 A가 의도한 것과 다른 결과 산출. 12.4.2 동기화 메소드 및 동기화 블록 따라서 스레드가 사용 중인 객체를 다른 스레드가 변경할 수 없도록 하려면, 객체에 잠금을 걸어서 다른 스레드를 사용하지 못하게 해야 한다. 객체에 잠금을 걸기 위해 자바는 동기화(synchronized) 메소드와 동기화 블록을 제공한다. 스레드가 객체 내부의 동기화 메소드 또는 블록에 들어가면 즉시 객체에 잠금을 걸어 다른 스레드가 *임계 영역 코드를 실행하지..

    [이것이 자바다] 11. 기본 API 클래스(Math~Formatting)

    [이것이 자바다] 11. 기본 API 클래스(Math~Formatting)

    본 포스팅은 [이것이 자바다]의 내용을 참고하여 작성하였습니다. 1. Math 클래스 수학 계산에 사용할 수 있는 메소드를 제공 제공하는 메소드는 모두 static하므로 Math 클래스로 바로 사용 가능하다. abs - 절대값 Math.abs(int a) Math.abs(double a) max - 최댓값 Math.max(int a, int b) Math.max(double a, double b) min - 최솟값 Math.min(int a, int b) Math.min(double a, double b) ceil - 올림값 Math.ceil(double a) floor - 버림값 Math.floor(double a) round - 반올림값 Math.round(double a) long 타입 정수 반환 ..

    [이것이 자바다] 10. 예외 처리

    [이것이 자바다] 10. 예외 처리

    본 포스팅은 [이것이 자바다]의 내용을 참고하여 작성하였습니다. 1. 예외와 예외클래스 에러(Error): 컴퓨터 하드웨어의 오동작 또는 고장으로 인해 응용프로그램 실행 오류가 발생하는 것 예외(Exception): 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류 일반 예외(Exception): 컴파일하는 과정에서 예외 처리 코드가 필요한 지 검사함 (빨간줄) 실행 예외(Runtime Exception): 컴파일하는 과정에서 예외 처리 코드를 검사하지 않음 예외 처리(Exception Handling)을 통해 프로그램을 종료하지 않고 정상 실행 상태를 유지할 수 있다. → JVM은 예외가 Rumtime Exception을 상속했는지 여부를 보고 실행 예외를 판단한다! 2...

    [이것이 자바다] 02. 변수와 타입

    [이것이 자바다] 02. 변수와 타입

    본 포스팅은 [이것이 자바다]의 내용을 참고하여 작성하였습니다. 1. 변수 (Variable) 변수란? 하나의 값을 저장할 수 있는 메모리 공간 변수의 선언 타입 변수이름; 과 같은 방식으로 선언 ex) int age; double type; … ⚠️ 주의 사항 : 예약어를 변수 이름으로 사용할 수 없다!! ex) long, short, new, try, return, true, false 변수의 사용 변수 값 저장 int score = 90; 2️⃣ 정수 타입 변수 ‘score’에 저장! ← 1️⃣ 90이라는 값을, 정수 리터럴 소수점이 없는 정수 리터럴은 10진수 0, 75 -100 0으로 시작되는 리터럴은 8진수 02, 04 0x 또는 0X으로 시작 or A,B,C,D,E,F 또는 a,b,c,d,e..