"이것이 자바다" 정리1

2023. 2. 8. 23:57자바/이론 공부

이 게시글은 내가 "이것이 자바다" 책을 읽고 노트에 정리해놨던 내용들을 검색하기 쉽게 데이터로 백업하는 용도의 글이다.

 

문제가 된다면 삭제하겠음.

 

 

 

*저급언어 : 어셈블리어

 

 

*자바의 특징

1. 이식성(JVM이 있기때문에 한번의 코딩으로 여러 운영체제에서 사용가능하다.)

2. 객체지향 언어

    -부품에 해당하는 객체들을 만들고 이 객체들을 하나로 조립해서 프로그램 완성.

    -캡슐화, 상속, 다형성기능이라는 특징이 있음.

    -캡슐화 : 객체를 만드는 형식. 캡슐화라는건 필드와 메서드를 묶어 외부에 감춘다는 뜻이다. 데이터와 데이터 처리방법(생성자, 메서드)을 따로 외부에 만들어서 main메서드에서는 그 행위가 보여지지않는 것.

    -다형성기능 : 오버로딩, 오버라이딩, 함수형 인터페이스.

     오버로딩은 동일한 이름의 메서드지만 다른 반환타입 또는 다른 매개변수를 갖고 있는것을 말하고

     오버라이딩은 상위 클래스의 메서드를 하위클래스에서 재정의하는 것을 말함.

     =>하나의 타입에 여러 객체를 대입할 수 있는 성질을 다형성이라고 함.

3. 함수적 스타일 코딩

    -장점 : 대용량 데이터의 병렬처리, 이벤트 지향 프로그래밍을 위해 적합하다.

    -자바는 람다식이 이 스타일. (람다식을 사용하면 컬렉션의 요소를 필터링, 매핑, 집계 처리하는데 좋고 코드가 간결해진다.)

4. 메모리 자동관리

    -자바가 직접 관리

5. 다양한 애플리케이션 개발가능

6. 멀티 스레드 구현 쉬움.

    -동시에 여러 작업 처리(병렬처리)

    -자바는 스레드관련 라이브러리 API를 제공한다.(이런건 어떤게 있을까?)

7.동적로딩

    -자바는 여러 객체가 서로 연결되어 실행됨. 프로그램 실행시 모든 객체가 생성되는게 아니라 객체가 필요한 시점에만 객체 생성.

    => 따라서 유지보수가 쉽고 빠름. (객체가 필요한 시점에만 객체를 생성하는거하고 유지보수가 쉽고 빠른거하고는 무슨 상관일까!?)

8. 막강한 오픈소스 라이브러리

 

 

*JVM 자바 가상 머신

-자바 프로그램을 실행하는 가상의 운영체제

-운영체제마다 다르다.

#JVM의 작동 과정

    a.java 파일 작성(소스파일) -> 컴파일러가 컴파일 -> a.class(바이트코드파일)가 됨 -> JVM에 의해 기계어로 번역됨

-장점 : 이식성. 다양한 운영체제에서 사용가능.

-단점 : 느림.

 

 

*JDK와 JRE

-JDK : JVM + 라이브러리 API + 컴파일러

-JRE : JVM + 라이브러리 API

    JRE는 프로그램 개발 x, 실행만 할때

-JDK에 JRE 속해있음.

 

 

*컴파일러는 javac.exe

JVM은 java.exe