Java 개발자 양성과정 KH 교육원 1주차 (6월11 ~6월 14일) 내용 정리_1
6월 11일 : 자바 간략한 특징, Variable
Java 특징 :
독립적 :
자바는 (운영체제(os) 리눅스, 윈도우, 맥 )에 독립적이다.
Java가 독립적으로 운영이 가능한 이유 :
JVM(Java Virtual Machine) : JVM은 자바 바이트코드를 실행하여
운영 체제 및 하드웨어에 독립적인 실행 환경을 제공한다
객체 지향 언어 :
객체지향 프로그래밍은 코드의 재사용성, 유지보수성,
확장성을 높이는 장점을 가진다
garbage collection :
garbage collection이란 메모리 관리 기법 중 하나이다
이 기법은 자동으로 실행 중이지 않은 객체를 식별하여 메모리를 해제하는 역할을 한다
즉 메모리 관리가 자유롭다
Type 자료형 종류 :
char 문자형 자료형 ' _ ' 작은 따움표로 문자를 묶는다
Strting 문자열 자료형 : " _ " 큰 따움표로 문자열을 묶는다
정수형 자료형 int (기본 자료형)
정수형 자료형 같은 경우 크기 별로 4가지가 존재한다.
byte (1B) -> short(2B) -> int(4B) -> long(8B) : long 자료형 경우 값을 대입시 ; 앞에 접미사 L를 붙인다
실수형 자료형 float(4B) - > double(8B)
실수형 자료형에서 기본 자료형은 double이다
float도 long과 마찬가지로 ;앞에 접미사 f를 붙인다 (대소문자 구분 : x)
논리형 (True/False) : boolean (1B)
변수( Variable) :
변수는 메모리 내에 data를 저장하는 공간이다 변수를 사용하여 가독성이 좋아질 수 있으며
한 번 선언해 놓으면 여러 번 사용이 가능하다
즉 재사용성과 유지 및 보수성이 좋아진다
선언 방법 :
변수를 선언하는 방법에는 크게 두 가지로 구분이 된다
첫 번째는 초기화라고도 한다.
변수 초기화 :
int number = 10;
double dNumber = 10.3;
String str = "최종군";
변수 초기화란 자료형 변수에 그 자료형에 알맞은 타입을 저장하는 행위이다
int형 자료에는 정수형 10을 대입을
double에는 실수형 대입값 10.3을 대입을 했으며
String 문자열 자료형에는 "최종군"이라는 값을
변수를 선언과 동시에 data를 초기화 하였다 이 방식을 변수 초기화라고 한다
변수를 선언한 후 값을 초기화 :
int number;
number = 10;
double dNumber;
dNumber = 10.3;
String str;
str= "최종군";
다음 변수 선언 방식이다 위 초기화 방식 같은 경우에는
자료형 선언과 동시에 변수명과 그 변수에 들어갈 값을 대입을 동사에 진행을 했으면
이 변수 선언 방식 같은 경우에는
number는 int형 변수라고만 명시를 해준 뒤
그 밑에 줄에서 number = 10;을 통해서 값을 입력을 했다
이 방식 같은 경우 10이라는 형을 넣을 때 number는 int형으로 타입을
다시 지칭할 필요가 없다.
형변환(Casting ) :
먼저 형 변환이란 정수와 실수는 컴퓨터 내부에서 표현되는 방식이 다르다
즉 연산은 같은 자료형끼리만 가능하기 떄문이다
형변환에는 종류가 두 가지가 있다
첫 번째 : 묵시적 형 변환(자동 변환)
크기가 작은 자료형에서 크기가 큰 자료형으로 대입하는 경우
묵시적 형 변환이 일어난다.
int number1 = 10;
double number2 = number1;
System.out.println(number2);
위 자료형을 보면 자료형 int number1에는 10이라는 값을 초기화 했다
밑에서 보면 double number2 = number1를 대입을 했다
데이터 값이 작은 자료형에서 큰 자료형으로 대입을 하는 경우
자동 형변환이 된다 출력 결과 시 10.0이 출력이 된다.
두 번째 형변환 : 명시적, 강제 형변환
강제 형변환은
자료형이 큰 값에서 작은 값으로 갈 때 쓰는 방식이다
int iNumber;
double dNumber;
dNumber = 10.3;
int iNmber = (int ) dNumber;
System.out.println(iNmber); // iNumber 출력 시 10 출력
두 번째 방식 같은 경우에는 큰 값에서 작은 값으로 강제적으로 형을 변환을 하다보니
데이터 손실이 발생할 수 있다
연산자 (operator):
프로그램이 실행될 때 연산을 도와주는 기호들
삼항 연산자 : (조건) ? 결과1: 결과2
조건식이 참이면 결과 1을 출력하고 조건식이 거짓일 경우에는 결과2를 출력해준다
조건문 : if , else if
먼저 조건문 if
간단히 조건문을 이야기를 하자면 프로그램의 흐름을 조건에 따라 제어하는
프로그램 제어문이다
* 표현법
if (조건식) {
// 조건식이 참(true)인 경우 실행할 문장/코드
} else {
// 조건식이 거짓(false)일 경우 실행할 문장/코드
}
// 여러 개의 조건식을 사용하고자 한다면..
if (조건식) {
// 조건식이 참(true)일 때
} else if (조건식2) {
// 조건식이 거짓(false)이고, 조건식2이 참(true)일 때
} else {
// 조건식이 거짓(false)이고, 조건식2도 거짓(false)일 때
}
int age = 10;
if(age >= 8 ){
System.out.println("학교를 다닙니다");
} else {
System.out.println("학교에 다니지 않습니다");
}
int 형 정수 age가 8보다 크거나 같다면 결과는 참이므로
"학교에 다닙니다"를 출력한다
만일 age 값이 7이었다면 age는 8보다 크거다 같다라는 조건은 거짓이 되므로
참인 결과값 외 문구인
"학교에 다니지 않습니다"를 출력하게 된다.
if와 else만 사용하게 될 경우에는 상황이 여러 상황이 발생될 경우
학교를 다닌다, 다니지 않는 다라는 경우에는 사용하는데 문제는 없지만
좀 더 많은 조건이 있는 경우에는
else if :
int age = 10;
int charge;
if(age < 8) { // age는 8보다 작다라는 조건은 false이므로 수행하지 않는다
charge = 1000;
System.out.println("취학 전 아동입니다");
} else if (age < 14) { // age는 14보다 작다라는 조건은 true이므로 초등학생입니다를 출력한다
charge = 2000;
System.out.println("초등학생입니다");
} else if (age < 20) {
charge = 2500;
System.out.println("중, 고등학생입니다 ");
} else {
charge = 3000;
System.out.println("일반인 입니다");
}
System.out.println("입장료는 " +charge+ "입니다");
}
출력 결과 :
초등학생입니다
입장료는 2000입니다
하지만 else if 대신 if문만을 중첩해서 사용을 하게 될 경우를 살펴보겠다
int age = 10;
int charge;
if(age < 8) {
charge = 1000;
System.out.println("취학 전 아동입니다" );
} if (age < 14) {
charge = 2000;
System.out.println("초등학생입니다" );
} if (age < 20) {
charge = 2500;
System.out.println("중, 고등학생입니다 " );
} else {
charge = 3000;
System.out.println("일반인 입니다");
}
System.out.println("입장료는 " +charge+ "입니다");
}
if문 만으로 작성을 하게 될 경우이다
한 번 결과 값을 살펴보면
초등학생입니다
중, 고등학생입니다
입장료는 2500입니다
if문만으로 이루어진다면 각 if문들은 각각 조건들을 비교하게 된다
즉 age = 10, 초등학생 14 보다 작다라는 조건을 만족을 하게 되어 출력을
age 10은 중고등학생 나이인 20보다라는 조건도 참이 되므로
출력이 되게 된다
else if는 하나의 조건을 만족하면 나머지 조건을 비교하지 않는다는
특징이 있다