[25/07/07] JAVA 문법 1주차

김기수·2025년 7월 7일
post-thumbnail

자바의 특징

  • 어느 환경이든 실행될 수 있도록 설계됐다.
    어느 환경이든 실행 가능한 이유는 JDK에서 제공하는 Javac(자바 컴파일러)와 JVM(자바 가상 머신)이 있기 때문이다.
  • 객체지향 언어이다.

JDK

  • Javac(Java compiler) : 자바 파일을 바이트 파일로 변환해준다.
    JVM(Java Virtual Machine) : 바이트 파일을 실행해준다.

자바 프로젝트 관리

이름 규칙 종류

  • 카멜케이스(camelCase) : 단어를 대문자로 나눈다.
    ex) firstName, lastName, fullName
  • 스네이크케이스(snake_case) : 단어를 언더바로 나눈다.
    ex) first_name, last_name, full_name

클래스 이름 규칙

  • 클래스 이름을 작성할 떄는 첫 글자 대문자 + 카멜케이스 조합으로 작성한다.
    ex) MyNewClass

변수 이름 규칙

  • 변수 이름은 카멜케이스로 작성한다.
    ex) mVal, val1

패키지

  • 자바 프로젝트에서 파일들의 묶음을 패키지라고 한다.
    (관련된 자바 클래스들을 그룹으로 묶는 기능)
  • 패키지이름 규칙
    자바에서 패키지명은 소문자만으로 적는것이 권장된다.
  • import로 패키지를 가져와 쓸 수 있다.
    ex) import package.class;

변수

  • 자료형 : 메모리를 사용하는 단위
    자료형은 데이터의 크기를 결정하는 규칙이다.
    자바에서는 사용 빈도가 높은 자료형을 미리 정해놨다.
    ex)int, string, long, boolean
    변수이름으로 데이터의 위치를 표현하고 ,
    자료형으로 데이터의 크기를 표현한다.
  • 형변환 : 변수의 자료형을 다른 자료형으로 변경하는 것을 의미한다.
    형변환은 업캐스팅과 다운캐스팅 방식이 있다.
  • 다운 캐스팅 - 명시적 형 변환
    큰 데이터를 작은 자료형에 옮겨담는것을 다운 캐스팅이라 한다.
    강제로 형 변환 시 명시적으로 변환시켜야한다.
    데이터 손실이 발생할 수 있다.
float fVal=10.1;
int iVal=(int)fVal;
System.out.println(iVal); // 10
  • 업 캐스팅 - 묵시적 형 변환
    작은 데이터를 큰 자료형이 옮겨담는것을 업 캐스팅이라 한다.
    문제가 발생하지 않기 때문에 자동으로 변경된다.
    데이터 손실이 없다.
int iVal=10;
double dVal=iVal;
System.out.println(dval); // 10.0

입출력

  • 출력
System.out.print(""); // 줄바꿈 없음
System.out.println(""); // 줄바꿈 있음\n
  • 입력
Scanner scanner = new Scanner(System.in); // 클래스 선언
String str = scanner.nextLine();  

연산자

산술 연산자

  • +:덧셈 -:뺄셈 *:곱셈 /: 나눗셈 %:나마지

대입 연산자

  • 변수에 값을 대입하는 연산자
    산술 연산자와 대입 연산자를 같이 사용한 복합 대입 연산자는 값을 누적시킬 때 사용한다.
    ex) += -= *= /= %=

증감 연산자

  • 증감 연산자는 변수를 1 증가 (++) 또는 1 감소 (--) 시킬 때 사용된다.
    ex) ++ --
  • 전위 연산(++i)과 후위 연산(i++)은 증감 연산자의 위치에 따라 실행 순서가 달라지는 것을 뜻한다.

비교 연산자

  • 두 값을 비교할 때 사용하는 연산자
    ex) == != <= >= < >

논리 연산자

  • 두 조건에 대해 논리 연산(AND,OR,NOT)을 해준다.
    ex) && || !

연산자 우선 순위

  • 기본적인 수학 사칙연산 우선순위가 적용된다.
    기본 연산자 우선순위(산술 -> 비교 -> 논리 -> 대입)
  • 논리 연산자 우선순위(! -> && -> ||)
  • 명확한 우선순위를 위해 괄호를 사용하는 것이 권장된다.

문자열 비교

  • ==는 문자열 값을 비교하는 것이 아니라 메모리 주소를 비교하는 방식이기 때문에 문자열 비교는 .equals() 사용이 권장 된다.
str1==str2 // x
str1.equals(str2) // o

조건문

  • if문 : 조건이 참일 때만 실행된다.
    if-else문 : 조건이 거짓일때 처리
    else if문 : 여러 개의 조건을 처리할 때 사용한다.
  • switch문 : 값에 따라 여러 동작을 실행한다.
switch(num){
	case 1:
    	//실행할 코드
    	break;
    case 2:
    	//실행할 코드
    	break;
    default:
    	//위 값들과 일치하지 않을 때 실행할 코드
}

fall-through현상 : break문으로 case를 끝내지 않으면 다음 case가 실행되는 현상

반복문

  • for문 : for(시작조건; 종결조건; 조건변화수식) {}
    break로 반복문을 탈출 할 수 있다.
    continue로 반복을 건너뛸 수 있다.
  • while문 : while(종결조건) {}
  • do-while문 : do { } while(종결조건)
    while문과 비슷하지만 종결 조건을 반복 후에 체크한다는 차이점이 있다.

배열

  • 배열이란 비슷한 주제의 데이터들을 하나의 그룹으로 묶어서 표현하는 방법이다.
  • 배열 선언
    자료형[] 변수이름 = new 자료형[배열의길이];
  • 인덱스 : 베열의 요소에 접근하는 방법
    변수이름[인덱스];
  • 향상된 for문 : 배열의 모든 요소를 하나씩 꺼내서 활용할 때 편리한 반복문이다.
    for(배열의요소:배열) { }
  • 2차원 배열
    자료형[][] 변수이름 = new 변수이름[배열의길이][배열의길이];

메서드

  • 여러 개의 작은 명령문을 한곳에 모아 사용하는 단위를 메서드라고 한다.
  • 메서드의 이름은 카멜케이스로 작성한다.
반환자료형 메서드이름(매개변수) 
{ 
	return 반환값;
}
profile
백엔드 개발자

0개의 댓글