-JAVA-
1-1
# 키워드
JDK : java 프로그램을 개발할 때 필요한 개발 도구 모음
Javac : 자바코드를 바이트코드로 변환하는 역할
JVM : java 프로그램을 실행하는 가상 머신
바이트코드 : javac가 변환한 마법의 파일
# 자바 특징
1. 플랫폼 독립성
ㄴ 만든 프로그램은 어느 환경이던 실행될 수 있다.

-
javac (자바 컴파일러)
ㄴ java 파일을 바이트코드(.class)로 변환해준다.
ㄴ 바이트코드 : java프로그램이 실행되기위해 변환되는 중간단계의 코드, JVM만 있다면 어디서든 실행가능
-
JVM (자바 가상 환경)
ㄴ 바이트코드를 해석하고 자바 프로그램을 실행시키는 역할
ㄴ 실행환경에 관게없이 자바 프로그램을 동작시킬 수 있도록 하는 역할
-
Javac와 JVM을 통해서 플랫폼의 독립성을 보장받을 수 있다.


2. 객체지향
ㄴ Java의 모든것들은 객체로 이루어져있다.
- 객체와 클래스는 개념적으로 다르지만 실무에서는 혼용해서 많이 쓰인다.
- 자바에서 코드를 작성할때 서로 관련있는 기능을 묶어 하나의 클래스로 관리한다.
-
3. 거대한 생태계
ㄴ 이미 수많은 개발자들이 함께 하고 있어 도움받기 쉽다.
- 다양한 오픈소스 라이브러리, 프레임워크 등을 가지고 있으며 관련 학습자료도 주변에서 쉽게 찾을 수 있다.
1-2
### # RAM : 메모리, 컴퓨터의 주 기억장치
ㄴ 휘발성 - 전원이 꺼지면 저장된 데이터가 사라지는 성질
### # 보조기억장치 - 데이터를 영구적으로 저장하는 장치(HDD, SDD)
ㄴ 보조기억장치의 한계 : 저장된 정보를 가져오기위해선 더 큰 비용이 소모된다, 주 기억장치보다 느리다

# 바이트 - 8비트로 구성된 데이터 단위
### # 비트 - 컴퓨터에서 데이터를 표현하는 가장 작은 단위, 0 또는 1의 값을 가짐
1-3
# 이름 규칙 종류
카멜케이스
ㄴ 낙타 : 대문자가 혹처럼 튀어나온다.
예) firstName, lastName
스네이크케이스
ㄴ 뱀 : 언더스코어가 뱀처럼 이어진다.
예) first_name, full_name
# 패키지(폴더)
: 관련된 자바 클래스들을 그룹으로 묶는 기능
ㄴ 폴더처럼 파일(클래스)을 정리해서 관리할 수 있도록 도와주는 역할
* 클래스명이 파일명이 된다.
#### * Main.java 파일안에는 Main 클래스가 존재
### # 클래스 이름 규칙
#### 첫 글자 대문자 + 카멜케이스 조합으로 작성 (Pascal case)
