☭DEVELOPER/#2 웹개발(자바기반 풀스택)

[BACKEND]JAVA_ECLIPSE02 자료형과 변수

조반짝 2023. 8. 17. 12:18
728x90
반응형

IMPORT

 

import 할 파일을 작업파일에 붙여넣기

임포트 되었다.

package chapter02.sec01.exam03;

//두 변수의 값을 교환하는 방법을 보여주는 예시입니다.
//두 변수의 값을 교환하기 위해서 새로운 변수 temp를 선언한 것에 주목하시기 바랍니다.
public class VariableExchangeExample {

	public static void main(String[] args) {

		// 정수형(int) 변수 x를 선언과 동시에 3을 대입해서 초기화 처리해 줍니다.
		int x = 3;  
		// 정수형(int) 변수 y를 선언과 동시에 5를 대입해서 초기화 처리해 줍니다.
		int y = 5;
		System.out.println("x = " + x + ", y = " + y);
		
		int temp = x;
		x = y;
		y = temp;
		System.out.println("x = " + x + ", y = " + y);
	}
	
}

자료형과 변수


Variable 변수

값을 저장할 수 있는 메모리의 특저 번지에 붙이는 이름

프로그램은 변수를 통해 메모리의 특정 번지에 값을 저장하고 읽을 수 있다.

자바의 변수는 같은 타입의 하나의 값만 저장 할 수 있다.


변수 선언 Variable Declaration

변수를 사용하기 위해서는 먼저 변수를 선언해야한다.

변수 선언은 어떤 타입 Type(자료형)의 데이터를 저장할 것인지 변수이름을 결정한다.

 

한글을 포함하지 말것!

변수 네이밍은 의미있는 단어로 넣을 것!


예약어

이미 해당 프로그래밍 언어에서 의미를 갖고 사용되고 있는 단어로 변수이름에 사용할 수 없다.

예약어로 변수이름을 선언하면 컴파일 에러가 발생한다.


값 저장

변수에 값을 저장할 때는 대입연산자(=)를 사용

자바 언어에서는 오른쪽의 값을 왼쪽의 변수에 저장한다는 의미이다.

int score = 90;  // 변수 선언과 동시에 값을 저장할 수 있다.

 

 

▶ 자바에서는 변수에 값이 저장되지 않으면 변수가 생성되지 않는다.

     변수선언은 저장되는 값의 종류와 이름만 언급할 뿐, 변수에 최초로 값이 저장될때 변수가 생성된다. 

 

▶ 변수 초기화 : 변수에 최초로 값을 저장하여 변수를 생성함

▶ 초기값 : 변수를 초기화 할때 사용된 값 

초기화 하지 않은 변수는 아직 메모리 번지 정보를 가지고 있지 않으므로 

변수를 통해 메모리 값을 읽을 수 없다.


변수 사용

변수는 출력문이나 연산식 내부에서 변수에 저장된 값을 출력하거나 연산할 때 사용

 

package Practice.chapter01.rec01;

public class VariableExample {
	
	public static void main(String[] args) {
		
		int hour = 3;
		int minute = 5;
		System.out.println(hour + "시간" + minute + "분");
		
		int totalMinute = (hour*60) + minute;
		System.out.println("총" + totalMinute + "분");
		
	}
}

 

 


변수값 교환

변수는 또다른 변수에 대입하여 값을 복사할 수 있다.


변수 사용 범위

자바의 모든 변수는 중괄호 { } 블록 내에서 선언되고 사용된다.

 

▶ Local Variable 지역변수

메소드 블록 내에서 선언된 변수

로컬 변수는 메소드 블록 내부에서만 사용 되고 메소드 실행이 끝나면 메모리에서 자동으로 없어진다.

변수는 자신이 선언된 위치로부터 자신이 속한 블록 내부에서만 사용할 수 있다.

 

