
Java는 1995년에 Sun Microsystems에서 개발한 객체 지향 프로그래밍 언어이다.
객체지향언어의 특징
캡슐화(Encapsulation) : 데이터와 코드의 형태를 외부로부터 알 수 없게 하고, 데이터의 구조와 역할, 기능을 하나의 캡슐형태로 만드는 방법.
상속성(Inheritance) : 상위 클래스의 모든걸 하위 클래스가 모두 이어 받는 것. 즉, 부모가 자식에게 유전자를 물려주듯 부모의 특징을 자식에게 모두 물려주는 것.
다형성(Polymorphism) : 상속과 연관이 있는 개념으로 한 객체가 다른 여러형태(객체)로 재구성 되는 것. ->오버로딩/오버라이딩
추상화(Abstraction) : 객체의 공통적인 속성과 기능을 추출하여 정의하는 것.
* 절차지향언어란?
순차적인 처리가 중요시 되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법
* 오버로딩?
- 상속과 관련 없음.
- 한 클래스에서 같은 이름의 메소드를 여러개 정의하는 것.(method 중복)
- 매개변수의 타입,개수,순서가 달라야 한다.
* 오버라이딩?
- 상속에서 나온 개념
- 상위 클래스(부모 클래스)의 메소드를 하위 클래스(자식 클래스)에서 상속받은 상태에서 본문 내용만 수정하는 것.(method 재정의)
서로 다른 실행환경을 가진 시스템간에 프로그램을 옮겨 실행 할 수 있는 것을 말한다.
자바가상머신(Java Virtual Machine)만 설치하면 컴퓨터의 운영체제에 상관없이 작동함. (운영체제가 독립적)
자바는 자바 실행환경(JRE)이 설치 되어 있는 모든 운영체제에서 실행이 가능하다.
* JVM에서 바이트코드를 기계어코드로 변환하는 작업을 한다.
| 컴파일 언어 | 인터프린터 언어 |
|---|---|
| 코드 실행 전, 컴파일 타임에 소스 코드 전체를 한번에 기계어로 변환 후 실행. 실행 파일 생성. 실행 속도 빠름. | 코드가 실행 단계인 런타임에 코드 한 줄씩 중간 코드인 바이트 코드로 변환 후 실행. 실행 파일 생성X. 실행 속도 느림. |
| C, C++, C#, JAVA 등 | Python, JavaScript, Ruby 등 |
운영체제에 따라 멀티스레드를 구현하는 방법이 다르지만, 자바는 스레드 생성 및 제어와 관련된 라이브러리 API를 제공하므로 운영체제에 상관없이 멀티스레드를 쉽게 구현할 수 있다.
* 멀티스레드란 하나의 프로세스 내에서 둘 이상의 스레드가 동시에 작업을 수행하는 것.
TCP/IP
TCP/IP는 네트워크 프로토콜 스위트로, 온라인상의 안전하고 효율적인 데이터 전송의 필수 요건을 정의한다.
TCP는 전송 제어 프로토콜(Transmission Control Protocol)의 약자이며 한 기기에서 다른 기기로 데이터를 전송하는 것을 담당한다. IP는 인터넷 프로토콜(Internet Protocol)의 약자이며 이 프로토콜은 데이터의 조각을 최대한 빨리 대상 IP 주소로 보내는 역할을 표시한다.
데이터 전송 과정에서 TCP와 IP는 각각 담당하는 작업이 있지만, 결국에는 같은 결과를 목표로 하기 때문에 한 명칭으로 알려지기도 한다.