초오오오오오짜개발자의낙서장

Java3 본문

Programing Language/Java

Java3

코딩하는곰팅이 2025. 5. 8. 17:25

 

 

JVM 은 OS 에서 할당받은 메모리 영역을 세 영역으로 구분한다.

- 메소드 영역 (신규)

    - jvm 시작할때 생성 로딩된  클래스 바이트 코드 내용을 분석 후 저장 모든 스레드가 공유

- 힙영역 heap

     - jvm 시작할때 생성 객체 배열 저장 사용되지 않은 객체는 GC가 제거

- JVM 스택 stack

    - 스레드 별 생성

    - 메소드 호출할 떄마다 Frame을 스택에 추가 종료하면 Frame 제거

 

객체 지향 프로그래밍

OOP : object oriented programming

부품 객체를 먼저 만들고 하나씩 조립해 완성된 프로그램을 만드는 방법

하나의 클래스로 부터 여러개의 인스턴스를 만들수 있음.

 

클래스 구성 요소

Field

생성자

메소드

 

new 연산자를 사용하여 메모리에 클래스를 객체로 생성

생성된 객체는 힙 메모리에 생성

new 연산자는 객체를 생성한 후 객체 생성 주소 반환

 

fianl 필드 (상수)

최종적인 값을 갖고 있는 필드 = 값을 변경할 수 없는 필드

final 필드의 딱 한번 초기값 지정 방법 

-필드 선언시

- 생성

상수 이름은 전부 대문자로 작성

 

생성자 - new 연산자에 의해 호출되어 객체의 초기화 담당

생성자는 클래스의 이름과 같음

 

기본 생성자와 여러가지 생성자가 있다 많이 만들어 놓으면 범용성 증가.

명시적으로 부모 생성자를 호출하려면 super() 사용

 

형변환 업캐스팅 / 다운캐스팅

 

Object 클래스 모든 클래스의 최고조상 - 자바 클래스가 아무것도 상속하지 않으면 java.lang 패키지의 Object 클래스를 자동으로 상속한다.

자바의 모든 인스턴스는 Object 클래스의 참조 변수로 참조 가능

자바의 모든 인스턴스를 대상으로 Object 클래스에 정의된 메소드 호출 가능

 

메소드 재정의 Overriding

부모로부터 상속받은 메소드를 자식 클래스에 맞게 변경하는것

부모 클래스의 메소드가 숨겨지며 재정의된 자식 객체의 메소드가 호출

@Override 애노테이션 사용

 

부모 메소드 호출 super. 키워드를 붙혀서 호출

 

오버로딩

클래스 내에 같은 이름의 메소드를 여러 개 선언하는것

하나의 메소드 이름으로 다양한 매개값 받기 위해 메소드 오버로딩

오버로딩의 조건 : 매개변수의 타입, 개수, 순서가 달라야됨. 

 

abstract interface 

- 같은 타입이지만 다양한 객체 대입이 가능한 성질

- 부모 타입에는 모든 자식 객체가 대입 가능

  자식 타입은 부모 타입으로 자동 타입 변환

extends 를 써서 미리 정의를 해놓은다음 불러올때 다른 객체들을 각각 써서 넣을수 있다.

iptime, asus router 등

이건 연습 더 해보기

 

Up cating 프로그램 실댕 도중에 자동으로 타입 변환이 일어나는 것.

부모 클래스로 타입 변환

Down casting - 자식 타입에서 부모 타입으로 변환후 자식의 메소드나 변수에 접근하기 위해 강제 캐스팅이 필요하다.

 

 

 

 

 

'Programing Language > Java' 카테고리의 다른 글

JAVA 함수형 프로그래밍  (0) 2025.06.04
Java 2번째  (1) 2025.05.07
Java 1번째 정리  (1) 2025.05.02
Java 개발 준비  (0) 2025.04.16