JAVA의 특징
1. 플랫폼의 독립성 : window, mac,linux등 운영체제를 가리지 않고 실행가능
2. 객체지향
3. 거대한 생태계
JDK
JDK는 자바 프로그램을 개발할 때 필요한 개발 도구 모음
구성으론는 Javac,JVM이 대표적으로 있다.
Javac : 자바 컴파일러(java파일을 바이트코드(.class)로 변환)
JVM : 자바 가상 머신(바이트코드를 해석하고 자바 프로그램을 실행)
객체지향
- 자바의 세계는 모두 객체(클래스)로 구성
- 코드를 작성할 때 서로 관련있는 기능을 묶어 하나의 클래서로 관리
| 개념 | 비유 | 설명 |
| 클래스 | 설계도 | 객체를 만들기 위한 정의 |
| 객체 | 설계도를 기반으로 만들어진 존재 | 클래스에서 만들어진 존재 |
거대한 생태계
자바는 다양한 오픈소스 라이브러리, 프레임워크등을 가지고 있으며 학습 자료를 쉽게 주변에서 찾을 수 있다.
자바 이름 규칙 종류
카멜케이스(camelCase)
낙타 모양처럼 대문자가 혹처럼 튀어나오는 규칙(firstName,secondName)
스네이크케이스(snake_case)
뱀 모양처럼 언더스코어가 이어지는 규칙(first_name,second_name)
변수(Variable)
변수란 데이터를 컴퓨터에 저장하기 위한 공간
변수의 구조
[자료형][변수이름][세미콜론]
int a;
변수이름 규칙
카멜케이스를 권장하고 명사 형태로 사용, 특수 문자 사용하지 않기
변수 활용
1. 변수 선언
int a;
int b;
2. 변수에 값 할당
// a 는 변수이름(Variable)
// 1 은 리터럴(literal)
a = 1;
3. 선언과 동시에 값 할당
int c = 3;
4.기존 변수에 데이터 재할당
c = 4; //(1)
c = 5; //(2)
c = 6; //(3)
5.변수에 변수를 할당
int d = 1;
int e = d;
d = 10;
System.out.println("e = " + e); // 정답 1
자료형 메모리를 사용하는 단위
| 자료형 | 종류 | 범위 | 바이트 | 비트 |
| boolean | 논리형 | true/false | 1 | 8 |
| char | 문자형 | 0 ~ 65535 유니코드 값 | 2 | 16 |
| byte | 정수형 | -128 ~ 127 | 1 | 8 |
| short | 정수형 | -32,768 ~ 32,767 | 2 | 16 |
| int | 정수형 | 4 | 32 | |
| long | 정수형 | -9,233,372,036,854,775,808 ~ 9,233,372,036,854,775,807 | 8 | 64 |
| float | 실수형 | 약 소수점 6~7자리까지 | 4 | 32 |
| double | 실수형 | 8 | 64 |
형변환(Casting)
| 형 변환 종류 | 형변환 방식 | 자동 형 변환 여부 | 설명 |
| 다운캐스팅(DownCasting) | 명시적(Explicit) | X | 큰상자 → 작은상자 |
| 업캐스팅(UpCasting) | 묵시적(Implicit) | O | 작은상자 → 큰상자 |
다운캐스팅
- 큰 데이터를 작은 상자에 넣어야하기때문에 강제로 형 변환
- 강제로 형 변환할때는 명시적(int) 으로 변환
- 데이터 손실이 발생
double bigBox = 10.111;
int smallBox = (int) bigBox; // ✅ int <- double 명시적변환
System.out.println(smallBox); // ✅ 출력: 10 !데이터손실발생!
업캐스팅
- 문제가 발생하지 않기 때문에 이 과정은 자동으로 변경
- 데이터 손실이 없다
int smallBox = 10;
double bigBox = smallBox; // ✅ double <- int 자동형 변환
System.out.println(bigBox); // ✅ 출력: 10.0
연산자 종류
| 연산자 종류 | 연산자 | 피연산자 수 | 산출 값 | 설명 |
| 산술 연산 | +,-,*,/,% | 이항 | 숫자 | 사칙연산 및 나머지 계산 |
| 부호 | +,- | 단항 | 숫자 | 음수/양수 부호 |
| 문자열 | + | 이항 | 문자 | 두 문자를 연결 |
| 대입 연산 | =,+=,-=,*=,/=,%=,&=, ^=,|=,<<=,>>=,>>>= |
이항 | 다양 | 우변의 값을 좌변의 변수에 대입 |
| 증감 연산 | ++,-- | 단항 | 숫자 | 1만큼 증가/감소 |
| 비교 연산 | ==,!=,<,>,<=,>= | 이항 | boolean | 값의 비교 |
| 논리 연산 | !,&,|,&&,|| | 이항 단항 | boolean | NOT,AND,OR |
| 비트 | ~,&,|,^ | 단항 이항 | 숫자, boolean | 비트 NOT,AND,OR,XOR연산 |
| 비트 쉬프 | >>,<<,>>> | 이항 | 숫자 | 비트를 좌/우측으로 밀어서 이 |
조건문
조건문 구조
if
if (조건수식) {
명령문; // 실행할까? 말까 ?
}
if-else
if (조건수식) {
명령문; // 참일 때 발동하는 명령문
} else {
명령문; // if 명령문이 거짓일 때 발동하는 명령문
}
else-if
if (조건수식) {
명령문; // 참일 때 발동하는 명령문
} else if {
명령문; // if 명령문이 거짓일 때 발동하는 명령문
} else {
명령문; // else if 명령문이 거짓일 때 발동하는 명령문
}
switch
switch (단일값) {
case 값1:
// 값1일 때 실행할 코드
break;
case 값2:
// 값2일 때 실행할 코드
break;
default:
// 위의 값들과 일치하지 않을 때 실행할 코드
}
반복문
for
for (시작조건; 종결조건; 조건변화수식) {
...
}
while
while (종결조건) {
반복할 명령문;
}
do while
do {
반복할 명령문..
} while (종결 조건)
배열
배열선언
자료형[] 변수이름 = new 자료형[배열의길이]; // 배열선언
배열길이
배열이름.length
2차원 배열
- 첫 번째 인덱스는 행 = 가로 방향을 의미
- 두 번째 인덱스는 열 = 세로 방향을 의미
boolean[][] board = new boolean[2][2]; // 2 x 2 2차원 배열 선언
boolean[][] board = {
{true, false}, // 0행의 0열, 0행의 1열,
{false, true} // 1행의 0열, 1행의 1열
};
서드(method)
- 함수, 기능이라고도 함
- 여러 개의 작은 명령문을 한곳에 모아 사용하는 단위
메서드 구조
public class 클래스이름 {
[반환자료형] [메서드이름](매개변수..) {
작업 명령문들...
}
}
메서드의 흐름
- 메서드(함수, 기능)는 호출부, 선언부로 나누어집니다.
- 호출부 - 메서드를 사용하는 곳
- 선언부 - 메서드가 정의되어 있는 곳
- 호출부 매개변수를 활용해 메서드 연산에 필요한 데이터를 전달할 수 있습니다.
반환 값이 없을 때 void
- 반환 데이터가 없을때는 반환자료형 위치에 void 를 선언해 주면 됩니다.
- void 는 “비어있다” 의미를 가지고 있습니다.
public class Calculator {
// void 로 반환 데이터가 없다는 것을 표시
void a(조건1, 조건2) {
명령문
}
}
반환 값이 있을 때는 return
- return 키워드를 활용해 반환되는 데이터를 표현할 수 있습니다.
- 반환된 데이터는 호출부에서 받아서 활용할 수 있습니다
public class Calculator {
// void 로 반환 데이터가 없다는 것을 표시
void a(조건1, 조건2) {
명령문
retrun result;
}
}
'JAVA' 카테고리의 다른 글
| 자바 기초 문법 다지기 4 (1) | 2025.02.26 |
|---|---|
| 자바 기초 문법 다지기 3 (1) | 2025.02.26 |
| 자바 기초 문법 다지기3 (0) | 2025.02.26 |
| 자바 기초 문법 다지기 2 (1) | 2025.02.25 |
| 조건문 (0) | 2025.02.20 |