1) platform independent (Java, C#)
: 독립적이지 않을 경우 사용자가 어떤 프로그램을 쓰는지에 따라 운영체제가 다르기 때문에 운영체제에 따라서 버전이 많이 필요함
>> JAVA의 경우 어떤 운영체제더라도 하나의 클래스 파일이 다른 운영체제에서 잘 돌아가기 때문에 컴파일 할 필요가 없음
원리 ) 바이너리 체계가 다르기 때문인데, JAVA는 최종 컴파일 된 실행 파일이 완벽한 이진파일이 아닌 중간단계인 어셈블리어 파일. Java Virtual Machine이 어셈블리어 파일을 완벽한 이진파일로 변환하는 과정을 거치기 때문에 모든 운영체제에서 실행이 가능하다.
단점 ) 매번 실행할 때마다 다시 한 번 컴파일을 진행하기 때문에 속도가 느려짐 (But, 하드웨어가 빨라졌기 때문에 문제가 되지 않음)
2) OOP (객체지향 언어)
: 재사용성이 뛰어남
: 유지보수 용이
* 객체지향 언어란?
+ 소프트웨어 : 인간이 만들기에 이는 인건비. 따라서 하드웨어보다는 소프트웨어가 훨씬 비싸며, 인건비에 따라서 계속 올라감. 또한, 이는 만드는 것이 끝이 아닌 지속적인 유지 보수가 필요함.
: 소프트웨어를 조금 더 싸게 활용하기 위해 기존에 사용하던 것을 가져와서 사용한다면 어느 정도의 비용이 절감될 수 있음. 이를 위해 객체지향 언어가 사용됨
: 함수로 봤을 때 변수만 바뀌어서 사용되는 것이라고 보면 됨. 즉, 기능별로 묶어서 사용함.
3) Simple & Easy
: 클래스 상속은 단일 상속만 지원 (OOP의 특징 중 하나)
: 포인터를 지원하지 않아 직접적인 메모리 접근 불가
4) Garbage Collector
: Heap 메모리 영역의 객체들을 정리
- 운영체제는 메모리 관리와 프로세스를 운영
: 프로그램을 실행함과 동시에 메모리에 올라가는 것, 내리는 것 등을 알아서 중재해줌 (메모리가 부족하거나 CPU가 쉬고 있을 때 이를 알아서 메모리를 할당해주는 역할을 함)
5) Database Independent(JDBC; JAVA DATABASE CONNECTIVITY)
: JDBC interface 이용시 DB에 독립적 = DBMS는 데이터베이스를 관리해주는 일종의 시스템
: JDBC를 이용하면 DB를 변경하는 것에 문제가 없음. (코드를 바꾸지 않고 DB만 변경해주면 됨)
6) Multi-Threading 지원
: 하나의 프로그램 안에서 여러 개가 동시에 실행되는데 이는 멀티 쓰레드에 의해서 작동됨
'Kosta 교육' 카테고리의 다른 글
| [Day12 - JAVA] chap9. lang 패키지_1 (0) | 2023.08.29 |
|---|---|
| [Day8 - JAVA] chap6. 객체지향언어1_2 (0) | 2023.08.28 |
| [Day12] chap8. 예외처리 (0) | 2023.08.28 |
| [Day7 - JAVA] chap6. 객체지향언어1_1 (0) | 2023.08.28 |
| [Day3 - Java] 반복문 연습문제 - 피보나치 수열 나열하기 (0) | 2023.08.11 |