JAVA 개념 13

[이것이 자바다] CHAPTER 14. 멀티 스레드

14.1 멀티 스레드 개념 운영체제는 실행 중인 프로그램을 프로세스(process)로 관리한다. 멀티 태스킹(multi tasking)은 두 가지 이상의 작업을 도잇에 처리하는 것을 말하는데, 이때 운영체제는 멀티 프로세스를 생성해서 처리한다. 하지만 멀티 태스킹이 꼭 멀티 프로세스를 뜻하지는 않는다. 하나의 프로세스가 두 가지 이상의 작업을 처리할 수 있는 이유는 멀티 스레드(nulti thread)가 있기 때문이다. 스레드(thread)는 코드의 실행 흐름을 말하는데, 프로세스 내에 스레드가 두 개라면 두 개의 코드 실행 흐름이 생긴다는 의미이다. 멀티 프로세스가 멀티 프로그램 단위의 멀티 태스킹이라면 멀티 스레드는 프로그램 내부에서의 멀티 태스킹이라고 볼 수 있다.  멀티 프로세스들은 서로 독립적이..

[이것이 자바다] CHAPTER 13. 제네릭 | 개념

13.1 제네릭이란? 다음과 같이 Box 클래스를 선언하려고 한다. Box는 다양한 내용물을 저장해야 하므로 Object 타입으로 선언한다.public class Box { public Object content;}  Object 타입은 모든 클래스의 최상위 부모 클래스이다. 그렇기 때문에 모든 객체는 부모 타입인 Object로 자동 타입 변환이 되므로 content 필드에는 어떤 객체든 대입이 가능하다.Box box = new Box();box.content = 모든-객체;  content는 Object 타입이므로 어떤 객체가 대입되어 있는지 확실하지 않다. 이때 대입된 내용물의 타입을 안다면 강제 타입 변환을 거쳐 얻을 수 있다.String content = (String) box.content;  ..

[이것이 자바다] CHAPTER 12. java.base 모듈 | 개념

작성 도중 계정이 로그아웃되어 작성해두었던 네모 칸, 코드, 표들이 전부 날라갔습니다. 24-10-20까지 수정할 예정이니 참고 바랍니다.      12.1 API 도큐먼트 자바 표준 모듈에서 제공하는 라이브러리는 방대하기 때문에 쉽게 찾아서 사용할 수 있도록 도와주는 API(Application Programming Interface) 도큐먼트가 있다. 라이브러리가 클래스와 인터페이스의 집합이라면, API 도큐먼트는 이를 사용하기 위한 방법을 기술한 것이다. 다음 URL을 방문하면 JDK 버전별로 사용할 수 있는 API 도큐먼트를 볼 수 있다.  String 도큐먼트를 통해 API 도큐먼트를 읽는 방법을 알아보자.  클래스 선언부 보기 API 도큐먼트에서 String 클래스가 어떻게 정의되었는지 보려면..

[이것이 자바다] CHAPTER 05. 참조 타입

