[Java] 변수와 자료형

DEVELOPERS_Ivan ㅣ 2023. 7. 24. 18:58

변수
변수
● 값(Value)을 저장할 수 있는 메모리의 공간을 의미
● 이름에서 유추할 수 있듯이 변수는 말 그대로 '변하는 수'

● 변수의 이름 규칙
1. 대소문자가 구분되며 길이에 제한이 없다.
- Name과 name은 서로 다른 것으로 간주된다.
2. 자바에서 사용하는 예약어는 사용할 수 없다.
- while, break, for, if
3. 숫자로 시작해서는 안 된다.
- top10은 허용하지만, 7up은 허용되지 않는다.
4. 특수문자는 '_', '$'만을 허용한다.

● TIP. 대, 소문자 구분
- 자바 파일은 무조건 대문자로 사용
- 클래스 이름 첫 글자도 대문자 사용

 

● TIP. 코드 // 주석 컴파일러가 무시하는 코드로 부가 설명 등으로 활용
● TIP. 중괄호, 대괄호 범위 구분하기
● TIP. 변수 선언 및 초기화 활용, " ; "
● TIP. 변수에 선언과 초기화를 한 번에 사용
● TIP. 변수 선언 없이 System.out.println(); 화면으로 바로  출력
● TIP. Console 출력 보기 단축키(Ctrl + f11)
● TIP. 정렬하기 단축키(Ctrl + Shift + F)
● TIP. 클래스 파일로 저장하기 단축키(Ctrl + S) / 클래스 파일로 전체 저장하기  단축키(Ctrl + Shift + S)
더보기

// 변수와 자료형_변수-1

 

package ch01;

 

public class Variable {

 

// < --주석 - 컴파일러가 무시하는 코드

// 1. 자바에서 중괄호는(블록)에 범위는 절대적이다.

 

// main 이란 : 프로그램에 시작 점

public static void main(String[] args) {

 

// ** 변수를 사용하는 방법 **

int age; // 문장에 끝은 세미콜론을 통해서 컴파일러에게 알려 주어야 한다.

int count; // <-- 변수 선언 - 메모리 공간만 일단 할당해 둔 상태 !!

 

age = 1; // 초기화 한다(값을 넣다)

// age2=10; 메모리 공간을 할당 해야 사용 할 수 있다. age2 공간은 없는 상태

count = 100; // 100으로 초기화

 

// 화면에 xxx를 출력 하라 !

System.out.println(age); // 개발자 도구에서 만들어 둔 명령어

// 단축키 ctrl + f11(실행)

System.out.println(count);

 

// 변수란 메모리 공간도 의미 하지만 변하는 수 이기도 하다.

age = 500;

// int age; 먼저 할당한 변수 이름을 똑같이 하나 더 만들 수 없다. (공간 할당 의미)

 

System.out.println(age);

 

// 변수에 선언과 초기화 (한 번에 사용)

int myAge = 80;

System.out.println(myAge);

System.out.println("=====================");

// 화면에 바로 숫자로 입력, 문자도 바로 입력 할 수 있다.

System.out.println(700);

System.out.println("문자열");

 

} // end of main

} // end of class

 

Console 보기
1
100
500
80
=====================
700
문자열

더보기

Console 보기
1
100
500
80
=====================
700
문자열

// 변수와 자료형_변수-1

package ch01;
public class Variable {
// < --주석 - 컴파일러가 무시하는 코드
// 1. 자바에서 중괄호는(블록)에 범위는 절대적이다.

// main 이란 : 프로그램에 시작 점
public static void main(String[] args) {

// ** 변수를 사용하는 방법 **
int age; // 문장에 끝은 세미콜론을 통해서 컴파일러에게 알려 주어야 한다.
int count; // <-- 변수 선언 - 메모리 공간만 일단 할당해 둔 상태 !!
age = 1; // 초기화 한다(값을 넣다)
// age2=10; 메모리 공간을 할당 해야 사용 할 수 있다. age2 공간은 없는 상태
count = 100; // 100으로 초기화

// 화면에 xxx를 출력 하라 !
System.out.println(age); // 개발자 도구에서 만들어 둔 명령어 // 단축키 ctrl + f11(실행)
System.out.println(count);

// 변수란 메모리 공간도 의미 하지만 변하는 수 이기도 하다.
age = 500;
// int age; 먼저 할당한 변수 이름을 똑같이 하나 더 만들 수 없다. (공간 할당 의미)
System.out.println(age);
// 변수에 선언과 초기화 (한 번에 사용)
int myAge = 80;
System.out.println(myAge);
System.out.println("=====================");

// 화면에 바로 숫자로 입력, 문자도 바로 입력 할 수 있다.
System.out.println(700);
System.out.println("문자열");

} // end of main
} // end of class

Console 보기
1
100
500
80
=====================
700
문자열

 

// 변수와 자료형_변수-2

package ex_01;
//자바 파일은 무조건 대문자로 시작
//클래스 이름 첫 글자도 대문자로 시작

