본문 바로가기
멀티캠퍼스 풀스택 과정/Java의 정석

자바의 정석1-1 자바의 개념

by 이쟝 2021. 12. 28.

자바(Java)란? 

프로그래밍 언어(programming language)

컴퓨터 프로그램(애플리케이션)을 만드는 데 사용

실행환경(JRE) + 개발도구(JDK) + 라이브러리(API)를 제공

라이브러리 -> 프로그램을 개발하는 데 필요한 기능들을 미리 만들어 놓은 것


자바가 쓰이는 곳

PC 애플리케이션(이클립스 등)

웹 애플리케이션(spring framework)

모바일 애플리케이션(안드로이드)

빅데이텨(Big Data – 하둡)

게임, 과학, 소형기기 등

 

 


자바의 특징

운영체제에 독립적  일반적으로 프로그램은 특정 OS에서만 사용가능 하지만 JAVA는 여러 운영체제에서 실행될 수 있음(JVM 때문에)
객체지향언어  기존의 프로그래밍(절차지향언어) + 객체지향 개념 => 배우기 쉽다. 
객체지향개념의 특징: 상속, 캡슐화, 다형성
자동 메모리 관리(Garbage Collection)  자바로 작성된 프로그램이 실행되면, 가비지컬렉터(garbage collector)가 자동적으로 메모리를 관리해주기 때문에 프로그래머는 메모리를 따로 관리 하지 않아도 된다. 
-> 기존의 프로그래밍언어(c언어)는 할당했으면 메모리 누수를 막기 위해서 반환을 해줘야 했음
네트워크와 분산처리를 지원 자바 언어가 인터넷과 대규모 분산환경을 염두에 뒀기 때문에 다양한 네트워크 프로그래밍 라이브러리로 쉽게 개발 가능함
멀티쓰레드를 지원 하나의 프로그램에서 동시에 여러 작업을 할 수 있게 해줌
동적 로딩(Dynamic Loading)을 지원 자바로 작성된 애플리케이션은 여러 개의 클래스로 구성되어 있다. 자바는 동적 로딩을 지원하기 때문에 실행 시 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용할 수 있음

자바 가상 머신(Java Virtual Machine)

자바 프로그램이 실행되는 가상 컴퓨터(VM) -> 소프트웨어로 만들어진 가상 컴퓨터

 

-> 일반 애플리케이션의 코드는 OS와 바로 맞붙어 있어 OS에 종속적이다. 그래서 다른 OS에서 실행시키기 위해서는 애플리케이션을  그 OS에 맞게 변경해야 한다.

-> 하지만 Java 애플리케이션은 JVM하고만 상호작용을 하기 때문에 OS와 하드웨어에 독립적이라 다른 OS에서도 프로그램의 변경없이 실행이 가능하다. (JVM에 종속적이라 해당 OS에서 실행가능한 JVM 필요!)

 

다양한  OS용 JVM

 

자바 프로그램 작성

1. javac.exe -> 자바 컴파일러. 사람이 작성한 문장을 기계어로 번역 소스 파일(*. java)을 클래스 파일(*. class)로 변환

2. java.exe -> 자바 인터프리터. 자바 프로그램(클래스 파일)을 실행

3. 클래스 -> 자바 프로그램의 단위. 자바 프로그램은 클래스들로 구성

class 클래스 이름 {

     문장

}

4. main 메서드 -> 자바 프로그램의 시작점. 이 메서드 없이 실행불가

class 클래스이름 {

     public static void main(String [] args) { <- main메서드의 시작

} <- main 메서드의 끝


[JDK설치]
다운 받고 C 드라이브에 dev 폴더 생성 -> cmd 열기
cd..
cd..
cd dev
cd jdk_1.8(폴더의 이름) > cd bin > java
사용법: java [-options] class [args...]... 나오면 성공!

 

[java 환경변수 등록]
검색 -> 시스템 환경 -> 환경변수 -> path -> [cmd 마우스 우클릭 2번: 경로 복사]->C:\dev\jdk_1.8\bin
다시 cmd창 켜기 >java -version
openjdk version "1.8.0_292"... 나오면 성공!

 

[자바 hello world 출력]
메모장에 코드 적고 HelloWorld.java로 파일 저장(C 드라이브에 src 폴더 생성 먼저)
javac 파일이름.java  // 컴파일하면 -> class 생성
java 파일이름

내용을 바꿀 때마다 컴파일해서 불러오기!

 

 

<사진출처>

https://ksabs.tistory.com/162