티스토리 뷰

반응형

요즘 들어 기초가 많이 부족하다고 느끼고 있습니다. 뭔가를 만들고 할 수 는 있지만 수박 겉 핥기로 아는 느낌이랄까??

그래서 '이것이 자바다' 책을 펼처서 한 챕터씩 읽고 정리하여 블로그에 포스팅 하려고 하고 있습니다.


1.Chapter01 : 자바 시작하기


1.1 프로그래밍 언어란?


 사람과 컴퓨터가 대화하기 위해서 사람의 언어와 기계어(0과 1로 이루어진 이진코드)의 다리 역할을 하는 언어이다.

이 언어들로 작성된 내용을 소스(source)라고 부르고, 이소스는 컴파일러(compiler)라는 소프트웨어에 의해 기계어로 변환된 후 컴퓨터에서실행할 수 있게 된다. 

ex) Java, C, C++, etc...


- 프로그램 : 컴퓨터에서 특정 목적을 수행하기 위해 프로그래밍 언어로 작성된 소스를 기계어로 번역한 것


1.2 자바란?


 인터넷이 활성화되며 웹 애플리케이션 구축용 언어로 급부상 한 언어이다. 스마트폰, 각종 장비, 데스크톱에서 실행되는 애플리케이션, 그리고 금융, 공공, 대기업 등의 엔터프라이즈 기업 환경에서 실행되는 서버 애플리케이션을 개발하는 중추적인 언어로 자리매김하고 있다.


1.2.2 자바의 특징


1) 이식성이 높은 언어이다.

 이식성이란 서로 다른 실행 환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수 있는 것을 말한다. 일반적으로 MS윈도우에서 실행되는 프로그램을 리눅스에서 실행하려면 프로그램 소스 파일을 수정한 후, 재 컴파일 과정을 거쳐야 한다. 하지만 자바는 소스파일을 수정하지 않아도 자바 실행환경(JRE)만 있으면 모든 운영체제에서 실행 가능하다. 

ex) MS 윈도우에서 실행하는 프로그램을 리눅스 또는 유닉스에서 실행할 수 있다면 이식성이 높은 것이다.


2) 객체 지향 언어이다.

 프로그램을 개발하는 기법으로 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법을 객체 지향 프로그래밍(OOP : Object Oriented Programming)이라고 한다. 이때 사용되는 언어를 객체 지향 언어라고 한다.

처음부터 객체를 고려하여 설계되었기 때문에 객체 지향 언어가 가져야 할 캡슐화, 상속, 다형성 기능을 완벽하게 지원하고 있다.


3) 함수적 스타일 코딩을 지원 한다.

 함수적 프로그래밍은 대용량 데이터의 병렬 처리, 이벤트 지향 프로그래밍에 적합하다. 자바는 함수적 프로그래밍을 위해 람다식(Lambda Expressions)을 자바 8부터 지원한다. 이를 통해 컬렉션의 요소를 필터링, 매핑, 집게 처리하는데 쉬워지고 코드가 간결해진다.


4) 메모리를 자동으로 관리한다.

 C++은 메모리에 생성된 객체를 제거하기 위해 개발자가 직접 코드를 작성해야 한다. 이를 제대로 수행하지 않으면 프로그램이 불완전해진다. 그러나 자바는 개발자가 직접 메모리에 접근할 수 없도록 설계 되었으며, 메모리는 자바가 직접 관리한다. 객체 생성 시 자동적으로 메모리 영역을 찾아서 할당하고, 사용이 완료되면 쓰레기 수집기 (Garbage Collector)를 실행시켜 자동적으로 사용하지 않는 객체를 제거시켜 준다. 그렇기에 핵심 기능 코드 작성에 개발자는 집중할 수 있다.


5) 다양한 애플리케이션을 개발할 수 있다.

 자바는 윈도우, 리눅스, 유닉스, 맥 등 다양한 운영체제에서 실행되는 프로그램을 개발할 수 있다. 

단순한 콘솔프로그램부터 클라이언트용 윈도우 애플리케이션, 서버 용 애플리케이션, 모바일용 안드로이드 앱에 이르기까지 다양한 개발 가능


6) 멀티 스레디(Multi-Thread)를 쉽게 구현할 수 있다.

 하나의 프로그램이 동시에 여러 가지 작업을 처리해야 할 경우와 대용량 작업을 빨리 처리하기 위해 서브 작업으로 분리해서 병렬 처리하려면 멀티 스레드 프로그래밍이 필요하다. 실행되는 운영체제에 따라 멀티 스레드를 구현하는 방법이 다르지만, 자바는 스레드 생성 및 제어와 관련된 라이브러리 API를 제공하기 때문에 쉽게 구현할 수 있다.


7) 막강한 오픈소스 라이브러리가 풍부하다.

 자바는 오픈소스 언어이기 때문에 프로그램에서 사용하는 오픈소스가 넘쳐난다. 검증된 오픈소스 라이브러리를 통해 개발 시간을 단축하며 안전성이 높은 애플리케이션 제작이 가능하다.


1.2.3 자바 가상 기계 (JVM)

 JVM(Java Virtual Machine)은 운영체제를 대신해서 자바 프로그램을 실행하는 가상의 운영체제 역할을 한다. 운영체제별로 프로그램을 실행하고 관리하는 방법이 다르기 때문에, 운영체제와 자바 프로그램을 중게하는 JVM을 두어 자바 프로그램이 여러 운영체제에서 동일한 실행결과가 나오도록 설계한 것이다. 자바 프로그램은 완전한 기계어가 아닌, 중간 단계의 바이트 코드이기 때문에 이것을 실행할 수 있는 JVM이 필요하다.

 바이트코드는 모든 JVM에서 동일한 실행결과를 보장하지만, JVM은 운영체제에 종속적이다.  자바 프로그램을 운영체제가 이해하는 기계어로 번역해서 실행해야 하므로 JVM은 운영체제에 맞게 설치되어야 한다. 




1.3 자바 개발 환경 도구


- JRE(자바실행환경) = JVM + 표준 클래스 라이브러리

- JDK(자바개발키트) = JRE + 개발에 필요한 도구(ex : 컴파일러)


1.4 프로그램 소스 분석


1.4.1 소스 작성에서부터 실행까지


ex) Hello.java 소스 파일 생성 -> javac Hello.java (컴파일) -> java Hello(파일 실행) 




1.4.2 프로그램 소스 분석



public class Hello{

public static void main(String[] args){

System.out.println("Hello, welcome to the java world!");
}
}

- // :행주석

- /* ~ */' : 범위 주석

클래스 : 필드 또는 메소드를 포함하는 블록 여기서는 Hello가 클래스이다.

메소드 : 어떤 일을 처리하는 실행문들을 모아 놓은 블록 여기서는 main이 메서드이다. main() 메소드는 개발자가 다른 이름으로 바꾸             면 안된다.  java.exe로 JVM을 구동시키면 제일먼저 main()을 찾아 실행시키기 떄문이다.

실행문 : System.out.println은 괄호 안에 있는 문자열을 출력시키는 실행문이다. 실행문이 끝날 때는 반드시 ';'를 입력한다.        

        

    

int x = 1; //변수 x선언 후 1 저장
int y = 2; //변수 y선언 후 2 저장
int result = x + y; //변수 result 선언 후 x와 y를 더한 값 저장


반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함