본문 바로가기

2022 여름방학 자바 스터디

(8)
[이것이 자바다] Ch12. 멀티 스레드 12.1 멀티 스레드 개념 12.1.1 프로세스와 스레드 프로세스? - 실행 중인 하나의 프로그램 : 하나의 프로그램은 다중 프로세스를 만들기도 함 멀티 태스킹? : 두 가지 이상의 작업을 동시에 처리하는 것 - 멀티 프로세스: 독립적으로 프로그램을 실행하고 여러 가지 작업 처리 - 멀티 스레드: 한 개의 프로그램을 실행하고 내부적으로 여러 가지 작업 처리 12.1.2. 메인스레드 - 모든 자바 프로그램은 메인 스레드가 main()메소드를 실행하면서 시작됨 - main() 메소드의 첫 코드부터 아래로 순차적으로 실행함 - main() 메소드의 마지막 코드를 실행하거나, return 문을 만나면 실행이 종료됨 - 코드의 실행 흐름 → 스레드 메인 스레드는 작업 스레드를 만들어서 병렬로 코드를 실행할 수 있..
[이것이 자바다] Ch11. 기본 API 클래스 11.1. 자바 API 도큐먼트 자바API - 자바에서 기본적으로 제공하는 라이브러리 - 프로그램 개발에 자주 사용되는 클래스 및 인터페이스의 모음 API도큐먼트 - 쉽게 API를 찾아 이용할 수 있도록 문서화한 것 - HTML 페이지로 작성되어 있어 웹 브라우저로 바로 볼 수 있음 Java Platform SE 7 docs.oracle.com 11.2. java.lang과 java.util 패키지 11.2.1 java.lang 패키지 - 자바 프로그램의 기본적인 클래스를 담고 있는 패키지 - 포함된 클래스와 인터페이스는 import 없이 사용 가능 Object : 자바 클래스의 최상위 클래스 System : 표준 입출력 장치, 자바 가상 머신을 종료시킬 때, 쓰레기 수집기를 실행 요청할 때 Class ..
[이것이 자바다] Ch10. 예외 처리 10.1. 예외와 예외 클래스 오류의 종류 1) 에러 - 하드웨어의 오동작 또는 고장으로 인한 실행 중지 - 에러가 발생되면 프로그램은 종료됨 - 정상 실행 상태로 돌아갈 수 없음 2) 예외 - 사용자의 잘못된 조작 혹은 개발자의 잘못된 코딩으로 인해 발생 - 예외가 발생되면 프로그램이 종료됨 - 예외 처리를 추가하면 정상 실행 상태로 돌아갈 수 있음 예외의 종류 1) 일반 예외 - Exception - 예외 처리 코드가 없다면 컴파일 되지 않는 예외 2) 실행 예외 - Runtime Exception - 예외 처리 코드를 생략하더라도 컴파일이 되는 예외 - 경험에 따라 예외 처리 코드를 작성할 필요가 있을 수도 있음 10.2. 실행 예외 10.2.1. NullPointException - 객체 참조가 ..
[이것이 자바다] Ch06. 클래스 6.1. 객체 지향 프로그래밍 → 부품 객체를 먼저 만들고 이것들을 하나씩 조립해서 완성된 프로그램을 만드는 기법 6.1.1. 객체란? → 속성과 동작을 가지는 모든 것 → 필드와 메소드로 구성 6.1.2. 객체의 상호 작용 → 객체들은 서로 간에 기능을 이용하고 데이터를 주고 받음 → 자바의 객체도 서로 간의 메소드(동작)를 호출하고 결과를 받음 6.1.3. 객체 간의 관계 → 객체는 다른 객체와 관계를 맺고 있음 1. 집합 관계 : 하나는 부품이고 하나는 완성품에 해당 2. 사용 관계 : 객체 간의 상호작용 3. 상속 관계 : 상위(부모) 객체를 기반으로 하위(자식) 객체를 생성하는 관계 6.1.4. 객체 지향 프로그래밍의 특징 캡슐화 → 객체의 필드와 메소드를 감싸줌, 실제 구현 내용을 외부에 감추..
[이것이 자바다] Ch05. 참조 타입 5.1. 데이터 타입 분류 자바의 데이터 타입은 크게 기본 타입과 참조 타입으로 분류됨 기본 타입이란, 정수, 실수, 문자, 논리 리터럴을 저장하는 타입을 말함 참조 타입이란 객체의 번지를 참조하는 타입으로 배열, 열거, 클래스, 인터페이스 타입을 말함 - 기본 타입을 이용해서 선언된 변수는 실제 값을 변수 안에 저장함 - 참조 타입인 배열, 열거, 클래스, 인터페이스를 이용해서 선언된 변수는 메모리의 번지를 값으로 가짐 (번지를 통해 객체를 참조) - 변수는 스택 영역에 생성되고, 객체는 힙 영역에 생성됨 - 아래의 예시에서 int, double은 직접 값을 저장하고 있지만 String 클래스 변수는 객체 주소 값을 가지고 있음 // 기본 타입 변수 int age = 25; double price = ..
[이것이 자바다] Ch04. 조건문과 반복문 4.1. 코드 실행 흐름 제어 제어문의 종류에는 조건문과 반복문이 있다. 제어문 블록 내부에는 또 다른 제어문을 사용할 수 있다. 4.2. 조건문 (if문, switch문) 4.2.1. if문 if (조건식) { 실행문; 실행문; ... } - 중괄호 블록은 여러 개의 실행문을 하나로 묶기 위해 작성함 - 만약, 실행해야 할 문장이 하나 밖에 없다면 생략 가능 - 그러나 중괄호 블록을 생략하지 않는 것을 추천함 → 가독성, 버그 발생 방지 4.2.2. if-else문 if (조건식) { 실행문; } else { 실행문; } - 두 블록 중 어느 한 블록의 내용만 실행하고 전체 if문을 벗어나게 됨 4.2.3. if-else if-else문 if (조건식1) { 실행문1; } else if (조건식2) {..
[이것이 자바다] Ch03. 연산자 3.1. 연산자와 연산식 - 연산자는 필요로 하는 피연산자의 수에 따라 단항, 이항, 삼항 연산자로 구분됨 다항 연산자: ++x; 이항 연산자: x + y; 삼항 연산자: (sum > 90) ? "A" : "B"; - 연산식은 반드시 하나의 값을 산출 - 연산식은 다른 연산식의 피연산자 위치에도 올 수 있음 boolean res = (x + y) < 5; 3.2. 연산의 방향과 우선순위 - 산술, 비교, 논리, 대입 연산자 순으로 우선순위를 가짐 - 복잡한 연산식은 괄호()를 사용하여 우선순위를 정해주는 것이 좋음 - 우선순위가 같은 연산자들끼리는 왼쪽에서 오른쪽으로 연산 100 * 2 / 3 % 5; - 단항 연산자(++, --, ~, !), 부호 연산자(+, -), 대입 연산자(=, +=, -=, ...
[이것이 자바다] Ch02. 변수와 타입 2.1. 변수 2.1.1. 변수란? - 하나의 값을 저장할 수 있는 메모리 공간 2.1.2. 변수의 선언 - 변수 선언 시 타입과 이름을 설정해야 한다. int age; double value; int x, y, z; 📍변수의 작성 규칙 - 첫 번째 글자는 문자이거나 $, _ 이어야 하고, 숫자로 시작할 수 없음 - 영어 대소문자 구분 - 첫 문자는 영어 소문자로 시작하되, 다른 단어가 붙을 경우 첫 문자를 대문자로 ex) firstName - 문자 길이의 제한은 없음 - 자바 예약어 사용 불가 2.1.3. 변수의 사용 - 변수 값을 저장할 때는 대입 연산자(=)를 사용함. int score; // 변수 선언 score = 90; // 값 저장 int score = 90; // 변수를 선언함과 동시에 초..