[혼공자] Ch1. 자바 시작하기
혼자 공부하는 자바)
1-1. 프로그래밍 언어와 자바 💻
-
기계어: 컴퓨터(운영체제)가 이해하고 실행할 수 있는 0과 1로 이루어진 이진 코드.
-
소스파일: 프로그래밍 언어로 작성한 파일
- 컴파일compile: 소스파일은 컴퓨터가 바로 이해할 수 없기 때문에, 소스파일을 기계어로 번역하는 것
-
프로그래밍 언어: 자바, C, C++ ,C#, 파이썬 등. 사람의 언어와 기계어의 다리 역할.
- 웹 애플리케이션 구축용으로는 자바가 최고!
-
객체 지향 프로그래밍OOP(Object-Oriented Programming): 객체(부품)를 만들고, 이 객체들을 서로 연결해서 더 큰 프로그램을 완성하는 기법. 자바는 객체 지향 프로그래밍을 위한 최적의 언어!
-
JDK 자바개발도구(Java Development Kit): 자바로 프로그램을 개발할 수 있는 실행 환경(JVM)과 개발도구(컴파일러) 등을 제공.
-
환경변수: 운영체제가 실행하는 데 필요한 정보를 제공해주는 변수. JDK를 설치한 후 명령 라인(명령 프롬프트, 터미널)에서 컴파일러(javac)와 실행(java) 명령어를 사용하려면 JAVA_HOME 환경 변수를 등록하고 Path 환경 변수를 수정하는 것이 좋음.
-
Java SE 11. 0. 2 (LTS)
- 11:주버전, 0: 개선버전, 2: 업데이트 버전, (LTS): 장기 지원 서비스 버전
1-2. 이클립스 개발 환경 구축
- 통합개발환경IDE: Integrated Development Environment: 프로젝트 생성, 자동 코드 완성, 디버깅 등 개발에 필요한 여러 기능을 통합적으로 제공해주는 툴. 이클립스는 무료인 오픈 소스!
- 이클립스는 기본적으로 자바 프로그램을 개발 할 수 있도록 구성되어 있지만, 개발자가 추가적으로 플러그인을 설치하면 웹 애플리케이션 개발, C, C++ 애플리케이션 개발 등 다양한 개발환경 구축이 가능함
- (이클립스 설치법 및 기본 안내)
1-3. 자바 프로그램 개발 과정
- 자바 프로그램 개발: 우선 파일확장명이 .java인 텍스트 파일 생성 ➡️ 자바 언어로 코드 작성 ➡️ 이 자바 소스파일을 컴파일러인 javac 명령어로 컴파일 ➡️ 컴파일 성공시 .class 바이트 코드파일 생성 ➡️ 바이트 코드 파일은 완전한 기계어는 아니므로 바로 실행할 수 있는 파일X
- So, 바이트 코드 파일을 완전한 기계어로 번역하여 실행하려면 java 명령어를 사용해야 함
- 자바 프로그램은 완전한 기계어가 아닌 바이트 코드 파일(.class)로 구성됨
- 본 파일은 운영체제에서 바로 실행할 수 없고, 자바가상기계JVM라는 번역기가 필요
- 자바 가상기계는 기계란 표현이 있긴 하지만 하드웨어가 아니고, JDK에 포함된 소프트웨어!
- JVM: 바이트 코드 파일을 완전한 기계어로 번역하고 실행하는 역할. java 명령어에 의해 구동
- JVM을 사용하는 이유: 바이트 코드 파일을 다양한 운영체제에서 수정하지 않고 사용할 수 있도록 하기 위함. (윈도우든 리눅스든!) 그래서 개발자는 운영체제와 상관없이 자바 프로그램을 개발할 수 있음
- 이클립스에서 .java 파일에 작성을 완료한 후 소스 파일을 저장하면 자동으로 컴파일됨!
[프로그램 소스분석]
-
'sec01.exam01'과 같은 패키지 선언
- package sec03.exam01;
-
'Hello'와 같은 클래스 선언 public class { }
- public class : 공개 클래스라는 뜻.
- Hello: 클래스명. 클래스 이름은 소스파일명과 동일해야 함(대소문자까지 일치)
클래스class: 필드 또는 메소드를 포함하는 블록
메소드method: 어떤 일을 처리하는 실행문을 모아놓은 블록
- javac 명령어로 컴파일하면 클래스 이름에 .class가 붙어 바이트 코드 파일이 생성됨
- 일반적으로 Hello.class를 헬로 바이트 코드파일이라고 부르지 않고 'Hello 클래스'라고 부름
- main(메소드 이름) 메소드 선언
-
java 명령어로 바이트 코드파일을 실행하면 제일 먼저 main() 메소드를 찾아 블록 내부를 실행함
➡️ main() 메소드를 프로그램 실행 진입점entry point 이라고 부름
-
주석달기
-
//여기부터 라인끝까지 주석처리
-
/* 요 사이에 있는 내용 다 주석처리(여러줄 가능) */
-
/****** 요 사이에 있는 내용 다 주석처리. 주로 javadoc 명령어로 API 도큐먼트를 생성하는데 사용 */
-
모든 실행문 끝에는 세미콜론(;)을 반드시 붙여서 끝을 나타내야함
-
실행문: 변수 선언, 값 저장, 메소드 호출 등에 해당하는 코드.