Java
[Java] 자바 기본 문법
프론트엔드 개발자로 일하면서 백엔드도 다뤄 보기 위해 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 |
|---|---|---|---|---|
| 논리형 | boolean | |||
| 문자형 | char | |||
| 정수형 | byte | short | int | long |
| 실수형 | float | double |
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. 접근 한정자
| 한정자 | 클래스 내부 | 동일 패키지 | 하위 클래스 | 그 외의 영역 |
|---|---|---|---|---|
| public | O | O | O | O |
| protected | O | O | O | X |
| default | O | O | X | X |
| private | O | X | X | X |
3-2. 일반 한정자
-
static
- 클래스 메서드와 클래스 변수를 선언하는 데 사용
- static은 자바의 정적 영역에 할당되는 리소스를 선언하는 데 사용
- 동일 가상머신상에서 실행 중인 모든 클래스에서 공유
- 인스턴스를 생성하지 않고도 클래스의 메서드나 멤버에 접근할 수 있음
-
final
- 더 이상 변경할 수 없도록 선언하는 한정자
- 클래스에 사용할 때는 서브 클래스를 만들 수 없음
- 메서드에 사용할 때는 오버라이딩을 할 수 없음
- 변수에 사용하면 변수에 저장된 값이 변할 수 없으므로 변수가 아닌 상수의 역할을 함
-
abstract
- 추상 클래스를 선언하는 데 사용하는 한정자
-
synchronized/volatile
- 스레드 프로그래밍에서 여러 스레드가 동시에 자원에 접근할 때 발생하는 데이터 동기화를 처리함
4. 자바 기본 라이브러리
자바 API API는 Application Programming Interface의 약어로, 애플리케이션 개발에 사용할 수 있는 라이브러리 규격을 말합니다.
| 기능 | 설명 | 패키지/클래스 |
|---|---|---|
| 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/AWT | GUI 구현 관련 라이브러리 | java.swing, java.awt, javax.swing |
| JDBC | 데이터베이스 프로그래밍 관련 라이브러리 | java.sql |
댓글 0