Java
Java 1장(with 이것이 자바다)
H.S-Backend
2024. 4. 9. 15:17
반응형
프로그래밍 언어란
컴퓨터가 이해할 수 있는 언어 (Machine Language)
기계어는 0과 1로 이루어진 이진 코드
프로그래밍 언어는 고급언어와 저급 언어로 구분된다.
고급언어
- 컴퓨터와 대화 할수 있도록 만든 언어 중 사람이 이해할 수 있는 언어.
저급언어
- 기계어에 가까운 언어 대표적으로 어셈블리어
대표적인 프로그래밍 언어인 C, C++, Java는 모두 고급언어다.
자바란?
이식성이 높은 언어이다.
이식성
- 서로 다른 실행 환경을 가진 시스템 간 프로그램을 옮겨 실행 할 수 있는것.
- 예를 들어 MS 윈도우 에서 실행하는 프로그램 -> 리눅스 or 유닉스에서 실행 = 되면 이식성이 높지만 안되면 낮다.
- 자바 실행 환경(JRE : Java Runtime Environment) 이 설치 되어 있는 모든 운영체제에서 실행이 가능하다.
객체지향 언어이다.
- 프로그램 개발 기법으로 부품에 해당하는 객체를 만든다 -> 조립 및 연결한다 -> 전체 프로그램을 완성한다.
- 이것을 객체 지향 프로그래밍(OOP : Object Oriented Programming) 이라 한다.
- 자바는 100% 객체 지향 언어이다.
함수적 스타일 코딩을 지원한다.(람다식 : Lambda Expressinons)
메모리를 자동으로 관리한다.
- 객체를 생성할 시 자동적으로 메모리 영역을 찾아서 할당하고 사용이 완료되면 쓰레기 수집기(Garbage Collector)를 실행시켜 자동적으로 사용하지 않는 객체를 제거시켜준다.
다양한 애플리케이션을 개발할 수 있다.
- 윈도우, 리눅스 유닉스, 맥 등 다양한 운영체제(OS:Operating System)에서 실행되는 프로그램을 개발할 수 있다.
멀티 스레드(Multi-Thread)를 쉽게 구현할 수 있다.
- 하나의 프로그램이 동시에 여러가지 작업을 처리해야 할 경우와 대용량 작업을 빨리 처리하기 위해 서브 작업으로 분리해서 병렬처리하는 프로그래밍.
동적 로딩(Dynamic Loading)을 지원한다.
- 자바 어플리케이션은 여러개의 객체가 연결되어 실행될 때 모든 객체가 실행되지 않고 객체가 필요한 시점에 클래스를 로딩해서 실행한다.
- 개발 완료 후 유지보수가 발생하더라도 해당 클래스만 수정하면 되기에 전체 어플리케이션을 다시 컴파일할 필요가 없다.
막강한 오픈소스 라이브러리가 풍부하다.
- 자바는 오픈소스 (Open Source) 언어이기에 자바 프로그램에서 사용하는 라이브러리 또한 오픈소스가 넘쳐난다.
Java SE(Standard Edition) - 기본 에디션
- Java SE는 자바 프로그램들이 공통적으로 사용하는 자바 가상기계(JVM: Java Virtual Machin)를 비롯해서 개발에 필수적인 도구와 라이브러리 API를 정의한다.
Java EE(Enterprise Edition) - 서버용 애플리케이션 개발 에디션
- Java EE는 분산 환경(네트워크, 인터넷)에서 서버용 애플리케이션을 개발하기 위한 도구 및 라이브러리 API를 정의한다
자바 가상 기계(JVM)
- 운영체제는 자바 프로그램을 바로 실행할 수 없다.
- 자바 프로그램은 완전한 기계어가 아닌 중간 단계의 바이트 코드이다.
- 이를 해석하고 실행할 수 있는 가상의 운영체제가 JVM(Java Virtual Machine)이다.
특징
- 실제 운영체제를 대신해서 자바 프로그램을 실행하는 가상의 운영체제 역할을 한다.
- 바이트 코드는 모든 JVM에서 동일한 실행결과를 보장한다.
- JVM은 운영체제에 종속적이다.
자바실행 프로그램은 반드시 클래스(class) 블록 main() 메소드(method) 블록으로 구성되어야 한다.
클래스 : 필드 또는 메소드를 포함하는 블록
메소드 : 어떤 일을 처리하는 실행문들을 모아 놓은 블록
클래스 특징
- 클래스의 이름은 개발자가 마음대로 정할 수 있다.
- 주의할 점은 소스 파일명과 대소문자가 일치해야한다.
- 숫자로 시작할 수 없고 공백을 포함해서도 안된다.
Public class Hello{
} // Hello가 클래스 이름
메소드 특징
- 메소드 이름도 개발자가 마음대로 정할 수 있지만 main() 메소드 만큼은 다른 이름으로 바꾸면 안된다.
- java.exe로 JVM을 구동시키면 main() 메소드를 찾아서 실행시키기 때문이다.
- main()메소드 프로그램 실행 진입점을 "entry point"라 한다.
- main()메소드가 없거나 잘못 작성하면 클래스를 실행 할 수없다.
public static void main (String[] args){
System.out.println("Hello, welcome to the java world!")'
} //main이 메소드
실행문 끝에는 반드시 세미콜론 ; <- 을 붙여야한다.
그렇지 않으면 컴파일 에러가 발생한다.
주석이란
프로그램 실행과는 상관없이 코드에 설명을 붙인 것을 말한다.
특징
- 복잡한 코드일수록 주석을 해놓을 경우 전체 코드를 이해하기 쉽고 수정이 용이하다.
- 문자열(" ") 내부에는 올 수 없다.(데이터로 인식된다)
주석 기호 | 설명 |
// | //부터 라인 끝까지 주석을 처리한다.(행 주석) |
/* ~ */ | /*와 */사이에 있는 모든 범위를 주석으로 처리한다.(범위 주석) |
/*
작성자 : 김형석
작성일 : 2024, 04 ,09
*/
public class Hello{
//프로글매 실행 진입점
public static void main(String[] args){
//콘솔에 출력하는 실행문
System.out.println("Hello, welcome to the java world!")'
} //end of main
} //end of class
실행문과 세미콜론(;)
- 실행문은 변수 선언, 값 저장, 메소드 호출에 해당하는 코드
int x = 1; //변수 x를 선언하고 1을 저장
int y = 2; //변수 x를 선언하고 2를 저장
int result = x + y; //변수 result를 선언하고 변수 x와 y를 더한 값을 저장
System.out.println(result); //콘솔에 출력하는 메소드 호출
int x= 1; int y = 2;
int result =
x + y;
System.out.println(result);
둘다 같은 값 3 이 나온다.
public class RunStartemetExample{
public static void main(String[] args){
int x = 1; // 변수 x를 선언하고 1을저장
int y = 2; // 변수 y를 선언하고 2를 저장
int result = x + y; //변수 result를 선언하고 x와 y를 더한 값을 저장
System.out.println(x + "+" + y+ "=" + result); //콘솔에 출력하는 메소드 호출
}
} //1+2 = 3
반응형