Java

자바 입문 전 알아두면 좋은 것 2

yerinpark 2023. 12. 14. 10:58

함수 vs. 메서드

함수는 어디에 속해있지 않고 단독 모듈이기 때문에 함수를 그냥 호출하여 사용이 가능하다.

메서드는 함수의 일종이긴 하지만 클래스 안에 속해 있고 클래스의 멤버 변수들을 이용해서 구현된 것을 메서드라고 한다.

 

변수는 데이터,

함수 또는 메서드는 기능,

클래스는 변수와 기능을 보유한 구조로 생각할 수 있다.

 

객체를 생성하여 class 기반으로 실제 하드웨어 메모리에 생성하고 데이터를 활용할 수 있다. 객체 생성 시 반드시 생성자라는 요소가 필요한데, 개발자가 코딩하지 않아도 class 내부에 자동으로 생성된다. 개발자들이 개발하는 모든 class는 자바 데이터 타입으로 사용 가능하다. 타입은 객체 타입 또는 참조 타입이다. 생성된 객체를 관리하는 변수는 참조(reference) 변수라고 한다.

 

 

 

Java vs. JavaScript와 Python

Java JavaScript와 Python
클래스 내부에만 기능 구현 가능 class와 무관하게 기능만 개별 개발이 가능
함수를 사용하지 않는다. 함수라는 표현을 사용한다.
  class 단위 내부에 기능 개발 가능(메서드라는 표현을 사용)

 

 

 

 

JavaEE Architecture

Client Tier

  • Client Machine: HTML/CSS/JavaScript 사용

Web Tier & Business Tier

  • Java EE Server: Java → Web → Spring framework → Spring Boot → MSA

EIS Tier

  • Database Server: MySQL, Oracle, MariaDB, NoSQL 등

 

 

 

JDK 구성

JRE(Java Runtime Environment)

JVM + API(Application Programming Interface, library)

JDK(Java Development Kit)

  • Compiler를 비롯한 개발에 필요한 여러 도구 + JRE(실행 도구)
  • 컴파일러 : Java source를 byte code로 변환(단, 문법적 오류가 없는 경우)
  • 인터프리터 : byte code인 class확장자 파일로 실행

 

JVM의 메모리 구조

Method Area(Class Area)

  1. 클래스 내용(Byte code)가 적재(로딩)되는 영역
  2. static 변수 및 상수가 적재되는 영역

Stack Area

  1. 메서드 실행 공간(Method Frame)이 적재되는 영역
  2. 로컬 변수(temporary, automatic, stack)들 저장 공간

Heap Area

  1. 생성된 객체(Instance)가 적재되는 영역(Garbage Collector의 활동 영역)

 

Java 변수 명명 규칙

Java에서는 camelCase를 사용한다. 상수를 선언할 때는 UPPER_SNAKE_CASE를 사용한다.

 

 

 

변수 선언 문법

  1. accessModifier 타입 변수명;
    1. public String name;
    2. private int age;

 

데이터 타입

  1. class는 데이터 타입
  2. class는 (구)sun에서 API로 다수 제공
  3. 사용자(자바 개발자)가 직접 class 개발 가능
  4. 결론 : class 기반의 데이터 타입인 참조 타입의 개수는 제한이 없다.
  5. Person.java라는 클래스로 Person 타입의 데이터 사용 가능.

 

 

 

제어자(modifier)

Access Modifier

  • 접근 제어자
  • class, 변수, 생성자, 메서드
    • 접근 범위 제한
  • 필수 및 중복 선언 불가
  • 종류
    • public/protected/default/private

User Modifier

  • 기타 제어자
  • class, 변수, 메서드, static 블록에 사용
  • 필요에 따라 사용되는 옵션
  • 중복 선언 가능

 

'Java' 카테고리의 다른 글

Spring Boot H2 Database 사용하기  (0) 2023.12.27
객체지향 문제 만들고 풀어보기  (0) 2023.11.22
Eclipse 개발 환경 세팅  (1) 2023.11.21
Java 입문 전 알아두면 좋은 것  (0) 2023.11.14
[Spring Boot] Lombok  (0) 2023.10.24