[Java] 기초

SANG JONG CHOI·2022년 10월 28일
0

Java

목록 보기
2/28

자바(Java) 언어

- 1995년 썬마이크로시스템즈(Sun Microsystems)에서 최초 발표한 언어

- 1991년 가전 제품에서 사용할 목적인 오크(Oak) 언어에서부터 시작

- 인터넷 프로그래밍 언어로 발전하면서 자바라는 이름으로 변경

- 2010년 오라클에서 썬을 인수하여 Java 개발,관리,배포 주관

자바 언어의 특징

- 플랫폼 독립적 (CPU나 운영체제에 상관없이 실행)

- 이식성이 높은 언어

- WORA(Write Once Run Anywhere)

- 진정한 의미의 객체 지향 언어(클래스, 상속, 다형성, 캡슐화 등)

- 멀티쓰레드 지원(하나의 프로그램 내에서 여러 작업 동시 수행 개념)

- 동적 로딩(Dynamic Loading) 지원

- 미리 객체를 만들어 놓지 않고 필요한 시점에 동적 로딩해 객체 생성

- 유지 보수 시 특정 객체만 쉽게 수정 및 교체해 사용메모리 사용량이 적고 메모리 관리 문제 해결

- GC(Garbage Collector : 쓰레기 처리기)가 메모리 해제의 모든 것 처리

- 메모리를 자동으로 관리

- 사용하지 않는 객체를 자동으로 메모리에서 제거

- 핵심 기능 코드에 집중할 수 있도록 하는 기능

- 막강한 오픈 소스 라이브러리 풍부

이식성이 높은 언어

자바 프로그램 실행 구조

자바 가상 기계 (JVM : Java Virtual Machine)

- java.exe 명령어에 의해 구동

- 바이트 코드를 기계어로 변환시키고 실행

- 각 운영체제에 맞는 자바 가상 기계(JVM) 실행

- 운영체제에 종속적

플랫폼 독립적

- CPU나 운영체제에 상관없이 실행

WORA(Write Once Run Anywhere)

- 한번 작성한 프로그램은 모든 플랫폼에서 실행 가능

자바 언어의 실행

- 소스 코드(.java)를 입력하고 컴파일하면

- 바이트 코드 형태의 클래스 파일(.class) 생성

- (바이트 코드 : 특정 하드웨어가 아닌 가상 컴퓨터에서 실행되는 프로그램을 위한 이진 코드)

- 자바 가상 기계(JVM)라는 가상의 CPU가 실행을 맡고 실제 CPU에게 처리를 맡김

- 런타임(실행할 때) 필요한 클래스들이 자바 가상 기계에 의해 링크되고, 클래스 로더가 동적으로 필요한 클래스 로드

자바 응용프로그램 종류

데스크톱 응용프로그램

- PC 등의 데스크톱 컴퓨터에 설치되어 단독으로 실행

- 자바 실행 환경(JRE)이 설치된 어떤 컴퓨터에서도 실행

- 예: 이클립스, 게임 등

애플릿(Applet) 응용프로그램

- 웹 페이지에 내장되어 실행

- 단독으로 실행될 수 없고 웹 브라우저에 의해 구동되고 실행 제어

- 웹 서버에서 클라이언트 사용자 컴퓨터로 다운로드 되어 사용자 컴퓨터에 설치된 웹 브라우저에 의해 실행

- 사용자에게 GUI 환경을 제공하는 간단한 기능 구현

- 애플릿을 실행하기 위해서는 자바 가상 기계가 있어야 함

자바 서블릿(servlet) 응용프로그램

- 서버에서 실행되는 서버용 자바 프로그램으로 웹 서버에 의해 실행 제어

- 웹 브라우저 상에서 실행되는 애플릿이나 자바 스크립트 코드와 통신

- 데이터베이스나 다른 서버와 연동하여 대규모 복잡한 응용프로그램 구현에 사용

모바일 응용프로그램

- 자바는 플랫폼 독립적, 적은 메모리 사용, 통신 환경 지원하도록 설계되어 있기 때문에

- 다양한 하드웨어, 소프트웨어 플랫폼을 갖는 모바일 기기에 적합

- 다양한 모바일 응용프로그램 개발에 사용

- 안드로이드

■ 구글의 주도하에 여러 모바일 회사가 모여 구성한 OHA(Open Handset Alliance)에서 개발한 무료 모바일 플랫폼

- Java ME (모바일 기기용 배포 판)

■ 게임, 임베디드 및 가전제품, 멀티미디어 응용프로그램 작성에 사용

자바 개발 환경 설정

  1. JDK (Java Development Kit)

- 자바 응용프로그램을 개발하고 실행하는데 필요한 총체적 환경

- 다운로드 및 설치 / 환경 변수 설정

  1. 이클립스 (Eclipse)

- 자바 통합 개발 환경 (IDE : Integrated Development Environment)

- 오픈 소스 소프트웨어로 무료 다운로드 사용

- 다운로드 / 설치 사용

