public class Start3 { public static void main(String[] args) { int i = 10; int k = 20; if (i == 10) { int m = k + 5; k = m; } else { int p = k + 10; k = p; } //int nn = m + p // m, p는 if문 안에서 선언된 변수이므로 사용 불가능 } }int k = 20 ; 까지 실행된 경우T 메모리 구조 ( 클래스 메타 데이터 적재 )main 메서드 실행 ⇒ 스택메모리 적재main 메서드이 args 인자가 main 프레임에 쌓인다.int i 가 10으로 초기화되며, (10 의 값을 상수풀에서 가져와서 i 에 10을 대입)if ( i == 10 )i == 10 은 true { :..
public class Start2 { public static void main(String[] args) { int i; i = 10; double d = 20.0; } }public static void main(String[] args) {{ 이후에 스택영역에 main 스택 프레임이 생성된다.args 라는 메서드 인자가 프레임에 로드된다.int i; 의 실행int i 는 4바이트 크기의 변수이다.main 메서드 안에서 선언되었기에, main 스택 프레임 안에서 args 위에 i 변수가 초기화되지 않은 상태로 적재됨.Q. 컴파일러는 i 를 선언만하고 초기화하지 않은 상태에서 i 변수를 사용하는 코드를 만나는 경우에는 자바 컴파일러(Javac) 는"The local variable i may not ..
public class Start { public static void main(String[] args) { System.out.println("Hello World! "); } }1. 스태틱 영역의 역할스태틱 영역프로그램의 실행 동안 변경되지 않고 유지되는 영역클래스의 메타데이터스태틱 변수스태틱 메서드 등이 로드됨2. Main 메서드 실행 방식전처리 과정초기 메모리 공간JVM 이 java.lang 패키지를 스태틱 영역에 배치함.임포트 패키지와 모든 클래스 메타데이터를 스태틱 영역에 배치main 문 실행시main 메서드를 위한 스택 프레임이 스택 영역에 할당클래스 정의를 시작하는 여는 중괄호를 제외하고, 중괄호를 만날 때마다 스택 프레임이 하나 씩 생기게 된다.main 메서드 인자 args 를 저장할 ..
1. 절차적/구조적 프로그래밍 원리goto 사용 금지: 프로그램의 흐름 제어가 복잡해지지 않도록 하기 위해 goto를 사용하지 않습니다.함수 사용중복 코드 제거논리 분할을 위해 함수를 사용합니다.전역 변수 대신 지역 변수 사용전역 변수의 상태에 대한 인지로 인한 문제를 피하기 위해 지역 변수를 사용합니다.2. 객체 지향 프로그래밍의 유산메서드함수의 개념이 메서드로 확장.클래스 내부에 존재메서드와 함수의 차이점소속함수는 클래스와 객체에 독립적메서드는 클래스 내부에 존재용도함수는 일반적인 연산 등을 수행메서드는 객체의 특정 행동을 정의함호출함수는 직접 호출된다메서드는 객체를 통해 호출됩니다.패러다임함수는 절차적/구조적 프로그래밍에서 주로 사용메서드는 객체 지향 프로그래밍에서 사용됨.제어문메서드 내부에서만 존..
2. 자바의 구성 요소2.1 JDK (Java Development Kit) - 자바 개발 도구자바 소스 코드를 컴파일하고, 개발에 필요한 도구를 제공합니다.컴파일러인 javac.exe를 포함하며, 자바 소스를 바이트코드로 변환합니다.2.2 JRE (Java Runtime Environment) - 자바 실행 환경자바 프로그램을 실행하기 위한 환경을 제공합니다.자바 프로그램 실행기인 java.exe를 포함하며, JVM을 실행합니다.자바 바이트코드를 해당 플랫폼의 기계어로 해석하고 실행합니다.가상의 컴퓨터 역할을 하며, 실제 하드웨어와 운영체제 위에서 동작합니다.2.3 JVM (Java Virtual Machine) - 자바 가상 기계3. 현실 세계와 가상 세계의 비교현실 세계: 하드웨어 -> 운영체제 -..
개요스프링은 OOP 기반위에 굳건히 서있으며, 이전 기술들의 어깨를 딛고 발전함스프링과 객체지향객체지향을 모르고 스프링을 안다는 것은 어불성실임객체 지향의 원리를 깊게 이해하고 적용해야 제대로 활용할 수 있다.개념과 제품스프링은 제품 으로 분류되며, 개념 이라는 기반위에 분류됩니다.개념제품OOPC++ ,Java ..SOA?CBD??스프링스프링은 어떤 개념위에서 동작하는 제품일까요?자바와의 연계자바는 OOP를 구현한 제품중에 하나이다스프링은 자바를 기반으로 한다자바의 이해 즉, OOP에 대한 이해는 스프링을 이해하는데 도움이 된다.스프링 프레임워크의 복잡성스프링 개념 이해의 어려움스프링 프레임워크는 방대하고 복잡한 구조를 가지고 있음.OOP 프레임워크 with IoC, DI, AOP, PSA, WEB, O..