자바 기초 정리 1

보라도리·2021년 8월 9일
0
post-thumbnail

📁 CHAPTER1

📌 01.자바(Java)란?

🔗 자바는 1991년에 썬의 엔지니어들에 의해서 고안된 오크(OaK)라는 언어에서부터 시작되었다.
🔗 자바는 썬 마이크로시스템즈에서 개발하여 1996년 1월에 공식적으로 발표한 객체지향 프로그래밍 언어이다.

🔎 자바의 특징

📜 운영체제(Operating System, 플랫폼)에 독립적

  • 자바응용프로그램은 운영체제나 하드웨어가 아닌 JVM하고만 통신한다.
  • JVM이 자바 응용프로그램으로부터 전달 받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달해준다.
  • 자바로 작성된 프로그램은 운영체제에 독립적이지만, JVM은 운영체제에 종속적이다.

📜 객체지향언어

  • 객체지향 프로그래밍언어(object-oriented programming language)중의 하나로 객체지향개념의 특징인 상속, 캡슐화, 다형성이 잘 적용된 순수한 객체재향언어라는 평가를 받고 있다.

📜 배우기 쉽고 이해하기 쉬운 간결한 표현이 가능

  • 연산자와 기본구문은 C++에서, 객체지향관련은 스몰톡(small talk)이라는 객체지향언어에서 가져왔다.
  • 언어의 장점은 가져오고 복잡하고 불필요한 부분은 제거하여 단순화함으로서 쉽게 배울 수 있다.

📜 자동 메모리 관리(Garbage Collection)

  • 자바로 작성된 프로그램이 실행되면, 가비지컬렉터(garbage collector)가 자동적으로 메모리를 관리해준다.

📜 멀티쓰레드를 지원

  • 자바에서 개발되는 멀티쓰레드 프로그램은 시스템과는 관계없이 구현가능하며 여러 쓰레드에 대한 스케줄링을 자바 인터프리터가 담당한다.

📜 동적로딩을 지원

  • 자바는 동적 로딩을 지원하기 때문에 실행 시에 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용할 수 있다.

📌 02.자바 가상 머신(JVM)

🔗 "Java virtual machine"을 줄인 것으로 "자바를 실행하기 위한 가상 기계"라고 할 수 있다.
🔗 "가상 기계(virtual machine)" → 소프트웨어로 구현된 하드웨어를 뜻한다.
🔗 일반 애플리케이션의 코드는 OS만 거치고 하드웨어로 전달되는데
🔗 Java애들리케이션은 JVM을 한번 더 거친다.

📁 CHAPTER2 - 변수

📌 01. 변수의 선언과 저장

하나의 값을 저장할 수 있는 저장공간을 변수(variable)라고 한다.

🔎 변수를 선언하는 방법

📜 변수타입 변수이름;

  • ex) int x; //정수(integer)를 저장하기 위한 변수 x를 선언

🔗 자바에서는 오른쪽의 값을 왼쪽에 저장

📌 02. 변수의 타입

🔗 변수를 선언할 때, 변수에 저장할 값의 종류에 따라 변수의 타입을 선택해야한다.
🔗 변수의 타입은 기본형, 참조형이 있다.

  • 숫자 : int, long, flot, double
  • 문자 : char, String

📌 03. 상수와 리터럴

🔗 '상수(constant)'는 변수와 마찬가지로 '값을 저장할 수 있는 공간'을 뜻한다.
🔗 변수와 달리 한번 값을 저장하면 다른값으로 변경할 수 없다.
🔗 변수와 선언하는 방법은 동일하지만, 변수 타입 앞에 'final'키워드를 붙여줘야한다.

변수(varable) - 하나의 값을 저장하기 위한 공간
상수(constant) - 값을 한번만 저장할 수 있는 공간
리터럴(literal) - 그 자체로 값을 의미하는 것

📌 04. 기본형과 참조형

🔗 값(data)의 종류(type)에 따라 값이 저장될 공간의 크기와 저장 형식을 정의한 것이다.
🔗 자료형에는 문자형(char), 정수형(byte, short, int, long), 실수형(float, double) 등이 있다.

🔎 기본형과 자료형

🔗 기본형 변수 : 실제 값(data)을 저장
🔗 참조형 변수 : 어떤 값이 저장되어 있는 주소(memory address)를 저장

📁 CHAPTER3 - 연산자

📌 01. 연산자와 피연산자

📜 연산자 : '연산을 수행하는 기호'
📜 피연산자(operand) : 연산을 수행 할 때 연산의 대상
📜 식(expression) : 연산자와 피연자를 조합하여 계산하고자 하는 것을 표현한 것

📌 02. 연산자의 종류

