개발/JAVA

[JAVA] 왜 자바를 공부하는가, 자바란 무엇인가

mabb 2022. 5. 19. 09:31
반응형

 안녕하세요. 삶의 질을 높이고자 노력하는 영차영차입니다.
자바 기본기를 탄탄히 다지기 위한 공부 목적 포스팅입니다.
이것이자바다, HeadFirstJava 등의 교재와 구글링을 토대로 본인의 이해를 위해 작성하였으며
계속해서 살을 붙여나갈 계획입니다.
틀린 부분이 있을 경우 댓글 남겨주시면 감사하겠습니다.
---------------------------------------------------------------------------------------------------------

WHY
-자바는 다양한 애플리케이션을 개발할 수 있는 언어로 웹 애플리케이션, 모바일용 안드로이드 앱 등을 개발 할 수 있다.
-전자정부프레임워크의 기반 언어이다.
-국내에서 수요가 가장 많은 언어이다.


자바란 무엇인가

출처: 구글 검색

1995년도 썬 마이크로시스템즈에서 발표한 객체지향적 프로그래밍 언어
1999년 인터넷이 활성화되면서 웹 애플리케이션 구축용 언어로 급부상



자바의 특징
-높은 이식성:
JRE(Java Runtime Environment, 자바실행환경)가 설치되어있는 모든 운영체제에서 실행 가능
-객체지향언어: 객체의 조립과 연결로 프로그램을 개발
-메모리 자동관리: GB(Garbage Collector,쓰레기 수집기)를 통해 미사용 객체를 자동으로 제거
-다양한 애플리케이션 개발 가능 : 콘솔프로그램, 윈도우 애플리케이션, 웹 애플리케이션, 안드로이드 앱 등
-멀티스레드 구현 용이 : 병렬처리 용이
-동적 로딩 지원 : 객체가 필요한 시점에 생성 가능
-막강한 오픈소스 라이브러리: 검증된 코드의 활용

"자바 바이트코드는 플랫폼에 독립적이며 모든 자바 가상 머신은 자바 가상 머신 규격에 정의된 대로 자바 바이트코드를 실행한다. 따라서 표준 자바 API까지 동일한 동작을 하도록 구현한 상태에서는 이론적으로 모든 자바 프로그램은 CPU나 운영 체제의 종류와 무관하게 동일하게 동작할 것을 보장한다."

-출처: 위키백과, 자바 가상 머신 - 위키백과, 우리 모두의 백과사전 (wikipedia.org)

 

 


자바의 방식

개발자가 소스코드(소스파일(.java))를 작성한다

컴파일러(javac.exe)에 의한 컴파일로 바이트 코드(바이트파일(.class))가 만들어진다. 

JVM(Java Virtual Machine, 자바 가상 머신)이 바이트 코드를 실행한다.

※참고
인터프리터언어: 소스코드를 바로 실행하는 프로그램 및 컴퓨터 환경. 
EX) 파이썬

 

자바 코드의 기본구조

소스파일 안에 하나의 클래스 (관례적으로 하나의 소스파일에 하나의 클래스를 만듦)
클래스 안에 필드, 생성자, 메소드
메소드 안에 선언문


프로그램의 실행은 main() 메소드에서.

HelloWorldExample.java
-------------------------------------------
public class HelloWorldExample {
    public static void main(String[] args){
        HelloWorld hw = new HelloWorld();
        hw.printHelloWorld();
    }
}
-------------------------------------------

HelloWorld.java
-------------------------------------------
public class HelloWorld{
    public void printHelloWorld(){
        System.out.println("Hello World");
    }
}

실행결과
-------------------------------------------
Hello World!



반응형

'개발 > JAVA' 카테고리의 다른 글

[JAVA] 선언문,반복문, 조건문  (0) 2022.05.19
[JAVA] 연산자  (0) 2022.05.19
[JAVA] 변수는 무엇인가_원시타입, 참조타입  (0) 2022.05.19
[JAVA] 자료 유형(데이터 타입)  (0) 2022.05.19
[JAVA] 이클립스 설치  (0) 2022.05.19