☕️ Java
What's a Java?
Java는 높은 수준의 클래스 기반 객체 지향 프로그래밍 언어이다.
Sun Microsystems(현재 Oracle Corporation의 일부)의 James Gosling이 이를 설계했으며 1995년에 출시되었다. 이 언어는 "WORA(Write Once, Run Anywhere)" 철학을 바탕으로 개발되었다. 이 원칙은 Java의 핵심 기능인 플랫폼 독립성을 강조하여 동일한 Java 프로그램을 수정 없이 여러 플랫폼에서 실행할 수 있도록 한다.
Java = JRE(Java Runtime Environment, 실행환경) + JDK(Java Development Kit, 개발도구) + API(라이브러리)
- Java IDE : Eclipse, IntelliJ ...
- Framework : Spring ...
- Android, Hadoop(Big-Data), Minecraft(Game) ...
Java Features
- 독립적인 플랫폼
변경 없이 동일한 Java 프로그램을 여러 플랫폼에서 실행할 수 있음
- 객체지향 언어
- 자동 메모리 관리 : Garbage Collectio
런타임 중에 사용도지 않는 개체의 메모리를 자동으로 정리함
- Multi Thread
하나의 프로세스 내에서 둘 이상의 스레드가 동시에 작업을 수행하는 것을 의미
- 다양한 프로그램밍 패러다임을 지원
일반 프로그래밍, 동시 프로그래밍, 함수형 프로그래밍 등이 있음
JVM(Java Virtual Machine)
Java Version
- SE : Standard Edition
- ME : Micro Edition
제한된 자원을 가진 모바일, 소형 기기 등을 지원하기 위해 만들어진 버전이며, 임베디드 시스템에서 자바로 프로그램을 개발할 때 이용함
- EE : Enterprise Edition
Enterprise 환경을 위한 도구로 EJB, JSP, Servlet, JNDI 등을 지원하며 대기업에서 사용하기 위한 버전임
Install Java (MacOS)
SDKMAN을 이용해서 openJDK설치
*SDKMAN : Java 버전 관리, SDK(Software Development Kits)
$ curl -s "https://get.sdkman.io" | bash
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
$ sdk version
$ sdk list java
$ sdk install java 8.0.292-zulu
$ sdk use java 8.0.292-zulu
$ sdk current java
$ echo $JAVA_HOME
- JAVA_HOME으로 지정된 경로 복사
- Eclipse App → 패키지 내용 보기
- 'eclipse.ini' file → 아래 텍스트 추가
...
--launcher.appendVmargs
-vm
/././.sdkman/candidates/java/8.0.292-zulu/bin
-vmargs
...
Java API
Download Java API Documentation
.txt로 Java Program 만들기
- javac.exe: Java Compiler, 사람이 작성한 문장을 기계어로 번역
- java.exe: Java Interpreter, 자바 프로그램(class file) 실행
- class: Java program 단위
class 클래스 이름 {
}
- main(): Java program의 시작점
public static void main(String[] args) {
}
Eclipse
주로 Java 개발을 위해 설계되어 널리 사용되는 통합 개발 환경(IDE)이다.
- Source file을 저장할 때 compiler가 진행 됨
- Build: Source file(.java)로부터 프로그램을 만들어 내는 모든 과정
- Build All : workspace의 모든 프로젝트 빌드
- Build Project : 변경된 소스 파일만 compiling
- Build Automatically : 소스 파일 변경 후, 저장할 때 마다 자동 compiling
- Clean : 이전 빌드의 모든 정보를 삭제, 모든 소스 파일 compiling
Shortcut Key
- command + shift + L : 모든 단축키 목록 열기
- command + ➕ / ➖ : 화면 확대/축소
- command + D : 한 줄 삭제
- command + option + ⬇️ : row 단위 복사
- option + shift + A : 여러 column 편집
- option + ⬇️ / ⬆️ : row 단위 이동
- command + i : 들여쓰기 자동 수정
- command + / : 주석
- alt + space : 자동 완성 ('Content Assist'의 [Binding] 변경)
중복되는 단축키 : [Eclipse] → [Preferences] → [General] → [Keys] → 목록에서 해당 항목의 [Binding] 변경
참고문헌,
https://hyperskill.org/learn/step/38627,
https://github.com/castello/javajungsuk_basic,