코이_CO2
LIVING IS DYING
코이_CO2
전체 방문자
오늘
어제
  • 분류 전체보기 (45)
    • TIL ⚓️ (4)
      • OT주차 (1)
      • 1주차_풀스택 미니 프로젝트 (0)
      • 1주차_언어 기초(Java) (0)
      • 2주차_프로그래밍 기초 (1)
      • 3주차_주특기 입문(Spring) (0)
      • 4주차_주특기 숙련(Spring) (2)
    • WIL ⚓️ (0)
      • OT주차 (0)
      • 1주차_언어 기초(Java) (0)
      • 2주차_프로그래밍 기초 (0)
      • 3주차_주특기 입문(Spring) (0)
      • 4주차_주특기 숙련(Spring) (0)
    • Java의 정석 📖 (4)
      • Chapter 1. 자바를 시작하기 전에 (3)
      • Chapter 2. 변수 (0)
      • Chapter 3. 연산자 (0)
      • Chapter 4. 조건문과 반복문 (1)
    • Programmers (7)
      • Lv. 1 (7)
    • 혼자 공부하는 자바 📖 (8)
      • Chapter 05 참조 타입 (0)
      • Chapter 06 클래스 (3)
      • Chapter 07 상속 (1)
      • Chapter 08 인터페이스 (1)
      • Chapter 09 중첩 클래스 & 인터페이스 (0)
      • Chapter 10 예외 처리 (1)
      • Chapter 12 스레드 (1)
    • Java (2)
    • Spring (1)
    • Python (2)
    • Mysql (4)
    • Machine Learning (6)
      • 추측 통계 (2)
    • Data Analysis (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • programmers
  • PYTHON
  • spring
  • jwt
  • TIL/WIL
  • 코딩
  • HTML
  • 주특기 심화주차
  • Spring Security
  • LV1
  • 게시판 프로젝트
  • 파이썬
  • 웹개발 종합반
  • 스프링
  • 항해99
  • sql
  • DTO
  • 혼자공부하는자바
  • CRUD
  • TIL
  • 부트스트랩
  • 하루기록
  • 개발자
  • java
  • 배열
  • 프로그래머스
  • 혼자 공부하는 자바
  • 자바
  • 개발일지
  • 스터디

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
코이_CO2

LIVING IS DYING

Java의 정석 📖/Chapter 1. 자바를 시작하기 전에

자바의 특징

2023. 1. 19. 18:01

자바의 특징

1. 운영체제에 독립적

자바로 작성된 프로그램은 운영체제와 하드웨어에 관계없이 실행 가능

  • 자바 가상 머신(JVM)을 통해 자바 응용프로그램과 통신하고 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달
  • 여러 운영체제에 설치할 수 있는 서로 다른 버전의 JVM 제공
  • Write Once, Run Anywhere : 한 번 작성하면, 어디에서나 실행된다

 

2. 객체지향언어

자바는 객체지향개념의 특징인 상속, 캡슐화, 다형성이 잘 적용된 순수한 객체지향언어

객체 지향 프로그래밍

  • 프로그램의 구현을 시간의 흐름순이 아닌 객체간의 관계와 협력을 기반으로 프로그램 하는 것
  • Object oriented programming(OOP)라고 함
    • cf. 절차 지향 프로그래밍 procedural programming
  • 사용 하는 언어 : Java, C++, C#, Python, JavaScript, Ruby 등 다수

 

 

3. 비교적 배우기 쉽다

장점은 취하면서 복잡하고 불필요한 부분은 과감히 제거하여 단순화

  • C++
    • 자바의 연산자와 기본구문
  • 스몰톡(small talk)
    • 객체지향관련 구문

 

4. 자동 메모리 관리(Garbage Collection)

가비지 컬렉터가 자동적으로 메모리를 관리해주기 때문에 프로그래머는 메모리를 따로 관리하지 않아도 된다

다소 비효율적으로 볼 수 있으나 프로그래머가 보다 프로그래밍에 집중할 수 있도록 도와주는 것

 

5. 네트워크와 분산처리 지원

풍부하고 다양한 네트워크 프로그래밍 라이브러리(Java API)

  • 비교적 짧은 시간에 네트워크 관련 프로그램을 쉽게 개발할 수 있도록 지원

 

6. 멀티쓰레드 지원

  • 시스템과는 관계없이 구현 가능
  • 관련된 라이브러리(Java API)가 제공되므로 구현이 쉬움
  • 여러 쓰레드에 대한 스케줄링을 자바 인터프리터에서 담당

 

7. 동적 로딩(Dynamic Loading)을 지원

자바는 동적 로딩을 지원

  • 실행 시 모든 클래스가 로딩되지 않음
  • 필요한 시점에 클래스를 로딩하여 사용(장점)

유연한 애플리케이션 작성

  • 일부 클래스 변경 시 전체 애플리케이션을 다시 컴파일하지 않아도 됨
  • 애플리케이션의 변경사항 발생 시 비교적 적은 작업으로 처리 가능

 

 

'Java의 정석 📖 > Chapter 1. 자바를 시작하기 전에' 카테고리의 다른 글

JVM, JDK  (0) 2023.01.25
자바(Java)란?  (0) 2023.01.19
    'Java의 정석 📖/Chapter 1. 자바를 시작하기 전에' 카테고리의 다른 글
    • JVM, JDK
    • 자바(Java)란?
    코이_CO2
    코이_CO2
    나에게 찾아오는 뻔한 매일을 언제나 값지게 여길 줄 아는 내가 되기를

    티스토리툴바