▶ 변수를 선언할 때 주의할 점

    - 변수가 어떤 범위에서 사용될 것인지를 생각하고, 선언위치를 결정해야한다.

    - 메소드 블록 전체에서 사용하고 싶다면, 메소드 블록 첫머리에 선언한다.

    - 특정 블록 내부에서만 사용된다면 해당 블록 내에 선언한다.

 


기본타입 Primitive Type

기본타입은 정수, 실수, 논리값을 저장

▶ 정수타입 : byte, char, short, int, long

▶ 실수타입 : float, double

▶ 논리타입 : boolean 


정수타입

char : 음수값을 가질 수 없다.

 

▶리터럴 literal : 소스 코드에서 프로그래머에 의해 직접 입력된 값

정수 리터럴

프로그래머 계산기로 계산해보자

package chapter02.sec02.exam01;

public class IntegerLiteralExample {
	public static void main(String[] args) {
		int var1 = 0b1011; //0b = 2진수(binary)
		int var2 = 0206;   //0 = 8wlstn(octec)
		int var3 = 365;    // 기본수(Default) = 10진수(decimal)
		int var4 = 0xB3;   // 0x 으로 시작 = 16wlstn(hexadecimal : hex)
		
		System.out.println("var1 = " + var1);
		System.out.println("var2 = " + var2);
		System.out.println("var3 = " + var3);
		System.out.println("var4 = " + var4);
	}
}

 

128은 byte 타입 변수에 허용 범위를 초과했기 때문에 컴파일 에러가 발생한다.

128데이터는 short, int, long 타입에서 처리가능함

char 은 오류는 안 뜨지만 문자표현이기 때문에 숫자로는 나오지 않는다.

package chapter02.sec02.exam02;

// byte 타입 변수의 허용 범위를 이해하는 자바프로그램 예시
// byte 타입 변수의 허용 범위 = 
public class ByteExample {
	public static void main(String[] args) {
		byte var1 = -128;
		System.out.println(var1);
		byte var2 = -30;
		System.out.println(var2);
		byte var3 = 0;
		System.out.println(var3);
		byte var4 = 30;
		System.out.println(var4);
		byte var5 = 127;
		System.out.println(var5);
		long var6 = 128; //128데이터는 short, int, long 타입에서 처리가능함
		System.out.println(var6);
		
	}
}

▶ long : long 타입은 수치가 큰 데이터를 다루는 프로그램에서 주로 사용

              정수 리터럴이 int 타입의 허용범위를 초과할 경우 long 타입임을 컴파일러에게 알려야한다.

              정수 리터럴 뒤에 소문자 l 이나 대문자 L 을 붙이면 된다. 일반적으로 혼동을 피하기 위해 대문자 L을 사용한다.

 

 

Long example

 

int 타입인데 범위가 넘어간다는 오류가 뜸

뒤에 L을 붙이면 오류가 해제된다.

int 타입의 값 허용 범위 = -2, 147, 483, 648 ~ 2,147,483,647
long 타입의 값 허용 범위 = -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

package chapter02.sec02.eaam03;

public class LongExample {
	public static void main(String[] args) {
		
		long var1 = 10;
		System.out.println(var1);
		long var2 = 20L; //long 타입 데이터라는 것을 알려주기 위해 'L' 또는 'l'문자를 뒤에 붙여줍니다
		System.out.println(var2);
		long var3 = 1000000000000L;
		//int 타입의 값 허용 범위 = -2, 147, 483, 648 ~ 2,147,483,647
		// long 타입의 값 허용 범위 = -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
		System.out.println(var3);
	}

}

