본문 바로가기
기초JAVA

변수

by 현닝이 2022. 7. 4.

--참고--

JDK -> java development kit (자바 개발도구 / 개발용+ jre)

JRE -> java runtime environment (라이브러리&명령등 컴파일된 java를 실행하는데 필요한 패키지)

 

 

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

변수를 선언하고 변수에 값을 지정 - > 하면 메모리에 값을 저장 할 수 있음

ex) int age; double value;

     int x,y,x;

 

변수이름 명명규칙

1.첫 번재 글자는 문자이거나 달러표시,_이어야 함 

  숫자로 할 수 없음

2.영어 대소문자를 구분

4.첫 문자는 영어 소문자로 시작하되, 다른 단어가 붙을 경우 첫 문자를 대문자로 함

5.문자 수 (길이)의 제한은 없음

6.자바 예약어는 사용할 수 없음

 

<예약어>

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

<변수 값 저장>

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

오른쪽의 값을 왼쪽의 변수에 저장

ex) int score

     scores = 90; 

지정되는 값에 따른 분류 타입의 종류
정수  int , long
실수  float , double
논리  boolean

데이터 타입- 기본형 : primitive(기본) type / 원시타입 - 처음부터 만들어져 있던 타입 - 정수 ,실수 ,논리 

                   - 참조형 : reference type 

 

컴퓨터에서 정보를 처리하는 가장 작은 단위 -> bit : 0,1 로 구성되어 있음 

8bit -> 1byte  2의 8승 -> -128 부터 127 까지 0을 포함한 256개

 

<리터럴(literal)>

-소스 코드에서 프로그래머에 의해 직접 입력된 값

-다음 경우를 자바에서 정수로 인식

package chapter02;

public class interlitaeralexample {
	public static void main(String[] args) {
	int var1 = 0b1011;      //2진수
	int var2 = 0206;          //8진수
	int var3 = 365;            //10진수
	int var4 = 0xB3;          //16진수
	
	System.out.println("var1:"+var1);
	System.out.println("var2:"+var2);
	System.out.println("var3:"+var3);
	System.out.println("var4:"+var4);
	}

}

<long 타입 변수>

정수 리터럴이 int타입의 허용범위 이내라면  L 안붙여도  o

그러나 - int 타입 허용범위 넘어가면 L 붙여야함

 -(int)의 허용범위 (2147483647)

package chapter02;
public class longexample {
	public static void main(String[] args) {
		long var1 = 10;
		long var2 = 20L;
//long var3 = 1000000000000; 정수 리터럴 (int)의 허용범위 (2147483647)를 넘었으므로 L을 붙어야함
		long var4 = 1000000000000L;
		
		System.out.println(var1);
		System.out.println(var2);
		System.out.println(var4);
	}
}

 

<char 타입>

-하나의 문자를 저장할 수 있는 타입 

-하나의 문자를 작은 따옴표(‘)로 감싼 것을 문자리터럴 이라고 하고

 문자리터럴은 유니코드로 변환되어 저장 

(유니코드는 문자를 2byte로 표현할 수 있는 숫자)

-작은 따옴표로 감싼 문자 리터럴은 유니코드로 변환되어 저장 -> char 타입은 정수 타입

-유니코드는 정수이므로 char도 정수타입에 속함 따라서 char 변수에는 ‘로 감산 문자가 아닌

10진수 또는 16진수형태로도 유니코드 저장 가능

package chapter02;

public class charexample {
public static void main(String[] args) {
	char c1='A';           //문자를 직접 저장
	char c2=65;           //10진수로 저장
	char c3='\u0041';   //16진수로 저장
	
	char c4='가';           //문자를 직접 저장
	char c5=44032;      //10진수로 저장
	char c6 = '\uac00';  //16진수로 저장
	
	System.out.println(c1);
	System.out.println(c2);
	System.out.println(c3);
	System.out.println(c4);
	System.out.println(c5);
	System.out.println(c6);
	
}
}

 

<String 타입>

-큰따옴표(“)로 감싼 문자열을 저장할 수 있는 타입

 (“)로 감싼 문자 또는 여러개의 문자들은 유니코드로 변환x

-큰따옴표로 감싼 문자들을 문자열이라함

-문자열은 char타입에 저장 할 수 없음 !

‘-’ 작은 따옴표는 -> char

“-” 큰 따옴표는    -> 문자열 (String)

 

<실수 타입> 

타입 메모리 사용크기  정밀도
 (소수점 이하 자리)
float

4byte (32bit)

7자리
double 8byte (64bit)

15자리

*소스 코드에서 소수점이 있는 숫자 리터럴은

 10진수 실수로 인식함

 ex)0.25   -3.14 

 

*알파벳 소문자e 또는 대문자 E가 포함되어 있는 숫자 리터럴은

 소수점이 있는 10진수 실수로 인식

ex)  5e2 -> 5.0 x 102  = 500.0

                  0.12E-2 x 10-2 = 0.0012



*자바는 실수 리터럴을 기본적으로 double타입으로 해석

  때문에 double타입 변수에 저장해해야함

 

*실수 리터럴을 float타입 변수에 저장하면 컴파일 에러 발생

*실수 리터럴을 float타입으로 저장하고 싶으면 

  뒤에 소문자 f 또는 대문자 F 붙여 컴파일러가 float타입임을 알 수 있게 해야함

 

ex) float var = 3.14;    //컴파일 에러 발생

      float var = 3.14f;   //3.14 출력


*double 타입은 소수점 이하15자리를 허용하기 때문에 정확한 데이터 저장이 가능

package chapter02;

public class floatexample {
public static void main(String[] args) {
//실수값 저장
	//float var1= 3.14;
	float var2 = 3.14f;
	double var3 = 3.14;
	
	//정밀도 테스트
	float var4 = 0.1234567890123456789f;
	double var5 = 0.1234567890123456789;
	
	System.out.println("var2:"+ var2);
	System.out.println("var3:"+ var3);
	System.out.println("var4:"+ var4);
	System.out.println("var5:"+ var5);
	
	//e 사용하기
	double var6 = 3e6;
	float var7 = 3e6f;
	double var8 = 2e-3;
	System.out.println("var6:" + var6);
	System.out.println("var7:" + var7);
	System.out.println("var8:" + var8);

 

<불린boolean 타입>

-참과 거짓을 의미하는 논리 리터럴  true 와 false 를 사용

-논리 리터럴은 1byte 크기의 boolean 타입 변수에 저장

 ex)boolean stop = true;

     boolean state = false;

 

- 두 가지 상태값에 따라  제어문의 실행 흐름을 변경하는데 사용

package chapter02;

public class booleanexample {
public static void main(String[] args) {
	boolean stop = true;
	if(stop) {
		System.out.println("중지합니다");
	}else {
		System.out.println("시작합니다");
	}
}
}

 

'기초JAVA' 카테고리의 다른 글

Scanner  (0) 2022.07.07
문자열  (0) 2022.07.07
변수 타입변환  (0) 2022.07.07