Java

JAVA란

공부 2020. 7. 16. 11:37

자바는 오라클이 소유하고 있지만 원래는 썬마이크로시스템즈라는 회사에서 만들어졌다.

1991년 썬마이크로시스템즈의 엔지니어 였던 제임스 고슬링이(James Gosling)이 만들기 시작했고

1995년 1.0을 세상에 내놓았다. 

 

자바는 C언어와 C언어의 뒤를 이어 C++언어를 많이 따른다.

객체 지향언어인 부분이 가장 많이 닮았다.

그런데도 자바가 더 많이 쓰이는 이유는 

자바 언어가 추구하는 'WORA' 때문이다

'Write Once, Run Any-where'의 약자로 

한번 작성하면 어디서든 수행이 가능한 것이다.

 

C언어보단 C++이 더 Java와 유사하니 비교해보면

C++이나 Java나 컴파일 과정을 거치게된다.

컴파일은 번역 과정이다.

컴퓨터가 이해할 수 있는 컴퓨터 언어 문서로 바꿔야 컴퓨터가 코드를 이해 할 수 있는 것이다. 

이것이 '컴파일' 이라는 것이다

 

컴파일러는 컴파일 해주는 프로그램을 의미한다

컴파일러는 컴퓨터 CPU환경 에 맞춰서 컴파일된 코드를 생성한다.

따라서 컴파일 코드를 같은 종류의 CPU환경을 갖는 컴퓨터에서 수행하면 문제가 없겠지만

CPU환경이 다른 컴퓨터에서는 실행 시킬 수가 없다.

이 부분이 바로 Java의 호환성이 나타나는 부분이다.

그리고 인터넷 환경이 개인마다 다르기때문에 호환성이 좋은 Java가 많이 사용된다.

 

호환성이 좋은 또 다른 이유는 컴파일 과정에서 '인터프리터'과정을 거치기 때문이기도 하다.

 

스마트폰의 안드로이드도 Java로 이루어졌고

스마트폰 앱을 만드는 언어도 Java로 이루어졌다.(지금은 코틀린이 많이 사용되고 있긴 하다!)

 

자바는 클래스 라는 도구를 이용해서 객체지향 개념을 구현한다.

객체(object)는 데이터와 그 데이터를 다루는 코드들로 구성되며 

네가지의 중요한 개념을 가지고 있다.

 

1.캡슐화 2.다형성 3.상속 4.추상화

캡슐화(encapsulation)는 객체 안에서 데이터들이 저장되어 있고 그 데이터를 프로그램 코드로 보호하는 것을 말한다

 

다형성(polymorphism)은 하나의 인터페이스에 여러 실제적인 구현을 담을 수 있는 것을 말한다

 

상속(inheritance)은 자바의 클래스들은 계층 구조를 가지고 있는데 상위 클래스 코드를 사용 할 수 있도록 해준다

즉 상위 클래스 내용을 상속 받아서 사용 할 수 있는 것이다.

 

추상화(abstration)은 실생활에 존재하는 객체 들을 프로그램 코드로 표현하기 위해 객체들의 공통된

특성들을 파악하고 일반화된 코드로 나타낸 것을 말한다 .