JDK (Java Development Kit) 구성 내용

자바 응용프로그램을 개발하는데 필요한 도구

컴파일 : 고급언어를 컴퓨터가 이해할 수 있는 기계어로 변환

컴파일러 : 컴파일을 수행하는 프로그램

자바 가상 기계 (Java Virtual Machine – JVM)

자바 응용프로그램이 실행될 때 필요

JRE (Java Run-time Environment)
표준 클래스 파일 포함
자바 중요 개발 도구들
JDK의 bin 디렉터리에 exe 파일로 포함

javac :자바 소스를 바이트 코드로 변환하는 컴파일러

java : 자바 응용프로그램 실행

javadoc : HTML 형태의 API 도큐먼트 생성

jar : 자바 클래스 파일을 압축한 JAR 파일 생성 관리

jdb : 실행 중 오류를 찾는데 사용하는 디버거 
자바 패키지 (package)

- 자바에서 서로 관련된 클래스들을 분류하여 묶어 놓은 것

- import하여 사용

자바 API

- 주요 기능들을 미리 구현한 클래스 라이브러리로 묶어 놓은 패키지들

- API를 이용하여 쉽고 빠르게 자바 프로그램 개발

API 도큐먼트

- JDK에서 제공하는 표준 클래스 라이브러리 설명해 놓은 HTML 페이지들

자바 프로그램 작성 및 프로그램 기본 구조

자바 프로그램 작성 순서

(1) 프로젝트 생성

자바 소스 파일, 리소스(이미지, 동영상 등), 클래스 파일 등 관리

메뉴 : File / New / Java Project

Project name : TestProject  (대문자 시작)

Module : Create module-info java file 체크 해제

Finish

(2) (패키지 추가 후) 자바 클래스 추가

패키지 생성하지 않을 시 클래스 생성 : default package 사용

메뉴 : New / Class

Name : Test (대문자로 시작)

main() 메소드 포함 

public static void main(String[] args) 체크  

Finish

(3) 코드 입력

System.out.println(“test 입니다”);

(4) 실행 / 결과 확인

- 메뉴 : Run / Run

- 콘솔창에 출력 : test 입니다

소스 작성에서 실행까지 과정

자바 프로그램의 기본 구조

  • main() 메소드

​ - 자바 응용프로그램 실행은 main()부터 시작

​ - 프로그램을 실행할 때 ‘java.exe’에 의해 호출될 수 있도록 미리 약속된 부분

​ - public static void main(String[] args)

​ - 항상 동일하게 작성

  • public

​ - 다른 클래스에서 main() 메소드에 접근 허용 (실행 시 자바 가상 기계가 호출할 수 있도록 접근 허용)

  • static

​ - 객체 생성(인스턴스) 생성하지 않고도 호출 가능

​ - main() 메소드가 포함된 클래스의 객체(인스턴스)가 생성되기 전에 자바 가상 기계가 호출해야 하므로 static으로 선언)

  • void

​ - 반환(return)값 없음을 의미

​ - 작업 수행하고 메소드 종료

  • (String[] args)

​ n main() 호출하면서 전달되는 값을 받는 매개변수로 문자열 배열

​ - 하나의 클래스에 main() 메소드는 하나만 존재

​ - 클래스마다 main() 메소드 존재할 수 있지만

​ - .java 파일명과 동일한 public 클래스의 main()에서부터 실행 시작

하나의 java 파일에 여러 개의 클래스 존재 가능

public 클래스는 하나만 존재 – 이 public 클래스 이름이 파일명이 됨

주석문

- 프로그램에 대한 설명문 (컴파일러가 무시)

- 프로그램 실행에 영향 없음

- 코드가 1줄인 경우 주석 : //

- 여러 행인 경우 주석 : /* ……. */

- 블록 주석 설정 : Ctrl + Shift + /

- 블록 주석 해제 : Ctrl + Shift + \

블록 주석 시 자동 정렬되는 문제

- 블록 주석 시 포맷팅 적용하지 않도록 설정

- Window / Preferences

- Java / Code Style / Formatter

- New : NewProfile 생성 [OK]

- Comments / Enable block comment formatting 체크 해제

주석을 사용하는 이유

- 프로그램에 관한 정보를 추가할 수 있다

- 수정이 용이하다

- 가독성을 높여 준다

- 코드를 이해하기 쉽다

- 다른 사람이 작성한 코드를 쉽게 해석할 수 있다

문장

- 문장의 끝을 표시하기 위해 세미콜론(;) 사용

- 한 문장을 여러 줄로 작성할 수 있지만- ;을 만날 때 문장 끝으로 인식

블록 { }

- 클래스, 메소드, 반복문, 조건문에서 영역 범위 표시

public class Hello {

}

public static void main(String[] args) {

}

에러와 해결 방법

- 콘솔(Console) 창에 에러 메시지 출력

- 읽어 보고 라인 클릭해서 오류 처리

profile
No error, No gain

0개의 댓글