JAVA 스터디 DAY 1
프로그래밍 언어 교양
프로그래밍 언어 역사
- B -> C -> C++ -> JAVA -> C#
- C언어부터 high level language 라고 함
- high 와 low 의 차이
- 컴퓨터와 가까울수록 Low
- 사람에 가까울수록 High
- 지금 C언어는 Low 한 언어로 평가 받음
프로그래밍 정의
- 컴퓨터, 기계에게 무언가를 시키는 행위
- 어떻게 시키는가?
- 프로그래밍 언어를 사용해서
- 그럼 프로그래밍 언어는 무엇인가?
- 기계어와 자연어의 중간 역할
- 기계가 어떻게 알아먹나?
-
컴파일러라는 번역기가 있음 : 프로그래밍언어 -> 어셈블리어 -> 기계어
- 자연어
10이랑 20 더한 값은 ?
- 프로그래밍 언어 (자바)
a = 10
b = 20
c = a+b
- 어셈블리어
- 기계어
JAVA 와 C언어의 차이
- 가장 큰 차이는 절차지향언어 VS 객체지향언어
- 컴파일러 과정의 차이
C 컴파일 과정
JAVA 의 컴파일 과정
JAVA 가 사랑받을 수 있었던 이유
- 높은 이식성, 높은 생산성 + 유지보수성, 보안
JAVA의 높은 이식성
- JAVA 가 실행 되려면 실행될 기기에 무조건 JVM (Java Virtual Machine) 이 있어야 함
- JVM이란?
- JAVA 프로그램이 실행될 수 있도록 도와주는 아이
- 컴파일의 결과물인 .class 파일을 실행시켜 줌
- (+ 가비지 컬렉터라는 아이로 메모리 관리해 줌)
- 어떤 디바이스에서든 JVM만 있으면 자바로 작성된 프로그램을 실행 시킬 수 있음.
절차지향언어란?
- 프로그램의 흐름이 코드 작성 흐름과 동일
- 예를들어 여러 개의 함수가 있을 때 코드 상 위에 있는 함수에서 아래에 있는 함수를 호출하지 못함
- 장점 : 성능 좋음, 단순한 구조일 때 코드 생산성이 높은 편임
- 단점 : 코드 양이 늘어나거나 복잡한 로직인 경우 코드 생산성이 낮아짐
객체지향언어란?
- 앞으로 배워나갈거임.
- 객체라는 개념을 가져와 현실 세계의 개념을 표현하기 위해 노력했음 -> 추상화
객체(Object)란?
- 구조체 + 함수
- 구조체 : 변수들의 집합
- 함수 : 어떤 행위를 하는 코드의 집합
댓글남기기