▶ char : 하나의 문자를 작은 따옴표( ' )로 감싼 것을 문자 리터럴 이라한다.

                문자 리터럴은 유니코드로 번환 되어 저장된다. 

 

char 타입

package chapter02.sec02.exam04;

public class CharExample {
	public static void main(String[] args) {
		
		char c1 = 'A'; //문자를 직접 변수에 저장 처리함
		System.out.println(c1); //A
		char c2 = 65; //10진수를 직접 변수에 저장 처리함
		System.out.println(c2); //A
		char c3 = '\u0041'; //16진수를 직접 변수에 저장 처리함
		System.out.println(c3); //A
		
		char c4 = '가';  // 문자를 직접 변수에 저장 처리함
		System.out.println(c4); // 가
		char c5 = 44032; // 10진수를 직접 변수에 저장 처리함
		System.out.println(c5); //가
		char c6 = '\uac00'; //16진수를 직접 변수에 저장 처리함
		System.out.println(c6); //가
		
		//char c7 = "가로수"; // "가로수" 문자열은 String 타입으로 처리해야함
		char c7 = "가로수"; 
		System.out.println(c7); 
	}
}

 

▶ String : 큰따옴표( " ) 로 감싼 문자 또는 여러개의 문자들은 유니코드로 변환 되지않는다.

                  큰따옴표( " )로 감싼 문자들을 문자열이라고 부른다.

                  String은 기본 타입이 아닌 클래스 타입이다!!

 

 

String

package chapter02.sec02.exam05;

public class StringExample {

	public static void main(String[] args) {
		String name = "장나라";
		System.out.println("저의 이름은" + name + "입니다!");
		String job = "프로그래머";
		System.out.println("저의 직업은" + job + "입니다!");
	}

}

 


ESCAPE 문자

문자열 내부에 역슬래시( \ ) 가 붙은 문자를 사용하는데 이것을 이스케이프 문자라고 한다.

이스케이프 문자를 사용하면 문자열 내부에 특정 문자를 포함할 수 있다.

예를 들어 "" 는 문자열 식별 기호인데 데이터로써 큰 따옴표를 사용하고 싶을 때는 이스케이프 문자를  \ 를사용한다.

package chapter02.sec02.exam06;

public class EscapeExamle {
	public static void main(String[] args) {
		
		System.out.println("번호\t이름\t직업"); //번호 이름 직업
		System.out.println("행 단위 출력\n");  // \역슬래시 줄바꿈이된다.
		System.out.println("행 단위 출력\n"); 
		System.out.println("우리는 \"개발자\" 입니다."); 
		System.out.println("봄 \\여름\\가을\\겨울"); 
	}
}

 


실수 타입 float double

타입 미스 오류가 떴다

3.14뒤에 float 인 f 를 붙이거나 변수값을 double로 변경한다.

package chapter02.sec02.exam07;

//float 와 double 타입
public class FloatDoubleExample {
	public static void main(String[] args) {
		
		//실수값 저장
		float var1 = 3.14f;
		System.out.println(var1); //3.14
		double var2 = 3.14;
		System.out.println(var2); //3.14

		//정밀도 테스트
		float var3 = 0.1234567899123456789f;
		System.out.println(var3); //0.12345678
		double var4 =  0.1234567899123456789;
		System.out.println(var4); //0.123456789
		
		//알파벳 소문자 e 또는 대문자 E가 포함되어 있는 숫자 리터럴은
		//지수와 가수로 표현된 소수점이 있는 10진수 실수로 인식합니다.
		double var5 = 3e6; // e6은 10에 6승을 의미함
		System.out.println(var5); //300000.0 
		float var6 = 3e6F;
		System.out.println(var6);
		double var7 = 2e-3; //e-3은 10에 -3승을 의미함
		System.out.println(var7); //0.002
	}
}

논리타입 boolean

true / false 참과 거짓을 의미

1byte 크기

boolean타입 변수는 주로 두가지 상태값에 따라 조건문과 제어문의 실행 흐름을 변경하는데 사용한다.

package chapter02.sec02.exam08;

public class BooleanExample {
	public static void main(String[] args) {
		
		//boolean 타입의 stop 변수 선언과 동시에 true 값으로 초기화 처리함
		boolean stop = true;
		if(stop) {
			System.out.println("중지합니다");
		}else {
			System.out.println("시작합니다");
		}
	}
}
728x90
반응형