Write Once, Run Anywhere JVM (Java Virtual Machine) 운영체제로부터 독립적으로 동작할 수 있게 해주는 이유 자바로 작성한 소스 코드를 각 운영체제에 맞게 해석해서 실행하는 별도의 프로그램 (일종의 통역가 역할) 각 운영체제에 적합한 버전이 존재함 JVM 메모리 구조 JVM에 Java 프로그램이 로드되어 실행될 때 특정 값 및 바이트코드, 객체, 변수 등과 같은 데이터들이 런타임 데이터 영역에 저장된다 런타임 데이터 영역은 크게 5가지로 구분되어 있다 Runtime Data Area Stack Area Heap Area Method Area PC Register Native Method Stack Garbage Collection 메모리를 자동으로 관리하는 프로세스 ..
하나의 클래스 안에 같은 이름의 메서드를 여러 개 정의하는 것 자바 가상 머신은 메서드의 이름 또는 매개변수의 타입이 다르면 다른 메서드라고 인식한다. 메서드 오버로딩을 하려면 같은 이름의 메서드명 매개변수의 개수나 타입이 다름 public class Overloading { public static void main(String[] args) { Shape s = new Shape(); // 객체 생성 s.area(); // 메서드 호출 s.area(5); s.area(10,10); s.area(6.0, 12.0); } } class Shape { public void area() { // 메서드 오버로딩. 같은 이름의 메서드 4개. System.out.println("넓이"); } public voi..
특정 작업을 수행하는 일련의 명령문들의 집합 메서드는 클래스의 기능에 해당하는 내용들을 담당한다. 크게 머리에 해당하는 메서드 시그니처(method signature)와 몸통에 해당하는 메서드 바디(method body)로 구분된다. 기본적인 구조는 다음과 같다 자바제어자 반환타입 메서드명(매개 변수) { // 메서드 시그니처 메서드 내용 // 메서드 바디 } 반환 타입 : 메서드가 어떤 타입을 반환하는 가 메서드명 : 매서드 이름 매개 변수 : 해당 작업을 수행하기 위한 재료에 대한 정보 public static int add(int x, int y) { // 메서드 시그니처 int result = x + y; // 메서드 바디 return result; } 메서드의 반환 타입이 void가 아닌 경우에..