본문 바로가기

Java/information

[자바/JAVA] 자바란

자바는 1991년 썬마이크로시스템즈의 엔지니어였던 제임스 고슬링 (James Gosling)이 만들기 시작해 1995년에 버전 1.0 탄생했다.
현재 오라클(Oracle)이라는 회사가 소유
가장 최신 버전은 자바 13이지만, 2018년 9월 25일에 발표된 버전 11.0이 가장 안정적인 버전이다.
안드로이드 스마트폰의 앱을 만드는 언어가 자바를 기반. (2017년에 구글에서 코틀린이라는 언어를 안드로이드 공식 언어로 지정 전에는 자바를 공부해야 했음)

자바의 기본 문법은 1972년에 나온 C언어와 1989년에 나온 C++언어를 많이 따름. 특히 객체 지향 언어인 C++를 많이 닮았다.
C,C++보다 더 인기 있는 이유는 자바 언어가 추구하는 WORA 때문이다.

자바의 슬로건 WORA
-WORA는 'Wriet Once, Run Any where'의 약자로 한 번 작성하면 어디에서든 수행될 수 있다는 뜻
-자바는 호환성이 좋은 언어로, 한번 컴파일된 코드는 CPU 환경이 다른 컴퓨터에서도 다시 컴파일 하지 않고 수행
(컴파일 - 자바 코드는 그냥 문서로 이 문서를 컴퓨터가 이해할 수 있는 컴퓨터 언어 문서로 바꾸는 과정)
(컴파일러 - 컴파일을 해 주는 프로그램. 컴파일러는 컴퓨터 CPU 환경에 맞춰서 컴파일된 코드를 생성)

Person.java(자바 소스 코드) - javac (자바 컴파일러) - Person.class (클래스 파일 생성) - java (자바 인터프리터) - 실행결과
javac : 자바 컴파일러 이름
java : 자바 인터프리터 이름

 

자바의 가장 큰 장점은 이식성이 아주 높다는 것이다.


모든 운영체제에서 실행 가능
-자바로 작성된 프로그램은 모든 운영체제에서 실행 가능. 따라서 윈도우에서 개발된 프로그램을 수정하지 않고 바로 리눅스에서도 실행할 수 있다는 장점

객체 지향 프로그래밍
-객체(부품)를 만들고, 이 객체들을 서로 연결해서 더 큰 프로그램을 완성하는 기법을 객체 지향 프로그램이라고 한다. 자바는 객체 지향 프로그래밍을 위한 최적의 언어

메모리 자동 정리
-자바는 메모리(RAM)를 자동 관리하므로, 개발자는 메모리를 관리하는 수고를 덜고 핵심 기능인 코드 작성에 집중할 수 있다. (가비지 컬렉터)

무료 라이브러리 풍부
-무료로 다운로드해서 사용할 수 있는 오픈 소스 라이브러리가 풍부하기 때문에 프로그램 개발 기간을 단축한다.

자바의 특징
-자바는 컴파일 과정을 거쳐 컴파일된 'class'가 확장자로 붙는 '바이트(byte code)'가 나옴
-JVM(Java Virtual Machine)이 바이트 코드를 수행하는데 이 과정이 인터프리터 과정
-플랫폼에 독립적인 이러한 특징이 자바의 호환성을 높임

명령 프롬포트
cmd (command의 약자)

객체 지향 언어
-자바는 클래스(class)라는 도구를 이용해서 객체지향 개념을 구현. (class 분류하다, 구성하다 [집을 짓는다고 가정하면 그때 필요한 설계도])
-객체(object)는 데이터와 그 데이터를 다루는 코드들로 구성. 네 가지 중요 개념을 가짐

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

2) polymorphism (다형성) :
다형성은 하나의 인터페이스에 여러 실제적인 구현을 담을 수 있는 것 (one interface, multiple methods)

3) inheritance (상속) :
자바의 클래스들은 계층 구조를 갖고 모든 객체가 자기의 상위 클래스 코드를 사용할 수 있도록 함

4) abstration (추상화) :
실생활에 존재하는 객체들을 프로그램 코드로 표현하기 위해서 객체들의 공통된 특성들을 파악하고 일반화된 코드로 나타낸 것

class 이름은 꼭 대문자로 시작하고 숫자로 시작할 수 없다. 
두가지의 단어를 이어서 정할때 새로운 단어가 시작될때 대문자로 작성해야한다. ex)HelloWorld

기계어 : 컴퓨터 (운영체제)가 이해하고 실행할 수 있는 0과 1로 이루어진 코드를 말한다.
프로그래밍 언어 : 사람이 기계어를 이해하는 것은 매우 어렵기 때문에 사람의 언어와 기계의 다리 역할을 말한다. 종류로는 C, C++, java, python 등이 있다.
소스 파일 : 프로그래밍 언어로 작성된 파일을 말한다. 
컴파일 : 소스 파일을 기계어로 번역하는 것을 말한다. 이 역할을 담당하는 소프트웨어를 컴파일러라고 한다.
JDK : 자바 개발 도구 java Development Kit의 줄임말로, 자바로 프로그램을 개발할 수 있는 실행 환경(JVM)과 개발 도구(컴파일러) 등을 제공한다.
환경 변수 : 운영체제가 실행하는 데 필요한 정보를 제공해주는 변수를 말한다. JDK를 설치한 후 명령 라인 (명령 프롬프트, 터미널)에서 컴파일러(javac)와 실행(java) 명령어를 사용하려면 JAVA_HOME 환경 변수를 등록하고 Path 환경 변수를 수정하는 것이 좋다.

Java SE 11. 0. 11 (LTS)는 Java SE 주 버전. 개선 버전. 업데이트 버전 (장기 지원 서비스 버전)의 의미이다.

JDK 설치 폴더 안의 bin 폴더를 Path 환경 변수에 등록하는 이유는 다른 경로에서 bin 폴더 안에 있는 명령어를 사용할 수 있도록 하기 위해서이다.

이클립스 : 무료로 사용할 수 있는 오픈 소스 통합 개발 환경 (IDE : Integrated Development Environment)이다. IDE란 프로젝트 생성, 자동 코드 완성, 디버깅 등과 같이 개발에 필요한 여러 가지 기능을 통합적으로 제공해주는 툴을 말한다.
워크스페이스 : 이클립스 실행과 관련된 메타 데이터 (metadata)와 프로젝트 폴더가 저장되는 폴더를 말한다.
뷰 : 이클립스 내부에서 사용되는 작은 창을 말한다.
퍼스펙티브 : 프로젝트를 개발할 때 유용하게 사용할 수 있는 뷰 (view)들을 미리 묶어 이름을 붙여 놓은 것을 말한다.


나의 첫 에러는 똥멍청이 스펠링 오류,,, printon이 웬말이냐,,, println이다. 똥멍청아,,,,,,

'Java > information' 카테고리의 다른 글

[자바/JAVA] 반복문  (0) 2023.04.06
[자바/JAVA] 조건문  (0) 2023.04.04
[자바/JAVA] 형변환과 시스템 입출력  (0) 2023.03.31
[자바/JAVA] 상수와 여러 연산자들  (0) 2023.03.29
[자바/JAVA] 자바의 기본 자료형  (0) 2023.03.27