coding_yoon
냥집사의 개발노트
coding_yoon
전체 방문자
오늘
어제
  • 분류 전체보기 (24)
    • 📚Programming (16)
      • Java (10)
      • Spring (0)
      • Spring Boot (0)
      • JPA (0)
      • Python (4)
      • 개발 환경설정 (2)
    • 📌ETC (8)
      • Tech Interview (8)

블로그 메뉴

  • 💻깃허브
  • 방명록
  • 태그 클라우드

공지사항

인기 글

태그

  • 이클립스 프로젝트생성
  • 자바신입
  • 파이썬이론
  • 기술면접
  • 자바자료형
  • 개발자면접정리
  • springbootdevtools
  • 면접정리
  • scanner메소드
  • 자바기초
  • 프로젝트 임포트
  • 신입개발자면접
  • 자바상수
  • 출력메소드
  • import문 사용방법
  • 이클립스 프로젝트 import
  • 자바이론
  • html컴파일없이
  • 자바random
  • 인테리제이
  • 자바의특징
  • 이클립스기초
  • 자바연산자
  • 신입개발면접
  • 코드작성순서
  • 현업프로젝트 내려받기
  • sql이론
  • STS 프로젝트받기
  • 사용자입력 exception
  • 자바기술면접

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
coding_yoon

냥집사의 개발노트

📚Programming/Java

[자바] 프로그래밍이란?

2022. 9. 16. 10:56
\

# 1️⃣ 프로그래밍?

프로그램(progream) : 일정한 기능을 수행하는 컴퓨터가 인식할 수 있는 명령어들의 집합

프로그래밍(Programming) : 프로그램을 작성하는 과정

프로그래머(Programmer) : 프로그램을 작성하는 사람


# 2️⃣ 프로그래밍 언어

  • 우리가 사용하는 언어는 컴퓨터 입장에서 "이해할 수 없는 문자 집합"
  • 컴퓨터가 사용하는 언어는 우리의 입장에서 "0과 1의 이상한 반복"
  • 사람과 기계가 커뮤니케이션 할 수 있도록 중간다리 역할을 하는 것

# 3️⃣ 자바의 특징

3 - 1. 장점

1. 객체 지향 언어

OOP : Object Oriented Programming

  • 부품에 해당하는 객체를 만들고, 이것을 조립/연결해서 프로그램을 완성할 수 있다
  • 모든 ‘객체’를 부품처럼 사용하기 때문에, 개발/유지보수가 용이함.
  • 캡슐화 , 상속, 다형성이라는 특징을 가진다 (추상화)

2. 이식성이 좋다.

: 어떤 운영체제에서도 사용 가능함

 

3. 메모리를 스스로 관리

Garbage Collection (가비지 컬렉션)

  • 개발자가 직접 관리해야 하는 C언어와 달리, 자바는 가비지 컬렉션이라는 청소부가 알아서 불필요한 객체를 지워 주면서 메모리를 관리해 준다.

4. 운영체제에 독립적이다.

‘한번 작성하면, 어디서든 실행된다’

  • 자바 가상머신 (JVM) 때문
  • 자바 응용프로그램은 운영체제나 하드웨어가 아닌 JVM하고만 통신
  • JVM이 자바 응용프로그램으로부터 잔달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달

5. 동적로딩을 지원한다.

  • 자바는 실행 시에 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용
  • 그 외에 일부 클래스가 변경되어도 전체 애플리케이션을 다시 컴파일X
  • 변경사항이 발생해도 비교적 적은 작업만으로 처리

6. 멀티쓰레드를 지원한다.

: 자바에서 개발되는 멀티쓰레드 프로그램은 시스템과는 관계없이 구현가능하며, 관련된 라이브러리(Java API)가 제공되므로 구현이 쉽다. → 일반적으로 멀티쓰레드의 지원은 사용되는 운영체제에 따라 구현방법도 상이, 처리 방식도 다름

 

7. 사용하기 쉬운 언어이다.

: 다른 언어들에 비해 쉽다

  • 자바는 고급 언어들에 들어 있는 여러 가지 요소들 중에서 반드시 필요하지 않다고 생각된 부분들은 모두 제거함.

3 - 2. 단점

  1. 자바는 실행을 위해 자바 가상 머신을 거쳐야 하므로, 다른 언어에 비해 실행 속도가 느림
  2. 자바는 예외 처리가 잘 되어 있지만, 개발자가 일일이 처리를 지정해 줘야 한다는 불편함
  3. 자바는 다른 언어에 비해 작성해야 하는 코드의 길이가 긴 편

# 4️⃣ 자바 개발 환경

  • JDK(Java Development kit)
    • JVM은 자바가 실제도 구동하는 환경, 자바 개발 키트이다.
  • JVM(Java Virtual Machine)
    • 자바 가상 머신(JVM)은 라이브 자바 프로그램 실행을 담당하는 실행 소프트웨어 시스템이다.
  • JRE(Java Runtime Environment)
    • JVM이 자바 프로그램을 동작시킬 때, 필요한 라이브러리 파일과 기타 파일을 가지고 있음
    • 자바로 만들어진 프로그램을 실행하려면 JRE만 있어도 됨, 개발하려면 JDK있어야함
  • Java SE(Java platform Standard Edition)
    • java api의 집합체
  • Java EE(Java platform Enterprise Edition)
    • java를 이용한 서버측 개발을 위해 필요한 플랫폼
    • 웹 애플리케이션 장애복구 및 분산 멀티티어 제공
  • Java ME(Java platform Micro Edition)
    • 제한된 자원을 가진 휴대전화, PDA, 세톱박스 등에서 Java 프로그래밍 언어를 지원하기 위해 만들어진 플랫폼

# 5️⃣ 자바 프로그램의 실행 과정

1. 소스코드 작성 단계

  • Java 언어로 코딩을 하면 확장자가 .java인 텍스트 파일이 생성된다. 자바 소스 파일이라고 한다.

2. 컴파일 단계

  • 프로그램 실행을 시도하면 .java 파일이 컴파일이되고 컴파일이 완료되면 .class 파일이 생성된다.
  • 컴파일이란 java 소스코드를 java 컴파일러(javac.exe)가 바이트코드(2진수)로 변환하는 것이다.

3. 실행 단계

  • JVM(java.exe)이 .class 파일을 메모리로 로드하고, 기계어(0101001)로 변환 후 실행한다.

#6️⃣ JVM 메모리구조

저작자표시 비영리 변경금지 (새창열림)

'📚Programming > Java' 카테고리의 다른 글

[자바] 출력메소드  (1) 2022.09.16
[자바] 형변환  (0) 2022.09.16
[자바] 상수와 리터럴  (0) 2022.09.16
[자바] 변수  (0) 2022.09.16
[이클립스] JAVA 프로그래밍 순서  (1) 2022.09.16
    '📚Programming/Java' 카테고리의 다른 글
    • [자바] 형변환
    • [자바] 상수와 리터럴
    • [자바] 변수
    • [이클립스] JAVA 프로그래밍 순서
    coding_yoon
    coding_yoon
    코딩공부를 하며 작성하는 노트

    티스토리툴바