728x90
반응형
대표적인 절차지향 언어인 C언어.
자바 프로그램과 C언어의 가장 큰 차이점은 바로, <종속성>이다.
환경에 종속적인 C언어와 달리, 자바는 wirte once - run erveywhere의 특징을 가져
어떤 OS 환경에서도 실행될 수 있으며 플랫폼에 독립적일 수 있다.
=> 이것은 C언어와 자바의 컴파일 방식의 차이가 있어 가능하다.
- C언어의 경우 : A.c —(compile)—> A.obj
(binary체계의 기계어: 리눅스 기반으로 환경에 종속적이다. 윈도우 실행X)
반면 자바 컴파일은 run하는 환경 기계어 다 다르니, 어느 환경에서든 돌아갈 수 있는 .class를 만든다.
기계에 독립적인 중간 코드를 만드는 과정인 것이다. - JAVA의 경우 : A.java —(compile)—> A.class
(byte code체계의 기계어, bytecode→binary code로 변환 후 실행(실행속도는 더 오래걸림))
Q. 실행 속도 빠른 게 최고일까? => NO
절차지향은 개발 속도 빠르다.
그러나 결합도 너무 높다.
💡객체지향은 느리고 메모리 많이 사용하지만
클래스의 결합도가 떨어진다.
유지보수성 높이려면 객체지향으로 해야한다.
게다가 요즘에 cpu가 빨라져서 이런 걱정도 미미하다.. 장점이 훨씬 크다는 거.
■ 코드의 결합도가 떨어지면...
유지보수가 하기 쉬워진다.
재사용성도 높아진다.
클래스의 인스턴스화가 이 재사용성을 높이는 대표적인 예이다.
"하나의 잘 만든 클래스보다 여러 개의 인스턴스가 더 낫다."
그러니 구체화보단 추상화에 신경쓰고
오버라이딩과 오버로딩에 신경쓰자...
반응형
'Programming Languages > Java' 카테고리의 다른 글
[JAVA] 자바의 컴포넌트 - 자바 빈(Bean) 조건과 필요성 (0) | 2024.07.30 |
---|---|
[JAVA] 자바 컴파일 특징을 JDK 구성 요소를 통해 알아보자 (0) | 2024.07.28 |
[JAVA] 자바 기본형 타입 종류와 크기 (0) | 2024.06.27 |
[JAVA] BufferedReader, BufferedWriter 사용해야 하는 이유 (0) | 2024.06.20 |
[Java] 자바 상속 구현 / extends, implements의 차이? / 개념과 사용법 정리 (1) | 2024.02.08 |