Java는 여러 기기에서 실행 가능하도록 도와주는 공통 실행환경, 그리고 데잍와 메서드를 담는 클래스를 통해 객체를 만들 수 있는 대표적인 객체 지향 언어이다.

운영체제(운영환경) : 기기가프로그램을 실행시키는 운영환경
ex) Window, Android, IOS, Linux ..
앱(애플리케이션) : 운영체제 위에서 실행되는 프로그램
ex) Mobile App, Server App ..
Bottom-Up : 작은 것부터 하나씩 구현해서 전체를 만드는 방식
Java Virtual Machine의 약자로 가상 머신이라고 불리며 Java 프로그램을 실행 시킬수 있는 기기이다. 여기서 가상 머신은 여러가지의 기기위에 Java 프로그램을 실행시킬 수 있는 가상의 기기를 만들어 주는것을 의미한다.

java Complier : 작서된 Java 파일들을 OS 가 읽을 수 있는 바이트 코드 즉 Class 파일로 변환하는 변환기

참조 링크 : Compile vs Runtime
Java 개발 환경 구성은 JDK(Java Development Kit)를 기준으로 JRE, JVM 순서로 구성되어 있다. 여기서 JRE는 Java Runtime Environment의 약자로 자바 실행 환경을 뜻하며 Java 프로그램을 실행만 시킬 수 있습니다. 즉 .class 파일만 실행이 가능하며 그러기 위해서 JDK가 javac 명령을 통해 .java 파일을 실행 가능한 .class 파일로 변환해 준다. 또한 JDK는 Jdc 기능을 통해서 코드를 따라가면서 변수를 볼 수 있는 '디버깅' 기능을 제공한다.

마지막으로 Intellij의 Main 클래스를 예시로 설명한다.
public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
// Main : Class Name, public : 접근 제어자
// static : Java complier 가 바이트 코드로 변환할대 미리 정의되는 메서드 표기
// args = input, void = output
// System = class, out = 객체, println = method
int number = 10;
number = 11;
// 변수 : 변수의 값을 바꾼다. (덮어쓰기)
final int number = 10;
// 상수 : final = 상수 키워드
부동 소수점 방식 : 가수와 지수를 구분해서 저장하고 이값들을 곱한 값을 저장하는 방식 입니다.


long longNumber = 3.14f;
// long < float 자동 형변환 불가
//명시적 형변환이 필요하다.
Stack 영역 : 정적으로 할당된 메모리 영역, 크기가 정해져 있는 기본형 변수를 저장
Heap 영역 : 동적으로 할당된 메모리 영역, 크기가 가변적으로 변할 수 있는 참조형 변수의 원본을 저장
int number = 21;
Integer num = new Integer(number); //boxing
int n = num.intValue(); // intValue()
double number = 12.345
int num = number;
//자동 형변환
//암시적 형변환
1Byte = 8bits 로 이루어져 있다.
type 이 character 인경우 1byte로 이루어져 있는데 char type의 표현 범위는 -128 ~ 127로 2^8(bits) = 256개의 문자를 표현 가능하다. 이진수로 표현할 경우 채워지지 않는 자리는 앞에 0으로 채워준다.
char ch = 'a';
String binary = Integer.toBinaryString(ch);
System.out.println(binary);
// result : 1100001
Java 프로그램은 기본적으로 Scanner.in 객체의 next() 명령을 사용해서 입력받는다.
next() : 공백을 기준으로 입력을받는다.
nextLine() : 문장 전체를 입력 받는다.
익히 알고있는 Java 문법정리가 아니라 부족하거나 깊게 알지 못했던 부분들을 정리할 수 있는 시간이였다. 다음시간에는 연산자, 조건문, 반복문, 배열, 컬렉션에 관한 내용을 정리하겠다.