Java 프로그램 기본 사항프로그램이 작명하는 이름이자 클래스, 변수, 메소드, 레이블 등의 이름

대소문자 구분⭕, 길이 제한❌
영 대소문자, 한글, 숫자, _, $ 사용
숫자로 시작❌
키워드, true, false, null은 불가
// 잘못 작성된 식별자의 예
2002WorldCup // 숫자로 시작함
my#class // #은 사용 불가
class // 키워드
World Cup // 띄어쓰기 불가
lee@knou // @는 사용 불가
클래스: 첫 자는 대문자, 단어의 첫 글자는 대문자, 나머지는 소문자
→ Car, HelloWorld, MyClass, String
메소드, 변수(필드): 위와 같으나 첫 글자가 소문자
→ speed, myCar, gearArea()
상수: 모든 문자를 대문자로 표기하고 단어 사이에 _를 넣어 구분
static final int NUM_GEARS = 6;
변수: 자료형을 표기하기 위한 접두어를 붙이기도 함
int nSpped; String szStr1;
의미가 미리 정해진 단어로, 프로그램에서 정해진 의미대로만 사용해야 함


class Circle {protected int radius; ...}
리터럴(Literal) 이란, 변수에 저장되는 '값 그 자체'를 의미한다.
즉, 프로그램 코드 안에서 직접 기입된 상수값을 말한다.
int num = 10; // 여기서 10이 정수형 리터럴
char ch = 'A'; // 'A'는 문자형 리터럴
boolean flag = true; // true는 불리언 리터럴
값이 한 번 할당되면, 값을 변경할 수 없는 변수
final int nConst = 3; //선언 시 초기값을 지정한 경우
| 분류 | 예시 | 설명 |
|---|---|---|
| 정수형 | 10, -5, 0b1010, 0x1A | 10진수, 2진수, 8진수, 16진수 등 지원 |
| 실수형 | 3.14, -0.5, 2.0e3 | 소수점 숫자, 지수 표기 가능 (double이 기본) |
| 문자형 | 'A', '(char)65', '\u0041' | 단일 따옴표 사용, 16비트 UNICODE로 인코딩 |
| 문자열형 | "Hello", "Java" | 문자열. 큰 따옴표(") 사용 |
객체를 가리키는 변수로 객체의 주소 값(참조 값)을 저장함

int anArray[];
Person p1;
String szStr;
자동 형변환: 작은 타입 → 큰 타입
✔️ byte → short → int → long → float → double
double d = 5; // 대입문
System.out.println("j="+10); // 수식
double res = Math.sqrt(2); // 메소드 호출시 인자의 유형
명시적 형변환: 큰 타입 → 작은 타입
🚨명시적 형변환은 강제로 변환하는 것🚨
// (자료형)피연산자
float f = (float)5.5;
특정 연산을 수행하기 위한 기호로, 연산자는 우선 순위와 적용 방향이 있다.

프로그램을 실행할 때 전달하는 인자
→main()함수에 전달되는 인자
→ 문자열로 전달됨

수식은 변수, 연산자, 함수 호출 등으로 구성되며 결과값을 계산함
대표적인 수식문:
int a = 10;i++;, --j;System.out.println("Hello");Scanner sc = new Scanner(System.in);변수의 자료형과 이름을 선언하고, 필요 시 초기값을 함께 지정
예시:
int number;
String name = "Java";
| 분류 | 설명 | 키워드 |
|---|---|---|
| 선택문 | 조건에 따라 실행 경로 분기 | if, if-else, switch |
| 반복문 | 조건을 만족하는 동안 반복 실행 | for, while, do-while |
| 점프문 | 흐름을 특정 위치로 이동 | break, continue, return |
블록문
{}로 묶은 문장 집합 { int x = 10; x++; }
레이블문
break, continue와 함께 사용 outer: for (...) { ... break outer; }
예외처리문
try-catch-finally 구문 try { ... } catch (...) { ... }
동기화문
synchronized 블록으로 동시 접근 제어 synchronized(obj) { ... }