프로그래밍 언어
프로그램을 작성하기 위한 언어
기계어
이진수로 되어있는 언어로 컴퓨터가 이해할 수 있다.
어셈블리어
기계어와 일대일 대응이 되는 컴퓨터 프로그래밍의 저급 언어
고급 언어
프로그래머가 특정 형식의 컴퓨터와는 무관하게, 독립적으로 프로그램을 작성할 수 있는 언어
절차 지향언어
- 순차적인 처리가 중요시 되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법
- 데이터 중심
- 실행 속도가 빠르지만 유지보수가 힘들다(순서가 정해져 있어 결과가 달라질 가능성이 높다)
객체 지향언어
- 실제 세계를 모델링하여 소프트웨어를 개발하는 방법
- 기능 중심
컴파일
프로그래밍
- 고급 언어를 이용해 프로그램 소스 파일을 작성하는 것
컴파일
- 소스 프로그램을 기계어로 변환 시키는 과정
- java의 경우 소스 파일은 .java / 컴파일 파일은 .class(바이트 코드)
컴파일러
Java
플랫폼 독립적
자바 가상 기계(JVM)가 있으면 어디서든 동일한 실행 환경을 제공하고 동일한 실행 결과 기댛라 수 있음
객체 지향
클래스 계층 구조
상속성 : 코드의 재사용성 UP!
다형성 : 객체에 따른 다른 동작
- 캡슐화 : 정보 은닉
클래스 : 객체(Instance)를 생성하기 위한 틀
객체 : 클래스에 따라 만들어진 실체
멀티 스레드
하나의 프로그램에서 다수의 스레드 동시 실행
타 언어와 차이
- 컴파일 시
자바 소스 -----> 클래스 파일(JVM에서 실행 가능)
C/ C++ -------> 실행 파일
JDK(Java Development Kit)
자바 컴파일러, 기타 도구, JRE, 클래스 라이브러리 소스, 자바 응용 프로그램샘플 소스 포함
패키지
서로 관련된 클래스들을 분류하여 묶어놓은 패키지
자바 API : 주요 기능 미리 구현한 패키지
public class NewMainTest2 {
public static void main(String[] args) {
System.out.println(args);
}
}
- static <-- 프로그램 실행 시 상주하게 된다! 프로그램의 시작이자 끝인 main 함수는 static 선언을 꼭 해주어야 함