🐢 Study/Java

    [Java] 함수와 메서드

    1. 함수와 메서드 - 객체의 속성은 멤버 변수로, 객체의 기능은 메서드로 구현한다 - 함수는 어디 속해 있는 것이 아닌 단독모듈, 호출하여 사용하면 된다. - 메서드는 클래스 안에 속해 있는 함수, 클래스의 맴버변수를 이용하여 구현된 함수 1-1) 함수 ( function ) 하나의 기능을 수행하는 일련의 코드 구현된 ( 정의된 ) 함수는 호출하여 사용하고 호출된 함수는 기능이 끝나면 제어가 반환됨 함수로 구현된 하나의 기능은 여러 곳에서 동일한 방식으로 호출되어 사용될 수 있음. 함수는 이름, 매개 변수, 반환 값, 함수 몸체(body)로 구성됨 int add(int num1, int num2) { int result; result = num1 + num2; return result; } 함수 호출과..

    [Java] 변수의 유효 범위와 메모리

    변수의 유효 범위와 메모리 변수의 유효 범위(scope)와 생성과 소멸(life cycle)은 각 변수의 종류마다 다름 지역변수, 멤버 변수, 클래스 변수는 유효범위와 life cycle, 사용하는 메모리도 다름 static 변수는 프로그램이 메모리에 있는 동안 계속 그 영역을 차지하므로 너무 큰 메모리를 할당하는 것은 좋지 않음 클래스 내부의 여러 메서드에서 사용하는 변수는 멤버 변수로 선언하는 것이 좋음 멤버 변수가 너무 많으면 인스턴스 생성 시 쓸데없는 메모리가 할당됨 상황에 적절하게 변수를 사용해야 함

    [Java] 자바 메모리 구조

    JVM 구동방식 (0) 컴파일러에 .java -> .class 컴파일 ​(1) 클래스 로더에 의해서 클래스 파일을 메모리 영역에 로드 후 초기화 작업 수행 ​(2) 메모리 영역에 Static(Method)부터 로드가 됩니다 ( 클래스 로드가 끝난 후 JVM은 main 메소드를 찾아 지역변수, 객체변수, 참조변수를 스택에 쌓음 ) (4) 로드 후에 JVM이 힙 영역에 객체를 생성합니다 (5) 마지막으로 실행엔진이 .class 파일(바이트코드)을 다양한 메모리를 참조하여 한줄씩 상황에 맞는 작업 수행(함수 호출, 객체 할당 등) Class Loader: JVM내로 클래스를 로드하고 링크를 통해 배치하는 작업을 수행하는 모듈로써 런타임시 동적으로 클래스를 로드한다. Execution Engine: Class ..

    객체 지향적 설계 원칙

    OOP ( Object Oriented Programming ) OOP 이전의 프로그래밍 방식은? - 절차적 프로그래밍 방식 입력을 받아 명시된 순서대로만 처리하고 결과를 내는 방식 - 구조적 프로그래밍 방식 절차적 프로그래밍 방식의 개선된 형태 프로그램을 함수단위로 나누고 함수끼리 호출하는 방식 큰 문제를 해결하기 위해 문제를 작은 단위들로 나누어 해결하는 방식 Top-Down 방식이라고도 한다. - 객체 지향 프로그래밍 방식 구조적 프로그래밍 방식의 개선된 형태 큰 문제를 작게 쪼개는 것이 아니라, 작은 문제들을 해결하는 객체를 만든다. 객체들을 조합해 큰 문제를 해결하는 Bottom-Up 방식 OOP의 장점과 단점 장점 코드의 재사용성이 높아진다. 유지보수가 쉽다. 코드가 간결해진다. 단점 처리 시..