JAVA

자바 기초 문법 다지기

도원좀비 2025. 2. 24. 21:19

JAVA의 특징

1. 플랫폼의 독립성 : window, mac,linux등 운영체제를 가리지 않고 실행가능

2. 객체지향

3. 거대한 생태계

 

JDK

JDK는 자바 프로그램을 개발할 때 필요한 개발 도구 모음

구성으론는 Javac,JVM이 대표적으로 있다.

Javac : 자바 컴파일러(java파일을 바이트코드(.class)로 변환)

JVM : 자바 가상 머신(바이트코드를 해석하고 자바 프로그램을 실행)

 

 

객체지향

  1. 자바의 세계는 모두 객체(클래스)로 구성
  2. 코드를 작성할 때 서로 관련있는 기능을 묶어 하나의 클래서로 관리
개념 비유 설명
클래스 설계도 객체를 만들기 위한 정의
객체 설계도를 기반으로 만들어진 존재 클래스에서 만들어진 존재

 

거대한 생태계

자바는 다양한 오픈소스 라이브러리, 프레임워크등을 가지고 있으며 학습 자료를 쉽게 주변에서 찾을 수 있다.

 

자바 이름 규칙 종류

카멜케이스(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