수업/└Java

[CH00]Java 기초

onlyun 2022. 1. 29. 23:54

프로그래밍

컴퓨터가 일을 하도록 컴퓨터 언어로 명령을 만들고 컴퓨털 하여금 그 명령을 실행하도록 하는 것.

 

프로그램

컴퓨터에게 일을 시키는 명령의 집합

명령(소스 코드) 집합과 컴파일된 결과물까지 포함.

 

프로그래밍 언어

-절차 지향 : 순서 대로

-객체 지향 :  객체를 만들고 그것들끼리 유기적으로 연결

 

C : 메모리 직접 제어. 플래폼 호환성 없음.

└ C++ : 객체 지향

└ C# : 공장 자동화 같은 데서 많이 쓰임.

 

컴파일

소스 파일을 컴퓨터가 이해할 수 있는 기계어로 만드는 과정. 컴파일된 파일(오브젝트 파일)

(*소스 파일 : 프로그래밍 언어로 작성된 텍스트 파일)

 


자바(Java)

-자바가상머신(JVM) : 자바 바이트 코드를 실행하는 자바 가상 기계.

 플랫폼이 다른 걸 완충하는 역할. → 호환성 좋음.

 자바가상머신 자체는 플랫폼 종속적(플랫폼마다 각각 작성)

 

-WORA(Write Once Run Anywhere)

 한번 작성되어 컴파일된 것은 모든 플랫폼에서 바로 실행.

 바이트 코드이기 때문에(네트워크 때 추가 설명 예정)

 (네트워크 통과할 때 바이트 단위이기 때문에 2바이트, 3바이트일 경우 짤려서 나올 수도 있음)

 

-자바 특징

✔플랫폼 독립성 : 플랫폼 상관없이 어디서든 실행. 가상머신 덕분.

 

✔이식성 : 웹프로그램 만드는데 적합.

  가상머신 위에서 돌아가기 때문에 속도는 느린 편. 게임에선 사용하지 않음.

 

✔캡슐화 : 클래스 내에 모든 변수(필드), 함수(메서드) 구현.

  클래스 안에 새로운 클래스(내부 클래스) 작성 가능.

 

✔소스 파일(.java)과 클래스 파일(.class)

  소스 파일엔 여러 개의 클래스가 들어갈 수 있으나 public class는 1개여야 함.

  컴파일된 클래스(.class)엔 클래스 하나만 존재. 컴파일은 클래스별로 생성.

  (위치 변경하지 않았다면 bin 폴더에 클래스 파일 생성됨)

 

✔패키지 : 관련있는 클래스를 묶어서 관리

 

✔가비지 컬렉션

  할당 후 사용되는 않는 메모리(가비지)를 자동적으로 정래해줌.

  다만 자바가 자동으로 해주는 거라 개발자가 원하지 않는 타이밍에 할 수 있음.

  가비지 컬렉션이 시행될 때는 락(Lock)이 걸려 멈춤. 실시간 응용 시스템엔 부적합.