public class Variable {

// 코드의 시작점
public static void main(String[] args) {

// 변수 선언
int age;
int count;
// 초기화
age = 106;
count = 100;
// 화면에 출력
System.out.println(age);
System.out.println(count);
// 선언과 동시에 초기화
int myAge = 30;
// 화면에 출력
System.out.println(myAge);
System.out.println("문자열");

} // end of main
} // end of class

 


 

자료형
정수형, 문자형, 실수형, 논리형
자료형(data type)
변수를 선언하면 해당되는 자료형의 크기 만큼 메모리가 할당
변수는 할당된 메모리를 가리키는 이름 int level = 10; // 4바이트 정수형 메모리가 level 이라는 이름으로 할당 됨
● TIP. 데이터 타입 종류는 크게 두가지 있다.
1. 기본 데이터 타입(Primitive Type)
2. 참조 타입(Reference Type)

 

기본 자료형(primitive data type)의 종류 / 정수 자료형의 종류와 크기

 

정수형
● TIP. int (4바이트 자료형)
● TIP. long(8바이트 자료형)
● TIP.  32 비트를 초과하는 숫자는 long 자료형으로 처리 (+,- 약 21억) 
● TIP. 숫자의 뒤에 알파벳 L 또는 l 을 써서 long 형임을 표시 함
 int num = 12345678900; // 오류
long lnum = 12345678900; //오류
long lnumber = 12345678900L; // ok

 

실수 자료형
● TIP. 종류와 크기 확인하기
● TIP. float형과 double형 사용 방법 숙지
● TIP. R 벨류 기준으로 정수형 기본 4바이트로 받아 들인다. 즉 접미사를 작성 해주어야 한다
● TIP. 정수형에 기본 연산 단위는 4바이트이다.
● TIP. double dou = 10.0;float fot = 11.7F; 역시나 접미사(대문자, 소문자 구분없음)를 작성해야 한다.
● TIP. long 단위를 작성을 할 때는 접미사를 넣어줘야 인식을 한다.
l = 2134555555555L;실수형을 표현할 때 사용하는 데이터 타입(float(4바이트)
double(8바이트)) - 기본 연산 단위 double 이다.

 

// 변수와 자료형_데이터 타입-1

package ch01;
public class DataType1 {
// 코드에 시작점
public static void main(String[] args) {

// 자료형 데이터 타입
// 데이터 타입 종류는 크게 두가지 있다.
// 1.기본 데이터 타입(Primitive Type)
// 2.참조 타입(Reference Type
// 기본 데이터 타입에 종류 - 정수형

byte b; // 1바이트
short s; // 2바이트
int i; // 4바이트
long l; // 8바이트

b = 127;
b = -128; // -129 X

// R 벨류 기준으로 정수형 기본 4바이트로 받아 들인다.
// 즉 접미사를 작성 해주어야 한다.
// 정수형에 기본 연산 단위는 4바이트 이다.
// long 단위를 작성을 할 때는 접미사를 넣어줘야 인식을 한다.
l = 2134555555555L;
// 실수형을 표현할 때 사용하는 데이터 타입(float(4바이트), double(8바이트)) - 기본 연산 단위 double 이다.
double dou = 10.0;
float fot = 11.7F; // 역시나 접미사(대문자, 소문자 구분없음)를 작성해야 한다.

System.out.println(dou);
System.out.println(fot);
System.out.println(l);

// 정수형 - int (4Byte)
// 실수형 - double (8Byte)

} // end of main
} // end of class

Console 보기
10.0
11.7
2134555555555

 

문자 자료형(문자형)
● TIP. 홑 따옴표를 사용해서 하나의 문자만을 담을 수 있다.
● TIP. 여러 문자는 문자열을 사용해야 한다.
● TIP.  인코딩과 디코딩에 개념
● TIP. 문자를 위한 데이터 타입 char ch1 = 'A'; ( 문자와 문자열은 완전 다른 타입 입니다 "ABCD" )
● TIP. 내부적으로 숫자료 표현되므로 숫자를 넣어도 문자가 출력될 수 있음
● TIP. character set: 문자를 숫자로 변환한 값의 세트 encoding: 문자가 숫자로 변환되는 것
● TIP. decoding: 숫자에서 다시 문자로 변환되는 것
● TIP. ASKII code: 알파벳과 숫자 특수 문자등을 1바이트에 표현하는데 사용하는 문자세트
● TIP. UNICODE: 전 세계 표준으로 만든 문자 세트
● TIP. UTF-8: 1바이트에서 4바이트까지 다양하게 문자를 표현할 수 있음
● TIP. UTF-16: 2바이트로 문자를 표현

 

인코딩과 디코딩
문자를 저장하기 위한 변수를 선언할 때 사용.
char 타입의 변수는 단 하나의 문자만을 저장할 수 있다. 
char ch = 'A'; // 문자 'A'를 char 타입의 변수 ch에 저장 
사실은 문자의 유니코드(정수)가 저장된다. 
어떤 문자를 컴퓨터 내부에서 표현하기 위해 특정 정수 값을 정의해 둔다. 
A 는 65

 

// 변수와 자료형_데이터 타입-2

