본문 바로가기

난 정말 JAVA를 공부한적이 없다구요6

23. 쓰레드(Thread)와 동기화 ㅁ 쓰레드의 이해와 생성- 쓰레드 관련 프로그래밍 자체는 그리 어렵지 않다. 하지만 쓰레드에 대한 이해 없이는 프로그래밍이 불가능하다.   ㅁ 쓰레드의 이해와 Thread 클래스의 상속- 프로그램의 실행주체는 누구인가? 프로그램의 실행요청은 컴퓨터 사용자에 의해 이뤄지지만, 실질적인 프로그램의 실행은 운영체제에 의해 이뤄진다. 앞서 19장에서 프로그램의 실행이 요청되면, 다음의 형태로 메모리 공간이 할당되고, 이 메모리를 기반으로 프로그램이 실행됨을 설명하였다. 메소드 영역   |      스택 영역         |    힙 영역 이렇듯 할당된 메모리 공간을 기반으로 실행 중에 있는 프로그램을 가리켜 프로세스라 한다.따라서 프로세스를 간단히 '실행중인 프로그램'으로 설명하기도 한다. - 그런데 지금까지.. 2024. 7. 3.
22. 컬렉션 프레임워크(Collection Framework) ㅁ 컬렉션 프레임워크의 기본적인 이해- 프레임워크라는 단어는 여러 분야에서 상이한 개념으로 사용되지만, 공통적으로 "잘 정의된, 약속된 구조나 골격"이라는 의미를 가지고 있다.- 자바에서는, "잘 정의된, 약속된 구조의 클래스들"이라고 정의할 수 있다.- 쉽게 말해서 여러 프로그래머들에 의해 사용되로록, 잘 정의된 클래스들의 모임이라 할 수 있다.그런데 이것이 전부라면 이는 그저 라이브러리에 지나지 않는다. 하지만 유독 컬렉션과 관련해서는 '컬렉션 라이브러리'라 하지 않고, '컬렉션 프레임워크'라 하고 있다.이는 컬렉션과 관련된 클래스들의 정의에 적용되는 설계의 원칙 또는 구조가 존재하기 때문이다. - 컬렉션의 의미와 컬렉션을 프레임워크라 부를 수 있도록 도입이 된 설계의 원칙 또는 구조를 정확히 이해한.. 2024. 6. 27.
21. 제네릭(Generics) ㅁ 제네릭은 자바 버전 5.0에서 새로 추가된 문법이다.제네릭은 자바 컬렉션 프레임워크를 이해하기 위한 필수 개념이기도 하다.  ㅁ 제네릭 클래스의 이해와 설계- 제네릭은 '일반화'한다는 뜻을 담고 있다. 그리고 그 일반화의 대상은 자료형이다.- 어떠한 자료형을 기반으로도 인스턴스의 생성이 가능하도록, 자료형에 일반적인 클래스를 정의하는 문법이다.- 자바에서 제네릭(Generics)은 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법을 의미한다.객체별로 다른 타입의 자료가 저장될 수 있도록 한다.   ㅁ AppleBox와 OrangeBox 클래스의 설계- 사과를 의미하는 Apple 클래스와 오렌지를 의미하는 Orange 클래스는 이미 정의되어 있다고 가정한다. class AppleBox {  .. 2024. 6. 25.
20. 자바의 다양한 기본 클래스 ㅁ Wrapper 클래스- 기본 자료형의 데이터를 감싼다.- 때로는 int, double과 같은 기본 자료형 데이터들도 인스턴스로 표현 해야만 하는 경우가 있다. public static void showData(Object obj) {            //   이 메소드를 반드시 써야 하고 3과 7.15를 출력해야 한다 가정.    System.out.println(obj);}- 이 문장은 기본 자료형 데이터(예: int, double 등)를 Java에서 사용할 때 발생할 수 있는 일반적인 상황을 설명하고 있습니다. Java에서는 기본 자료형 데이터는 객체가 아닌 값으로 취급되지만, 때로는 객체로 다루어야 하는 상황이 발생할 수 있습니다.예를 들어, 메소드의 매개변수로 객체 타입을 요구하는 경우가 .. 2024. 6. 21.
19. 자바의 메모리 모델과 Object 클래스 ㅁ 자바 가상머신의 메모리 관리방식을 가리켜 '자바 메모리 모델'이라 하는데, 이는 자바를 이해하는데 있어서 매우 중요한 요소이다. 이번 챕터에서는 가상머신의 메모리 관리 방식과 Object 클래스의 설명되지 않은 추가적인 특성들을 살펴본다.  ㅁ 컴퓨터의 메모리 구조   코드 영역 (Code Area)사용자가 작성한 프로그램 함수들의 코드가 CPU에서 수행할 수 있는 기계어 명령 형태로 변환되어 저장되는 공간 평상시 코드를 타이핑할때 코드창에 렌더링되는 부분이다.코드 영역은 실행 파일을 수행하는 명령어들이 메모리 공간 쪽으로 제어문, 함수, 상수 등이 지정된다. 데이터 영역 (Data Area)전역 변수 또는 static 변수 등 프로그램이 사용하는 데이터를 저장하는 공간 전역 변수와 정적 변수를 할당.. 2024. 6. 20.
18. 예외처리 Exception Handling ㅁ 자바에서 예외처리를 if문으로 할 수 도 있지만 그렇게 하면, 프로그램의 주 흐름을 구성하는 코드와 예외상황을 처리하는 코드의 구분이 어려워진다. 그래서 try ~ catch 기반의 예외처리 방식을 사용한다.  ㅁ try와 catch는 각각이 별도의 문장처럼 느껴지는데, 이 둘은 하나의 문장이다. 때문에 try와 catch 사이에 다른 문장이 삽입될 수 없다.  - try 영역에서 발생한 ~에 해당하는 예외상황은 이어서 등장하는 catch 영역에서 처리된다.  - catch 영역에서 모든 예외상황을 처리하는 것은 아니다.  catch 영역의 매개변수 선언이 있는데, 이 부분에 명시되어 있는 유형의 예외상황만 처리가 가능하다.  ㅁ  - 1. 자바 가상머신이 try에서 0으로 나누는 예외상황이 발생했음.. 2024. 6. 19.