📜 산술 연산자 : + - * / % << >>
📜 비교 연산자 : > < >= <= == !=
📜 논리 연산자 : && || ! & | ^ ~
📜 대입 연산자 : =
📜 기타 : (type) ?: instanceof

🔗 산술 > 비교 > 논리 > 대입 순서대로 수행된다.

📌 03. 증감 연산자 ++과 --

📜 증가 연산자(++) : 피연산자의 값을 1 증가
📜 감소 연산자( -- ) : 피연산자의 값을 1 감소

🔗 피연산자의 왼쪽에 위치하면 '전위형(prefix)
🔗 피연산자의 오른쪽에 위치하면 '후위형(postfix)

📜 전위형 : 값이 참조되기 전에 증가 → j = ++j;
📜 후위형 : 값이 참조된 후에 증가 → j = j++;

📌 04. 부호 연산자

📜 부호 연산자'-'는 피연산자의 부호를 반대로 변경한다
📜 피연산자가 음수면 양수, 양수면 음수

📌 05. 비교 연산자

🔎 대소 비교 연산자

📜 > : 좌변 값이 크면 , true 아니면 false
📜 < : 좌변 값이 작으면, true 아니면 false
📜 >= : 좌변 값이 크거나 같으면 true 아니면 false
📜 <= : 좌변 값이 작거나 같으면 true 아니면 false

🔎 등가 비교 연산자

📜 == : 두 값이 같으면, true 아니면 false
📜 != : 두값이 다르면, true 아니면 false

🔎 논리 연산자

📜 ||(OR결합) : 피연산자 중 어느 한 쪽이 true이면 true를 결과로 얻는다.
📜 &&(AND결합) : 피연산자 양쪽 모두 true이어야 true를 결과로 얻는다.

🔎 논리 부정 연산자

📜 ! : 피연산자가 true면 false를, false면 true를 결과로 반환한다.

📁 CHAPTER4 - 조건문과 반복문

🔗 제어문(control statement) : 조건에 따라 문장을 건너뛰고, 같은 문장을 반복해서 수행해야 할때, 프로그램의 흐름을 바꾸는 역할을 하는 문장

📌 01. if문

📜 가장 기본적인 조건문
📜 만일(if) 조건식이 참(true)이면 괄호{}안의 문장들을 수행

if (조건식) {
// 조건식이 참(true)일 때 수행될 문장들을 적는다.
}

📌 02. if-else문

📜 if문의 변형
📜 조건식의 결과가 거짓일 때 else블럭의 문장을 수행

if (조건식) {
// 조건식이 참(true)일 때 수행될 문장들을 적는다.
} else {
// 조건식이 거짓(flase)일 때 수행될 문장들을 적는다.
}

📌 03. if-else if문

📜 여러개의 조건식을 사용해야 할때
📜 첫 번째 조건식부터 순서대로 평가해서 참인 조건식을 만나면, 해당 블럭{}만 수행하고 'if-else if문'전체를 벗어난다.

if (조건식1) {
// 조건식1이 참(true)일 때 수행될 문장들을 적는다.
} else if (조건식2) {
// 조건식2이 참(true)일 때 수행될 문장들을 적는다.
} else if (조건식3){
// 조건식3 참(true)일 때 수행될 문장들을 적는다.
}else {
// 조건식이 거짓(flase)일 때 수행될 문장들을 적는다.
}

📌 04. switch

📜 처리할 경우의 수가 많은 경우 if문보다 switch문이 좋다.

switch(조건식) {
case 값1 :
// 조건식의 결과가 값 1과 같을 경우 수행
.
.
break;
case 값2:
// 조건식의 결과가 값 2와 같을 경우 수행
.
.
break;
default :
// 조건식의 결과와 일치하는 case문이 없을 때 수행
}

🔎 switch문의 제약조건

📜 1. switch문의 조건식 결과는 정수 또는 문자열이여야 한다.
📜 2. case문의 값은 정수 상수(문자 포함), 문자열만 가능하며, 중복되지 않아야 한다.

📌 05. 반복문

📜 어떤 작업이 반복적으로 수행되도록 할 때 사용된다.
📜 반복문의 종류로는 for문, while문, do-whild문이 있다.

🔎 for문

📜 '초기화', '조건식', '증감식', '블럭{}, 4부분으로 이루어져 있다.

for(초기화;조건식;증감식) {
// 조건식이 참(true)인 동안 수행될 문장들
}

🔎 while문

📜 for문에 비해 구조가 간단하다.
📜 조건식이 거짓이 될 때 까지 블럭{}내의 문장을 반복한다.

while(조건식) {
// 조건식의 연산결과가 참(true)인 동안, 반복
}

🔎 do-while문

📜 기본적인 구조는 while문과 같다.

do {
//조건식의 연산결과가 참일 떄 수행될 문장들을 적는다
} while(조건식) ;

profile
오예~~

0개의 댓글