🔗 자바는 1991년에 썬의 엔지니어들에 의해서 고안된 오크(OaK)라는 언어에서부터 시작되었다.
🔗 자바는 썬 마이크로시스템즈에서 개발하여 1996년 1월에 공식적으로 발표한 객체지향 프로그래밍 언어이다.
🔗 "Java virtual machine"을 줄인 것으로 "자바를 실행하기 위한 가상 기계"라고 할 수 있다.
🔗 "가상 기계(virtual machine)" → 소프트웨어로 구현된 하드웨어를 뜻한다.
🔗 일반 애플리케이션의 코드는 OS만 거치고 하드웨어로 전달되는데
🔗 Java애들리케이션은 JVM을 한번 더 거친다.
하나의 값을 저장할 수 있는 저장공간을 변수(variable)라고 한다.
📜 변수타입 변수이름;
🔗 자바에서는 오른쪽의 값을 왼쪽에 저장
🔗 변수를 선언할 때, 변수에 저장할 값의 종류에 따라 변수의 타입을 선택해야한다.
🔗 변수의 타입은 기본형, 참조형이 있다.
🔗 '상수(constant)'는 변수와 마찬가지로 '값을 저장할 수 있는 공간'을 뜻한다.
🔗 변수와 달리 한번 값을 저장하면 다른값으로 변경할 수 없다.
🔗 변수와 선언하는 방법은 동일하지만, 변수 타입 앞에 'final'키워드를 붙여줘야한다.
변수(varable) - 하나의 값을 저장하기 위한 공간
상수(constant) - 값을 한번만 저장할 수 있는 공간
리터럴(literal) - 그 자체로 값을 의미하는 것
🔗 값(data)의 종류(type)에 따라 값이 저장될 공간의 크기와 저장 형식을 정의한 것이다.
🔗 자료형에는 문자형(char), 정수형(byte, short, int, long), 실수형(float, double) 등이 있다.
🔗 기본형 변수 : 실제 값(data)을 저장
🔗 참조형 변수 : 어떤 값이 저장되어 있는 주소(memory address)를 저장
📜 연산자 : '연산을 수행하는 기호'
📜 피연산자(operand) : 연산을 수행 할 때 연산의 대상
📜 식(expression) : 연산자와 피연자를 조합하여 계산하고자 하는 것을 표현한 것
📜 산술 연산자 : + - * / % << >>
📜 비교 연산자 : > < >= <= == !=
📜 논리 연산자 : && || ! & | ^ ~
📜 대입 연산자 : =
📜 기타 : (type) ?: instanceof
🔗 산술 > 비교 > 논리 > 대입 순서대로 수행된다.
📜 증가 연산자(++) : 피연산자의 값을 1 증가
📜 감소 연산자( -- ) : 피연산자의 값을 1 감소
🔗 피연산자의 왼쪽에 위치하면 '전위형(prefix)
🔗 피연산자의 오른쪽에 위치하면 '후위형(postfix)
📜 전위형 : 값이 참조되기 전에 증가 → j = ++j;
📜 후위형 : 값이 참조된 후에 증가 → j = j++;
📜 부호 연산자'-'는 피연산자의 부호를 반대로 변경한다
📜 피연산자가 음수면 양수, 양수면 음수
📜 > : 좌변 값이 크면 , true 아니면 false
📜 < : 좌변 값이 작으면, true 아니면 false
📜 >= : 좌변 값이 크거나 같으면 true 아니면 false
📜 <= : 좌변 값이 작거나 같으면 true 아니면 false
📜 == : 두 값이 같으면, true 아니면 false
📜 != : 두값이 다르면, true 아니면 false
📜 ||(OR결합) : 피연산자 중 어느 한 쪽이 true이면 true를 결과로 얻는다.
📜 &&(AND결합) : 피연산자 양쪽 모두 true이어야 true를 결과로 얻는다.
📜 ! : 피연산자가 true면 false를, false면 true를 결과로 반환한다.
🔗 제어문(control statement) : 조건에 따라 문장을 건너뛰고, 같은 문장을 반복해서 수행해야 할때, 프로그램의 흐름을 바꾸는 역할을 하는 문장
📜 가장 기본적인 조건문
📜 만일(if) 조건식이 참(true)이면 괄호{}안의 문장들을 수행
if (조건식) {
// 조건식이 참(true)일 때 수행될 문장들을 적는다.
}
📜 if문의 변형
📜 조건식의 결과가 거짓일 때 else블럭의 문장을 수행
if (조건식) {
// 조건식이 참(true)일 때 수행될 문장들을 적는다.
} else {
// 조건식이 거짓(flase)일 때 수행될 문장들을 적는다.
}
📜 여러개의 조건식을 사용해야 할때
📜 첫 번째 조건식부터 순서대로 평가해서 참인 조건식을 만나면, 해당 블럭{}만 수행하고 'if-else if문'전체를 벗어난다.
if (조건식1) {
// 조건식1이 참(true)일 때 수행될 문장들을 적는다.
} else if (조건식2) {
// 조건식2이 참(true)일 때 수행될 문장들을 적는다.
} else if (조건식3){
// 조건식3 참(true)일 때 수행될 문장들을 적는다.
}else {
// 조건식이 거짓(flase)일 때 수행될 문장들을 적는다.
}
📜 처리할 경우의 수가 많은 경우 if문보다 switch문이 좋다.
switch(조건식) {
case 값1 :
// 조건식의 결과가 값 1과 같을 경우 수행
.
.
break;
case 값2:
// 조건식의 결과가 값 2와 같을 경우 수행
.
.
break;
default :
// 조건식의 결과와 일치하는 case문이 없을 때 수행
}
📜 1. switch문의 조건식 결과는 정수 또는 문자열이여야 한다.
📜 2. case문의 값은 정수 상수(문자 포함), 문자열만 가능하며, 중복되지 않아야 한다.
📜 어떤 작업이 반복적으로 수행되도록 할 때 사용된다.
📜 반복문의 종류로는 for문, while문, do-whild문이 있다.
📜 '초기화', '조건식', '증감식', '블럭{}, 4부분으로 이루어져 있다.
for(초기화;조건식;증감식) {
// 조건식이 참(true)인 동안 수행될 문장들
}
📜 for문에 비해 구조가 간단하다.
📜 조건식이 거짓이 될 때 까지 블럭{}내의 문장을 반복한다.
while(조건식) {
// 조건식의 연산결과가 참(true)인 동안, 반복
}
📜 기본적인 구조는 while문과 같다.
do {
//조건식의 연산결과가 참일 떄 수행될 문장들을 적는다
} while(조건식) ;