자바(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 필요!)
자바 프로그램 작성
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 파일이름
내용을 바꿀 때마다 컴파일해서 불러오기!
<사진출처>
'멀티캠퍼스 풀스택 과정 > Java의 정석' 카테고리의 다른 글
자바의 정석1-6 반복문 (0) | 2021.12.29 |
---|---|
자바의정석1-5 조건문 (0) | 2021.12.29 |
자바의 정석1-4 타입 변환과 연산자(operator) (0) | 2021.12.28 |
자바의 정석1-3 화면 입출력 (0) | 2021.12.28 |
자바의 정석1-2 변수, 기본형과 참조형 (0) | 2021.12.28 |