[Java] 자바 기본 문법

0 0 0

프론트엔드 개발자로 일하면서 백엔드도 다뤄 보기 위해 Java 기본 문법을 정리합니다.


1. Java란?

Java 프로그램은 기본적으로 클래스 구조에서 시작합니다. 클래스는 객체 지향에서 객체를 정의하는 틀이며, 많은 객체 지향 언어의 기본 구조입니다.

Class 구조 형

public class _01_HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}


2. 자료형 (data type)

Java의 자료형 변수의 특성을 결정하는 키워드를 자료형이라고 합니다.

  • 논리형 boolean
  • 문자형 char
  • 정수형 byte, short, int, long
  • 실수형 float, double
기본형 자료형(타입/크기 1byte,2byte,4byte,8byte)로 구성
타입/ 크기1byte2byte4byte8byte
논리형boolean
문자형char
정수형byteshortintlong
실수형floatdouble

2-1. 자료형 선언 방법

JavaScript와 비교하면 타입을 변수 이름 앞에 쓰고, JavaScript보다 타입을 더 세밀하게 정할 수 있습니다.

  • boolean
    • 1바이트, true 또는 false
  • char
    • 문자를 저장하거나 출력하는 용도로 사용
  • byte
    • 작은 범위의 값을 저장할 때 유용
  • short
    • 메모리를 적게 차지하지만 잘 사용하지 않음
  • int
    • 정수 타입의 연산에 기본이 되는 자료형
  • long
    • 정수 표현 범위가 큰 데이터를 저장하기에 유용
  • float
    • 표현 범위가 작고, 값을 지정할 때 숫자 뒤에 f나 F를 붙임
  • double
    • 실수형에서 사용하는 기본 데이터형

2-2. String

String은 문자열을 다루는 클래스로, Java에서 문자열은 기본 자료형이 아니라 클래스로 만든 객체 타입입니다.



3. 한정자와 접근 범위

3-1. 접근 한정자

접근 한정자와 접근 범위 한정자,클래스 내부,동일 패키지,하위 클래스,그 외의 영역 로 구성
한정자클래스 내부동일 패키지하위 클래스그 외의 영역
publicOOOO
protectedOOOX
defaultOOXX
privateOXXX

3-2. 일반 한정자

  • static

    • 클래스 메서드와 클래스 변수를 선언하는 데 사용
    • static은 자바의 정적 영역에 할당되는 리소스를 선언하는 데 사용
    • 동일 가상머신상에서 실행 중인 모든 클래스에서 공유
    • 인스턴스를 생성하지 않고도 클래스의 메서드나 멤버에 접근할 수 있음
  • final

    • 더 이상 변경할 수 없도록 선언하는 한정자
    • 클래스에 사용할 때는 서브 클래스를 만들 수 없음
    • 메서드에 사용할 때는 오버라이딩을 할 수 없음
    • 변수에 사용하면 변수에 저장된 값이 변할 수 없으므로 변수가 아닌 상수의 역할을 함
  • abstract

    • 추상 클래스를 선언하는 데 사용하는 한정자
  • synchronized/volatile

    • 스레드 프로그래밍에서 여러 스레드가 동시에 자원에 접근할 때 발생하는 데이터 동기화를 처리함


4. 자바 기본 라이브러리

자바 API API는 Application Programming Interface의 약어로, 애플리케이션 개발에 사용할 수 있는 라이브러리 규격을 말합니다.

Java 기본 라이브러리의 기능, 설명, 패키지/클래스로 구성
기능설명패키지/클래스
lang and util자바 언어의 주요 구성 요소와 관련된 패키지java.lang, java.util
Math각종 수학 계산과 관련된 클래스 및 유틸리티java.math, java.lang.Math
Collections다양한 자료구조를 동일한 방법으로 처리할 수 있도록 하는 라이브러리java.util
Input/Output키보드, 네트워크, 파일 등 입출력 관련 주요 기능을 제공하는 라이브러리java.io, java.nio, java.net
Date and Time시간 및 날짜 처리 관련 라이브러리java.util, java.text
Networking네트워크 통신 프로그래밍 관련 라이브러리java.net
Swing/AWTGUI 구현 관련 라이브러리java.swing, java.awt, javax.swing
JDBC데이터베이스 프로그래밍 관련 라이브러리java.sql

reference

댓글 0