ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JAVA 뜯어보기!
    개념정리 2023. 4. 21. 00:36

    Java를 사용하는 개발자로서 Java의 특징과 기능들에 대해서 공부해보려한다.

    개인적으로 공부한 내용이라 모든 내용이 꼭 맞지는 않겠지만 Java의 대표적인 기능과 특징에 대해 적어봅니다.

     

    Java의 개발: 제임스 고슬링

     

     

    1. Java 장단점

    장점) 
     - JVM이 설치돼 있다면 어떤 운영체제에서든 구동할 수 있다. (이식성)
     - 객체 지향 프로그램 언어로서, 개발자는 기존 코드를 재사용하고 모듈식 프로그램을 개발할 수 있습니다.
     - 자바는 독립적이다. 플랫폼에 구애받지 않으며 이는 웹 기반 소프트웨어에 필수적 요소이다.
     - 보안이 강하다
     - 이미 많은 사용자를 보유하고 있어 오픈 소스 및 정보가 방대하다
     - 가비지컬렉션(GC) : JVM의 Heap 영역에서 동적으로 할당했던 메모리 영역 중 필요 없게 된 메모리 영역을 주기적으로                                       삭제해준다. 

    (장점이자 단점이 될 수 있는데, 개발자가 메모리가 언제 해제되는지 정확하게 알 수 없으며, GC가 동작하는 동안에는 다른 동작을 멈추기 때문에 오버헤드가 발생한다.)


     단점)
     - 다른 프로그래밍 언어와 비교하면 속도가 느리다.
     - 코드 작성의 난이도가 높다(코드가 길고 많은 편) 

     

     

     

    2. 객체지향언어와 절차지향언어의 차이 (OOP vs POP)


     - 절차지향 특징 : 순차적인 처리가 중요시 되며 프로그램 전체가 유기적으로 연결되도록 프로그래밍 하는 기법
                     장점: 컴퓨터의 처리구조와 유사해 실행속도가 빠르다.
                     단점: 유지보수 및 디버깅이 어렵다. 실행 순서가 정해져있으므로 코드의 순서가 바뀌면 결과 보장 어려움


     - 객체지향 특징 : 기능별로 묶어 모듈화 함으로써 같은 기능을 중복으로 연산하지 않도록 한다.
                     장점: 재사용성(상속을 통한 코드의 재사용), 생산성 향상(클래스를 잘 활용하여 독립적인 객체사용), 유지보수                              의 우수성(캡슐화)
                     단점: 어떤 모듈에 있는 하나의 기능만 필요한 경우에도 모듈 전체를 가져와야 하기 때문에 프로그램이 무거워                               지며 절차지향식보다 느려지는 경우가 많다

     

     

     3. 객체지향언어(Object Oriented Programming)의 특성


    1. 추상화 : 객체의 공통적인 속성이나 기능을 추출하여 정의
            예) 고양이(객체), 강아지(객체), 소(객체)   ==> 동물 (추상화)

    2. 캡슐화 : 특정 객체가 독립적으로 역할을 수행하기 위해 필요한 데이터와 기능을 하나로 묶은 것 => 모듈화
          2-1 은닉화: 캡슐화를 통해 정보를 객체안에 포함시키고, 그 정보에 대해 직접 접근을 허용하지 않는 대신, 필요에 따라                            확인할 수 있는 인터페이스를 외부에 공개함으로써 정보를 은닉할 수 있다.

    3. 상속 : 상위 클래스의 특징을 하위 클래스가 이어받음 
          예) 유전자 : 부모->자식 

    4. 다형성 : 한 객체가 다른 여러형태로 재구성 될 수 있음 (한 부모의 밑에서 태어난 자식들이 각각 다를 수 있다) 
        4-1 : 오버로딩(Overloading) : 같은 이름의 메서드를 여러개 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술 
         4-2 : 오버라이딩(Overriding) : 상위 클래스가 가지고 있는 필드값/메서드를 하위 클래스가 재정의해서 이용

     

     

     

     

     

    '개념정리' 카테고리의 다른 글

    JSP 개념정리  (0) 2023.04.19
Designed by Tistory.