package ch01;
public class DateType2 {
public static void main(String[] args) {

// 변수에 선언
char name; // 2Byte 공간에 하나의 문자를 담아 둘 수 있다.
char a;
char insitial;

// 초기화(값을 넣다)
name = 'A'; // 홑 따옴표를 사용해서 하나의 문자만을 담을 수 있다.
// name = 'AB'; 불가능
// 여러 문자는 문자열을 사용해야 한다.

System.out.println("======== 문제 ========");
// 1. name 변수에 값을 화면에 출력 하시오.
System.out.println(name);

// 2. 문자 H 를 화면에 출력 하시오.
System.out.println('H');

// 3. 문자 b 를 화면에 출력 하시오.
System.out.println('B');

} // end of main
} // end of class

Console 보기
======== 문제 ========
A
H
B

 

// 변수와 자료형_데이터 타입-2 문제

package ch01;
public class CharacterTest {
public static void main(String[] args) {


System.out.println("================");
// 선언
char ch1 = '가';

// 초기화
System.out.println(ch1);
System.out.println((int) ch1);
System.out.println((int) '가');

System.out.println("======== 문제 ========");
// 문제 1-1. 대문자 A는 정수값 얼마 인지 출력하시오.
System.out.println((int) 'A');

// 문제 1-2. 소문자 a는 정수값 얼마 인지 출력하시오.
System.out.println((int) 'a');

// 주의 char 데이터 타입에는 음수값을 대입 할 수 없다. (양수만 사용)
char ch2 = 97;
System.out.println(ch2);

// 문제 2. 개발자 라는 단어는 한글자 한글자 정수값 얼마, 얼마, 얼마 알아보자.
System.out.println((int) '개');
System.out.println((int) '발');
System.out.println((int) '자');

// 본인이 알고 싶은 단어에 정수값이 얼마인지 알아 보자.
System.out.println((int) '돈');

} // end of main
} // end of class

Console 보기
================

44032
44032
======== 문제 ========
65
97
a
44060
48156
51088
46024

 

논리형
● TIP. true(참), false(거짓) 두 가지만 나타냄
● TIP. 1바이트를 사용 함
● TIP. 값이 존재하는지, 결과가 참인지 거짓인지등을 표현
● TIP. 자바에서는 대소문자가 구별되기 때문에 TRUE와 true는 다른 것으로 간주된다는 것에 주의  

 

// 변수와 자료형_데이터 타입-3

package ch01;
public class DataType3 {
public static void main(String[] args) {

System.out.println("================");
// 기본 자료형 --> 논리형(사실을 관찰하고 결과 값이 참, 거짓인지 판별)
boolean isMarried = false;
System.out.println(isMarried);

System.out.println("================");
isMarried = true;
System.out.println(isMarried);

} // end of main
} // end of class

Console 보기
================
false
================
true

 

// 변수와 자료형_데이터 타입 문제

package ch01;
public class DateTypeTest {
public static void main(String[] args) {

System.out.println("======== 문제 ========");
// 문제 1. 정수 550을 name1 이름으로 변수에 담아 보세요.
// 문자열 값이라는 것을 출력하라
// name1 변수 상자 안에 들어가 있는 값을 출력 하라

 int name1 = 550;
System.out.println("name1"); 
System.out.println(name1); 

// 문제 2. 정수 22억을 name2 이름으로 변수에 담아 보세요.
long name2 = 2200000000l;
System.out.println(name2);

// 문제 3. 문자 A를 name3 이름으로 담아 보세요.
char name3 = 'A';
System.out.println(name3);

// 문제 4. 실수 float 타입으로 0.12345678 을 name4 이름으로 담아 보세요.
// --> 접미사를 알고 있는가? (연산단위)
float name4 = 0.12345679F; // 강제형변환

// 문제 5. 실수 double 타입으로 200.0012을 name5 이름으로 담아 보세요.
double name5 = 200.0012;

// 6. 논리 자료형 isOk 라는 이름으로 변수를 선언해 보세요.

boolean isOk;
// 문제 7. isOk 변수에 리터럴 값 false 로 초기화 해보세요.

isOk = false;
System.out.println(isOk);
// 문제 8. isOk 변수 값을 true로 변경해 보세요.

isOk = true;
System.out.println(isOk);

// 문제 9. 변수란 무엇인지 서술해 보세요.
// 변하는 수 입니다. 값(주소값)을 자장할 수 있는 메모리 공간을 의미한다.

// 문제 10. 기본 데이터 타입 종류 8가지와 크기를 서술해 주세요.
// 정수형 (byte, short, int, long) 1, 2, 4, 8
// 실수형 (float, double) 4byte, 8byte
// 문자형 (char) - 2
// 논리형 (boolean) - 1

}
// end of main
} // end of class

Console 보기
======== 문제 ========
name1
550
2200000000
A
false
true

'Java' 카테고리의 다른 글

[java] 제어 문_반복 문  (0) 2023.07.26
[java] 제어 문_조건 문  (0) 2023.07.26
[java] 산술 연산자  (0) 2023.07.26
[java] 상수와 형 변환  (0) 2023.07.25
[java] 컴파일 시점 VS 런타임 시점  (0) 2023.07.24