Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 확인문제
- 필기후기
- BOJ
- 건보필기
- 중소기업면접
- 수박수박수박수박수?
- java
- 프로그래머스
- 정수내림차순으로배치하기
- 연결요소의개수
- 이클립스
- 한국재정정보원
- 공부
- 프로그래밍
- 알고리즘
- algorithm
- 부스트코스
- 웹프로그래밍
- Linux
- 인강
- HTML
- 프로그래밍언어
- CSS
- 필기
- 웹
- 코딩
- 웹개발
- 백준
- 농은면접
- 후기
Archives
- Today
- Total
공부하는 히욤이
[이것이 자바다] Chapter 01 자바 시작하기 본문
1.1 프로그래밍 언어란?
기계어(machine language)
- 컴퓨터가 이해할 수 있는 언어
- 0과 1로 이루어진 코드
* 프로그래밍 언어는 고급 언어와 저급 언어로 구분
고급언어
- 컴퓨터와 대화할 수 있도록 만든 언어 중 사람이 쉽게 이해할 수 있는 언어
- 컴퓨터가 바로 이해할 수 없기 때문에 컴파일 과정을 통해 기계어로 변환후 컴퓨터가 사용
- C, C++, Java
저급언어
- 기계어에 가까운 언어
- 어셈블리어
- 소스 : 언어들로 작성된 내용
- 컴파일러 : 소스를 기계어로 변환하는 소프트웨어
- 프로그램 : 특정 목적을 수행하기 위해 프로그래밍 언어로 작성된 소스를 기계어로 번역한 것
1.2 자바란?
1.2.1 자바 소개
- 1995년 썬 마이크로시스템즈에서 개발
- 1991년 오크 언어에서 부터 시작
1.2.2 자바의 특징
- 이식성이 높은 언어
- 이식성 : 서로 다른 실행 환경을 가진 시스템 간에 프로그램을 옮겨 실행 할 수 있는 것
- 소스 파일을 수정하지 않아도 자바 실행 환경(JRE)가 설치되어 있는 모든 운영체제에서 실행 가능
- 객체 지향 언어
- 객체 지향 프로그래밍(OOP : Object Oriented Programming) : 객체들을 먼저 만들고 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법
- 함수적 스타일 코딩 지원
- 람다식 (Lamda Expressions) 지원 : 컬렉션의 요소를 필터링, 매핑, 집계 처리가 쉬워지고 코드가 간결해 짐
- 메모리를 자동으로 관리
- 자바는 개발자가 직접 메모리에 접근 할 수 없고 자바가 메모리를 직접 관리
- 객체 생성시 자동적으로 메모리 영역을 찾아서 할당하고, 사용이 완료되면 쓰레기 수집기(Garbage Collector)를 실행시켜 자동적으로 사용하지 않는 객체를 제거
- 다양한 애플리케이션을 개발 할 수 있다.
- 윈도우, 리눅스, 유닉스, 맥 등 다양한 운영체제에서 실행되는 프로그램 개발 가능
- 멀티 스레드(Multi-Thread)를 쉽게 구현
- 하나의 프로그램이 동시에 여러 가지 작접을 처리해야 할 경우 대용량 작업을 빨리 처리하기 위해 서브 작업으로 분리해서 병렬 처리하려면 멀티 스레드 프로그래밍이 필요
- 스레드 생성 및 제어와 관련된 라이브러리 API 제공
- 동적 로딩(Dynamic Loading) 지원
- 애플리케이션이 실행될 때 모든 객체가 생성되지 않고, 객체가 필요한 시점에 클래스를 동적 로딩해서 객체를 생성
- 개발 완료 후 수정이 발생하더라도 해당 클래스만 수정하면 되므로 전체 애플리케이션을 다시 컴파일할 필요 없음
- 유지보수를 쉽고 빠르게 진행 가능
- 막강한 오픈 소스 라이브러리 풍부
1.2.3 자바 가상기계(JVM)
- 자바 프로그램은 완전한 기계어가 아닌 중간 단계의 바이트 코드이기 때문에 이것을 해석하고 실행 할 수 있는 가상의 운영체제가 필요 => 자바 가상 기계 (JVM : Java Virtural Machine)
- 바이트 코드는 모든 JVM에서 동일한 실행 결과를 보장하지만, JVM은 운영체제에 종속적이다.
- 자바 프로그램을 운영체제가 이해하는 기계어로 번역해서 실행해야 하므로 JVM은 운영체제에 맞게 설치해야 함
- 확장자가 .java인 파일(소스 파일)을 작성
- 이 소스파일을 컴파일러(javac.exe)로 컴파일
- 확장자가 .class인 바이트 코드 파일이 생성
- 바이트 코드 파일은 JVM 구동 명령어(java.exe)에 의해 JVM에서 해석되고 운영체제에 맞게 기계어로 번역
1.3 자바 개발 환경 구축
1.3.1 자바 개발 도구(JDK) 설치
- 자바 프로그램을 개발하기 위해서는 먼저 Java SE(Standard Edition)의 구현체인 JDK를 설치해야 함.
- Jaca SE의 구현체는 자바 개발 키트(JDK : Jaca Development Kit)와 자바 실행 환경(JRE : Java Runtime Environment) 두가지가 있다.
- JDK는 프로그램 개발에 필요한 자바 가상 기계(JVM), 라이브러리 API, 컴파일러 등의 개발 도구가 포함
- JRE는 프로그램 실행에 필요한 자바 가상 기계(JVM), 라이브러리 API만 포함
- JDK 내부의 bin 디렉토리는 컴파일러인 javac.exe와 자바 가상 기계(JVM) 구동 명령어인 java.exe가 포함
1.4 자바 프로그램 개발 순서
1.4.1 소스 작성에서부터 실행까지
- java 소스 파일 작성
- 컴파일러(javac.exe)로 바이트 코드 파일(.class) 생성
- JVM 구동 명령어(java.exe)로 실행
1.4.2 프로그램 소스 분석
- 자바 실행 프로그램은 반드시 클래스 (class) 블록과 main() 메소드(method) 블록으루 구성되어야 함
- 메소드 블록은 단독으로 작성될 수 없고 항상 클래스 블록 안에 작성되어야 한다.
- 클래스 : 필드 또는 메소드를 포함하는 블록
- 메소드 : 어떤 일을 처리하는 실행문들을 모아 놓은 블록
- 클래스의 이름은 개발자가 마음대로 정할 수 있다.
- 소스 파일명과 대소문자가 일치해야 한다.
- 숫자로 시작할 수 없고 공백을 포함해서는 안 된다.
- 클래스 블록에는 메소드를 작성 할 수 있는데, 메소드는 클래스처럼 이름과 블록을 가진다.
- 메소드 이름도 개발자가 마음대로 정할 수 잇지만 main( ) 메소드 만큼은 다른 이름으로 바꾸면 안 된다.
- => java.exe로 JVM을 구동시키면 제일 먼저 main( ) 메소드를 찾아서 실행 시키기 때문에. main( ) 메소드가 없거나 잘 못 작성하면 클래스를 실행할 수 없다.
1.5 주석과 실행문
1.5.1 주석 사용하기
- 주석은 프로그램 실행과는 상관없이 코드에 설명을 붙인 것
- 컴파일 과정에서 주석은 무시하고 실행문만 바이트 코드로 번역 된다.
주석 기호 | 설명 |
// | //부터 라인 끝까지 주석으로 처리한다. (행 주석) |
/* ~ */ | /*와 */ 사이에 있는 모든 범위를 주석으로 처리한다.(범위 주석) |
/** ~ */ | javadoc.exe 명령어로 API 도큐먼트를 생성하는데 사용 (자바 API 도큐먼트 문서에 포함되는 도큐먼트 주석) |
* 주석문은 코드 내 어디서든 작성 가능하지만 문자열(" ") 내부에는 올 수 없다.
=> 문자열 안에서의 주석문은 문자열로 인식
1.5.2 실행문과 세미콜론(;)
- 실행문은 변수 선언, 값 저장, 메소드 호출에 해당하는 코드를 말한다
- 실행문의 마지막에 반드시 세미콜론(;)을 붙여서 실행문이 끝났음을 표시해야 함
<해당 포스트는 교육 목적을 위해 '이것이 자바다 신용권의 Java 프로그래밍 정복' 의 도서와 한빛미디어 유튜브를 참고하여 개인적으로 정리한 것으로 모든 내용의 출처와 저작권은 신용권과 한빛미디어에 있습니다.>
'Programming > Java' 카테고리의 다른 글
[이것이 자바다] Chapter 08 인터페이스 (0) | 2021.05.06 |
---|---|
[이것이 자바다] Chapter 07 확인문제 (0) | 2021.05.06 |
[이것이 자바다] Chapter 06 확인문제 (0) | 2021.05.06 |
[이것이 자바다] Chapter 01 확인문제 (0) | 2021.04.25 |
[Java] Eclipse와 JDK 다운로드 및 설치 (0) | 2019.11.09 |