백엔드 개발자 공부/Java

[Java] Intro

gotoguy 2022. 8. 30. 21:49
728x90

자바의 특징

    1. 운영체제에 독립적

        - JRE(JVM: 자바 가상머신+표준 클래스 라이브러리)가 설치되어 있는 모든 운영체제에서 실행 가능

    2. 객체 지향 언어(OOP, Object Oriented Programming)

        - 모든 기능을 객체(부품)로 만들고 조립하여 프로그램을 실행하기 때문에 유지보수가 쉽고 확장성이 높음

    3. 함수형 프로그래밍 지원

        - 컬렉션의 요소를 필터링, 매핑, 집계처리하기 쉬워지고 코드가 간결해짐

    4. 자동 메모리 관리

        - 개발자가 직접 메모리를 관리해야 하는 C, C++와 달리 가비지 컬렉터(Garbage Collector)를 통해 자동으로 사용하지 않는 메모리 수거

 

JVM과 JDK

https://www.geeksforgeeks.org/differences-jdk-jre-jvm/

    - JVM(Java Virtual Machine)

        컴파일된 자바 언어인 바이트코드를 운영체제 맞는 기계어로 변환해줌

        자바 코드로 작성한 프로그램을 해석해 실행시키는 프로그램

        JVM이 있기 때문에 자바가 운영체제에 독립적일 수 있으며, 반면 JVM을 거치기 때문에 C나 C++에 비해 속도는 느림

    - JRE(Java Runtime Environment) : JVM + 표준 클래스 라이브러리

    - JDK(Java Development Kit) : JRE + 개발에 필요한 도구

    - 자바 프로그램 실행은 JRE만 설치해도 가능하지만, 개발을 위해선 JDK 설치 필요


클래스 정의

public class Main {
	...
}

 

    - 접근 허용 범위가 public인 Main이라는 이름의 클래스 정의

    - 클래스 안에서 코드 작성 가능

    - 접근 제어자 public과 클래스는 추후 학습

 

메서드

    - 어떠한 기능*을 수행하기 위한 일련의 코드들의 집합체

        어떠한 기능? → 데이터를 입력받아 해당 데이터에 일련의 처리를 가함으로써 만들어낸 결과값을 반환하는 것

    - 클래스 내에 포함되어 있는 함수

    - 자바는 객체지향 언어이며, 모든 코드를 클래스 내에 작성하기 때문에 함수보다는 메서드라는 용어 사용

 

메서드 정의

    - 메서드가 어떻게 동작해야 하는지 기술

A main(B C) {
	D
}

반환타입 메서드명(매개변수타입 매개변수명) {
	메서드_바디
}

        A(반환 타입) - 메서드가 반환할 반환값의 종류 및 유형(데이터 타입)

        B C(매개변수타입 매개변수명) - 메서드 외부에서 내부로 전달한 값을 할당받아 저장함으로써, 메서드 내부에서 사용 가능한 변수

        D(메서드 바디) - 구체적으로 메서드가 수행하는 기능에 대한 코드. return 키워드를 이용해 값 반환

 

main 메서드 정의

public static void main(String[] args) {
	...
{

    - main 메서드는 자바의 진입점 함수(자바 코드 소스 파일을 실행하면 가장 먼저 실행되는 메서드)

    - 자바 소스 코드 작성 시 반드시 main 메서드가 있어야 함


"Hello, World!" 출력 메서드 정의

public static void main(String[] args) {
	System.out.print("Hello, World!");
}

메서드 호출(실행)

	메서드명(매개변수값1, 매개변수값2);

    - 메서드 이름에 호출 연산자()를 붙여 호출

    - 메서드 정의 시 입력한 매개변수 타입과 개수에 맞게 호출 연산자 안에 값 입력


의사 코드(슈도 코드, psuedo code)

    - 프로그래밍 언어로 코드를 작성하기 전에, 무엇을 어떤 과정을 통해 만들지 사람의 언어로 먼저 작성한 코드

    - 애플리케이션 실행을 위한 코드 작성 시, 세세한 기능까지 계획한 후 정확히 제작해야 하기 때문에 작성

    - 처음 학습할 때에는 작은 규모의 계획에도 의사코드를 작성하는 습관을 기르는 것이 중요

728x90

'백엔드 개발자 공부 > Java' 카테고리의 다른 글

[Java] 제어문 (1) - 조건문  (0) 2022.08.31
[Java] 연산자 & 콘솔입출력  (0) 2022.08.30
[Java] 문자열  (0) 2022.08.30
[Java] 타입  (0) 2022.08.30
[Java] 변수  (0) 2022.08.30