Oracle 로 인수된, Sun Micro Systems 소속의 개발자 제임스 고슬링 등의 일부 연구진들은 '그린 프로젝트'라는 이름으로 '오크(Oak)'라는 언어를 개발하고 있다.
오크는 오디오, TV, 세탁기 등 Embeded System의 각각의 가전제품을 제어하는 통합된 언어로 개발 중이었지만,
실패한다. ( C, C++ 로 개발하는 것이 낫다. )
웹 (www)이 급속도로 발전하게 되고, 오크의 명칭을 JAVA로 바꾼 뒤,
서로 다른 컴퓨터 (OS:Operating System운영체제)사이에서 호환성과 이숙률을 높인 언어로 발전시켰다.
JVM(Java Virtual Machine)을 개발하기에 이르렀다.
- 자바로 프로그램을 생성하면, 어느 OS(Windows Linux Macintosh)에서도 실행된다.
프로그래밍 언어 : 사람이 컴퓨터와 의사소통을 하기 위한 수단.
컴퓨터는 하이드웨어와 소프트웨어(시스템 소프트웨어와 응용 소프트웨어가 존재)로 나뉨
1972: C(함수중심), 1983: C++(객체중심), 1991: Python, 1995: JAVA, 2002: C#(MS)
Compiler : 작성된 코드를 컴퓨터가 이해할 수 있게 해줌
Java SDK(software development kit) 자바 개발도구에 Java SE(표준), Java EE(서버용)가 있다.
Java SE 18이 최신이지만 현장에서는 Java SE 7~8을 사용한다.
Java는 JDK(Java development kit) 가바 개발 도구, JRE(Java runtime environment : 자바 실행환경(JDK에 포함)),
그리고 JVM(Java virtual machine 자바 가상머신(운영체제 독립적으로 실행))으로 이루어 진다.
자바는 OOP(Object Oriented Programming)인데, 객체지향적인 상속, 캡슐화, 다형성이 잘 지원된다.
Java API는 운영체제 독립적이어서 Windows 머신에서 생성한 클래스를,
Linux 머신에서도 돌릴 수 있게 JVM으로 관리된다.
Garbage Collection을 통해 개발자가 관리하지 않아도 자바 스스로 사용하지 않는 메모리를 회수해서 비워준다.
동적으로 작동하므로 적절한 시기에 라이브러리를 동적으로 로딩해서 처리하게 한다.
네트워크와 웹에서의 작동을 위해 Thread(병렬처리)라이브러리를 가지고 있다. 분산 처리 네트워크에 강하다.
자바로 할 수 있는 것
CLI (Command Line interface/CUI : Command User Interface) Application
GUI (Graphic User Interface) Application
CGI (Common Gateway Interface) 웹 브라우저의 요구를 받아 서버가 실행하는 프로그램 인터페이스이다.
스크립트 언어 Perl로 작성되는데, CGI 프로그램은 HTML 문을 생성하고, 웹 서버는 그것을 받아 브라우저에 넘긴다.
웹 페이지의 접근 횟수 등을 볼 때마다 다른 정보를 웹 페이지에 실을 수 있도록 동적 웹 페이지를 생성한다.
CSS (Cascading Style Sheets) HTML이나 XML(XML의 방언인 SVG, XHTML 포함)로 작성된 문서의 표시 방법을
기술하기 위한 스타일 언어이다. CSS는 HTML 요소가 화면, 동영상, 음성이나 다른 매체 상에
어떻게 렌더링(Rendering : 조합)되어야 하는지 지정하는 기법이다.
Java Applet (Web 브라우저에서 작동하는 프로그램으로 HTML 안에서 애플릿을 지정하면,
Web 서버로부터 자동으로 다운로드되어 클라이언트의 Web 브라우저에서 동작된다.)
Java Servlet (Web 서버 상에서 동작하는 프로그램으로 서버에서 실행되고,
실행 결과를 Web 페이지로 클라이언트에게 보내는데, 서버에서 동작하는 CGI보다 효율이 좋다.)
JSP (Java Server Page : HTML 문서와 Java 프로그램을 조합해서 동적인 Web페이지를 간단하게 만들 수 있다.
JSP는 서버에서 실행되고, 결과를 Client에게 보내는데 HTML 문서 속 Java 코드를 삽입하는 형태로 작성된다.)
Java Beans (Java로 작성한 프로그램을 부품(Component)으로 취급하여 조합해서 Application을 간단히 만들 수 있다.)
Java VM (Virtual Machine)은 Java로 작성된 프로그램을 실행하기 위한 환경이다.
Java 프로그램의 실행 파일은 플랫폼에 의존하지 않는 바이트 코드로 만들어져 있다.
Java VM은 바이트 코드를 실행하는 머신의 기종에 따라 변환되어 실행된다.
- 이러한 기능은 Java VM 만 있으면 기종이나, OS 무관하게 Java 프로그램을 실행하게 해주므로,
컴퓨터 뿐 아니라 Java VM이 탑재된 가전제품이나 게임기 등에서도 Java 프로그램이 실행 될 수 있다.
메써드(Method)는 객체(Object)의 기능을 표현하는 방법으로 C언어의 함수와 역할, 정의 방법은 유사하지만
C에서처럼 독립적으로 호출 될 수는 없고, 반드시 객체와 같이(study.score()) 사용되어야 한다.
클래스(Class)는 객체의 구조, 종류, 동작 등을 나타내고 객체를 생성하게 하는 일종의 틀이다.
변수(Variable)란 데이터를 넣어두는 상자와 같은 것으로 메모리 공간에 자리한다.
메모장으로 class 작성 후,
cmd 에서 cd jwork 접속, C:jwork 파일. (cd C:\Jwork)
dir 로 java file 확인
type Test.java 로 java file을 연다.
javac Test.java 하면, Test.java 파일이 컴파일 된다.
그리고 dir로 컴파일 된 파일 확인. (Test.class file)
java Test 치면 내용 출력
Oracle 내에 Java, MongoDB 등 여러 정보 확인 가능
https://docs.oracle.com/en/
데이터 타입
byte (1Byte : 8bits), short (2Byte), float (4Byte), long (8Byte), int(4Byte), double (8Byte), char(2Byte) String
정수 byte short int long
실수 float double
문자 char (문자) String (문자열)