자바란 무엇인가

Dec 12, 2023
자바란 무엇인가

1. 자바 이론

1) 자바의 역사

자바 개발자: 제임스 고슬링 가정용 전자 제품에 사용하기 위해 만들었음
 

2) 자바의 특징

Write Once Run Everywhere(한 번만 작성해서 어디서나 실행시키세요) → 자바는 컴퓨터에 가상 기계만 설치되어 있으면 어디서든 실행할 수 있다.
 

3)가상 기계

자바는 운영 체제가 다르더라도 어디서든 실행시킬 수 있다. 반면 C언어나 C++ 언어 등은 운영체제나 CPU가 다르면 실행이 불가능하다.
자바 프로그램 실행 과정 자바 컴파일러는 가상적인 컴퓨터의 기계어인 바이트 코드(nyte code)를 생성하는데 바이트 코드는 JVM에 의해 한 줄 씩 해석되면서 각각의 OS에서 실행된다.
네이티브 코드(native code) 컴파일 하지 않아도 운영체제에서 바로 실행시킬 수 있는 코드이다. C언어는 네이티브코드이고 JAVA는 네이티브 코드가 아니다.
 

4) JDK(Java Development Kit)

 
JDK와 JRE의 관계
아무래도 그림은 다시 그려야겠지? 그게 맞아.
아무래도 그림은 다시 그려야겠지? 그게 맞아.
 
💡
자바가 오라클에 인수된 시점은 1.8버전일 때이기 때문에 1.9버전부터는 오라클 소유의 자바가 되었다. 오라클은 유료화의 화신이기 때문에 1.9부터 오라클 버전 JDK인지 oepn JDK인지가 나뉜다.
 
JDK의 폴더
bin: 컴파일러(java.exe, javac.exe), 디버거 등의 도구가 들어 있다. lib: 개발 도구들이 필요로 하는 추가적인 클래스 라이브러리와 지원 파일들이다.
 

5) 변수와 자료형

int x; // int는 자료형, x는 변수 이름이다. // 선언만 되어 있기 때문에 x 안의 값은 null이다.(빈 박스만 만들어 놓음)
 
자료형
자바의 자료형은 크게 기초형(primitive type)과 참조형(reference type)으로 나뉜다.
 
기초형
int(4byte): -21억 ~ +21억(2의 32 제곱) long(8byte): -800경 ~ +800경(2의 64 제곱) double(8byte) char(2byte) boolean(1bit): true / false
💡
공간을 효율적으로 쓰기 위해 자료형을 구분해 놓았다.
 
💡
패키지: .java파일들을 모아 놓은 곳(디렉토리, 폴더 개념)
 

2. 자바 실습

1) 자바의 규칙

모든 코드를 class{} 안에 넣어야 한다.
자바의 파일명은 class 이름과 동일해야 한다. 그렇지 않으면 오류남.
notion image

2) 자료형

package ex01; public class VarEx01 { // 모든 코드는 main 메서드 내부에 적는다. public static void main(String[] args) { // 자료형 int n1 = 1; // 4Byte. 21억까지 // 1정도는 바이트에 저장하면 공간이 절약되겠지만 변수이기 때문에 값을 바꾸려면 한계가 생겨. double d1 = 1.5; // 8Byte. 21억까지. 그런데 소숫점 아래도 표현(실수)되기 때문에 더 큰 공간이 필요해. // 21억 이상을 저장하려면 long big1 = 20000000000L; // 8Byte. 경까지 저장. 범위 안이라도 숫자 뒤에 L을 적어줘야 해. 정수 표현 범위를 넘어서면 오류가 나기 때문에 퉁쳐서 L을 적어줘. boolean b1 = true; //true, false //true, false 1bit만 사용하지만 외부에서 그 위치를 찾을 수 있게 하려면 1bit여도 1byte를 모두 사용한다. char c1 = '가'; // ''를 쓴다. ""이거 말구. 한글, 영어 상관 없이 1글자만 저장됨. 설정하기에 따라 크기가 달라져서 크기를 지금은 몰라도 돼. // n1을 적으면 그것에 해당하는 값을 찾아준다. 누가? OS가! System.out.println(n1); System.out.println(d1); System.out.println(big1); System.out.println(b1); System.out.println(c1); // ctrl + d 하면 한 줄 복사 } // main의 끝. 자바 프로그램 종료됨. 자바프로그램의 생명주기! }
 
Share article

hyeonjeong-jang-0302