Leeyebin의 블로그

[JAVA] 01. 자바 시작하기 본문

공부 기록실/JAVA

[JAVA] 01. 자바 시작하기

안되면될때까지 2017. 2. 27. 00:22

1.1 프로그래밍 언어란?

컴퓨터가 이해할 수 있는 언어는 기계어다.

사람과 컴퓨터가 대화하기 위해서는 사람의 언어와 기계어의 다리 역할을 하는 프로그래밍 언어가 필요하다.

프로그래밍 언어는 고급 언어와 저급 언어로 구분된다.

고급 언어 - 컴퓨터와 대화할 수 있도록 만든 어언어 중에 사람이 쉽게 이해할 수 있는 언어(예: C, C++, JAVA 등)

저급 언어 - 기계어에 가까운 언어를 말함. 배우기가 매우 까다롭다.(예: 어셈블러 등)

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


1.2 자바란?

1.2.1 자바 소개

1995년도에 처음 썬 마이크로시스템즈에서 자바언어를 발표한 후, 지금까지 자바는 전세계적으로 다양한 분야에서 사용되고 있다.


1.2.2 자바의 특징

이식성이 높은 언어이다. 

- 자바언어로 개발된 프로그램은 소스 파일을 다시 수정하지 않아도, 자바 실행 환경(JRE)이 설치되어 있는 모든 운영체제에서 실행 가능하다.


객체 지향 언어이다. 

- 프로그램을 개발하는 기법으로 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법을 객체 지향 프로그래밍(OOP)라고 한다. 자바는 객체 지향 언어가 가져야 할(캡슐화, 상속, 다형성 기능)을 완벽하게 지원하고 있다.


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

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


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

-C++은 메모리에 생성된 객체를 제거하기 위해 개발자가 직접 코드를 작성해야 한다. 하지만 자바는 메모리를 자바가 직접 관리한다. 객체 생성 시 자동적으로 메모리 영역을 찾아서 할당하고, 사용이 완료되면 GC를 실행 키시켜서 자동적으로 사용하지 않는 객체를 제거시켜준다.

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


멀티 스레드를 쉽게 구현할 수 있다.


동적 로딩을 지원한다.

-애플리케이션이 실행될 때 모든 객체가 생성되지 않고, 객체가 필요한 시점에 클래스를 동적로딩해서 객체를 생성한다.


오픈소스 라이브러리가 풍부하다.


참고

JAVA SE(Standard Edition)

Java SE는 자바 프로그램들이 공통적으로 사용하는 JVM을 비롯해서 자바 프로그램 개발에 필수적인 도구와 라이브러리 API를 정의한다.

JAVA EE(Enterprise Edtion)

분산 환경(네트워크, 인터넷)에서 서버용 애플리케이션을 개발하기 위한 도구 및 라이브러리 API를 정의한다. 서버용 애플리케이션으로는 Servlet/JSP를 이용한 웹 어플리케이션, EJB 그리고 XML 웹 서비스 등이 있다.


1.2.3 JVM

JVM은 실 운영체제를 대신해서 자바 프로그램을 실행하는 가상의 운영체제 역할을 한다. 운영체제별로 운영체제와 자바 프로그램을 중계하는 JVM을 두어 자바 프로그램이 여러 운영체제에서 동일한 실행 결과가 나오도록 설계한 것이다. 개발자는 운영체제와 상관없이 자바 프로그램을 개발할 수 있다. 그래서 JVM은 운영체제에 종속적이다.

자바 프로그램은 확장자가 .java인 파일을 작성하는 것부터 시작된다. 이것을 소스 팔일이라고 하는데, 이 소스 파일을 컴파일러로(javax.exe)로 컴파일하면 확장자가 .class인 바이트 코드 파일이 생성된다. 바이트 코드 파일은 JVM 구조 명령어(java.exe)에 의해 JVM에서 해석되고 해당 운영체제에 맞게 기계어로 번역된다. 바이트 코드는 하나지만, JVM에 의해서 번역되는 기계어는 운영체제에 따라서 달라진다. C와  C++의 컴파일 단계에서 만들어지는 완전한 기계어보다는 속도가 느리다는 단점이 있다.

(JIT 컴파일러를 통해 속도의 격차는 많이 줄어들고 있다. 참고할 블로그 http://blog.naver.com/2feelus/220738480797)


1.3 자바 개발 환경 구축

1.3.1 자바 개발 도구(JDK) 설치

JRE = JVM + 표준 클래스 라이브러리

JDK = JRE + 개발에 필요한 도구----> 자바 프로그램을 개발하기 위해서 필요


1.3.2 API 도큐먼트

http://docs.oracle.com/javase/8/docs/api/


1.4  자바 프로그램 개발 순서

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

컴파일                                                                                        인터프리터

.java 소스 파일 작성 ===컴파일러(javac.exe)===> 로 바이트 코드 파일(.class) 생성 ===JVM 구동 명령어(java.exe) 실행===> 기계어 ==> 실행


1.4.2 프로그램 소스 분석

자바 실행 프로그램은 반드시 클래스(class) 블록과 main() 메소드(method) 블록으로 구성되어야한다. 메소드 블록은 단독으로 작성될 수 없고, 항상 클래스 블록 내부에서 작성되어야 한다.
클래스 : 필드 또는 메소드를 포함시키는 블록


public class Hello{// "Hello" 클래스 이름
//클래스 블록
}

클래스의 이름은 소스 파일명과 대소문자가 일치해야하고, 숫자로 시작할 수 없고, 공백을 포함해서도 안 된다.


public static void main(String[] args){// "Hello" 클래스 이름
//메소드 블록
}

메소드 이름은 개발자가 마음대로 정할 수 있지만 main() 메소드는 다른 이름으로 바꾸면 안된다.(java.exe로 JVM을 구동시키면 제일 먼저 main() 메소드를 찾아서(entry poring:프로그램 실행 진입점) 실행시키기 때문에 클래스 내부에 main() 메소드가 없거나 잘못 작성하면 클래스를 실행 할 수 없다.)


1.5 주석과 실행문

1.5.1 주석 사용하기

// 

//부터 라인 끝까지 주석으로 처리한다.(행 주석) 

 /* ~ */

/*와 */ 사이에 있는 모든 범위를 주석으로 처리한다.(범위 주석) 


1.5.2 실행문과 세미콜론(;)

실행문은 변수 선언, 값 저장, 메소드 호출에 해당하는 코드를 말한다. 실행문을 작성할 때 주의할 점은 실행문의 마지막에 반드시 세미콜론(;)을 붙여서 실행문이 끝났음을 표시해주어야 한다.


1.6 이클립스 설치

http://www.eclipse.org/


preference에 UTF-8로 바꾸기 XML, JAVA, JSP 등

project - build automatically(체크 되어있으면 저장하면 자동으로 class파일 생성)


프로젝트 생성시(프로젝트 파일내의 setting 폴더나 .classpath / .project 은 프로젝트자체의 설정파일이다.)

'공부 기록실 > JAVA' 카테고리의 다른 글

[JAVA] 02. 변수와 타입  (0) 2017.03.01
Comments