5.1 데이터 타입(Data Type) 분류분류종류기본 타입(primitive type)정수 타입byte, char, short, int, long실수 타입float, double논리 타입booean참조 타입(reference type)배열 타입열거 타입클래스인터페이스 객체란?데이터와 메소드로 구성된 덩어리. 미리 만들어진 프로그램 덩어리.     객체 = 데이터(필드) + 메소드   두 데이터 타입의 변수들은 모두 스택(stack)이라는 메모리 영역에 생성되는데, 기본 타입으로 선언된 변수는 값 자체를 저장하지만, 참조 타입으로 선언된 변수는 힙(heap)에 생성된 객체의 생성된 메모리 번지를 저장한다.          5.2 메모리 사용 영역  java 명령어로 JVM이 구동되면(java 명령을 실행..

JAVA 목차

chaper 02. 변수와 타입 변수 선언정수 타입문자 타입실수 타입논리 타입문자열 타입자동 타입 변환강제 타입 변환연산식에서 자동 타입 변환문자열을 기본 타입으로 변환변수 사용 범위콘솔로 변수값 출력키보드 입력 데이터를 변수에 저장  chaper 03. 연산자  부호/증감 연산자 산술 연산자 오버플로우와 언더플로우 정확한 계산은 정수 연산으로 나눗셈 연산 후 NaN과 Infinity 처리 비교 연산자 논리 연산자 비트 논리 연산자 비트 이동 연산자 대입 연산자 삼항(조건) 연산자 연산의 방향과 우선순위   chaper 04. 조건문과 반복문  코드 실행 흐름 제어if 문switch 문for 문while 문do-while 문break 문continue 문   chaper 05. 참조 타입  데이터 타입 ..

JAVA 개념/목차 2024.06.15

[이것이 자바다] CHAPTER 04. 조건문과 반복문

4.1 코드 실행 흐름 제어 자바 프로그램은 main() 메소드의 시작 중괄호({)에서 끝 중괄호(})까지 위에서부터 아래로 실행하는 흐름이다. 이러한 실행 흐름을 흐름 제어문이 원하는 방향으로 바꿀 수 있도록 해준다.    제어문은 조건식과 중괄호 { } 블록으로 구성되는데, 조건식의 연산 결과에 따라 블록 내부의 실행 여부가 결정된다. 제어문의 종류는 다음과 같다.조건문반복문if 문, switch 문for 문, while 문, do-while 문  조건문은 정상 흐름으로 돌아오지만 반복문일 경우는 제어문 처음으로 다시 되돌아가 반속 실행한다. 이것을 루핑(looping)이라고 한다.        4.2 if 문 if 문은 조건식의 결과에 따라 블록 실행 여부가 결정된다.if (조건식) { // ..

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

11.1 예외 예외 클래스 자바에서는 컴퓨터 하드웨어의 고장으로 인해 응용프로그램 실행 오류가 발생하는 것을 에러(error)라고 한다. 개발자는 이런 에러에 대처할 방법이 없다.  자바에서는 잘못된 사용 또는 코딩으로 인한 오류를 예외(exception)라고 한다. 예외가 발생하면 프로그램이 곧바로 종료된다는 점에서 에러와 동일하지만, 예외 처리를 통해 계속 실행 상태를 유지할 수 있다.일반 예외(Exception)컴파일러가 예외 처리 코드 여부를 검사하는 예외를 말한다.실행 예외(Runtime Exception)컴파일러가 예외 처리 코드 여부를 검사하지 않는 예외를 말한다.  자바는 예외가 발생하면 예외 클래스로부터 객체를 생성한다. 이 객체는 예외 처리 시 사용된다. 자바의 모든 에러와 예외 클래스..

[이것이 자바다] CHAPTER 09. 중첩 선언과 익명 객체 │ 개념

9.1 중첩 클래스  여러 클래스와 관계를 맺어 상호작용하는 경우 클래스를 독립적으로 선언하는 것이 좋으나, 특정 클래스만 관계를 맺을 경우 중첩 클래스로 선언하는 것이 유지보수에 도움이 되는 경우가 많다.  중첩 클래스(Nested Class)란 클래스 내부에 선언한 클래스를 말하는데, 중첩 클래스 사용 시 클래스의 멤버를 쉽게 사용할 수 있고 외부에서는 중첩 관계 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다. 선언하는 위치에 따라 클래스의 멤버로서 선언되는 중첩 클래스인 멤버 클래스와 메소드 내부에서 선언되는 중첩 클래스인 로컬 클래스로 나뉜다.선언 위치에 따른 분류선언 위치객체 생성 조건멤버 클래스인스턴스멤버 클래스class A { class B { ··· }}A 객체를 생성해야만B 객체를 생..

[이것이 자바다] CHAPTER 08. 인터페이스 │ 개념

8.1 인터페이스 역할 인터페이스(interface)는 사전적인 의미로 두 장치를 연결하는 접속기를 말한다. 여기서 두 장치를 서로 다른 객체로 본다면, 인터페이스는 이 두 객체를 연결하는 역할을 한다.    객체 A가 인터페이스의 메소드를 호출하면, 인터페이스는 객체 B의 메소드를 호출하고 그 결과를 받아 객체 A로 전달해준다. 인터페이스 사용하는 이유는 다음과 같다.  객체 A는 인터페이스의 메소드만 사용하므로 다른 객체가 교체되는 것에 관심이 없다. 객체 A가 인터페이스의 메소드를 호출한다면 실제로 실행되는 것은 객체 B 또는 객체 C의 메소드이다.  만약  인터페이스 없이 객체 A가 객체 B를 직접 사용한다면 객체 A의 소스 코드를 객체 B에서 객체 C로 변경하는 작업이 추가로 필요할 것이다. 객..

[이것이 자바다] CHAPTER 07. 상속 │ 개념

7.1 상속 개념 상속(Inheritance)란 부모가 자식에게 물려주는 행위이다. 이미 잘 개발된 클래스를 재사용해서 새로운 클래스를 만들기 때문에 중복되는 코드를 줄여 개발 시간을 단축시킨다. 클래스의 수정을 최소화할 수도 있다. 부모 클래스를 수정하면 모든 자식 클래스에 수정 효과를 가져온다.      7.2 클래스 상속 자식이 부모를 선택한다. 자식 클래스를 선언할 때 상속받을 부모를 결정하고, 부모 클래스를 extends 뒤에 기술한다. 다중 상속을 허용하지 않으므로 extends 뒤에는 단 하나의 부모 클래스만이 와야 한다.public class 자식클래스 extends 부모클래스 {}      7.3 부모 생성자 호출자식 객체를 생성하면 부모 객체가 먼저 생성된 다음 자식 객체가 생성된다.자..