본문 바로가기
코딩/Java메모장

(JAVA)변수 선언, 타입, 타입 변환

by 쟈크손 2023. 1. 2.

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

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

 

변수 이름의 규칙

1. 첫 번째 글자는 문자이거나'$', '_'이어야 하고 숫자로 시작할 수 없다.

2.영어 대소문자를 구분한다.

3.첫 문자는 영어 소문자로 시작하되, 다른 단어가 붙을 경우 첫 문자를 대문자로 한다.(오류는 아님)

4.문자 수으 제한은 없다.

5.자바 예약어는 사용할 수 없다.

 

에약어: 이미 해당 프로그래밍 언어에서 의미를 갖고 사용되고 있는 단어.

 

변수선언

ex)

int a = 0;

=>int는 변수 타입 a 는 변수 이름 0은 변수에 담을 값

int b;

 

로컬변수

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

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

 

변수 기본 타입

정수 타입

1.byte => 1byte(8bit) => -2^7~(2^7-1)

2.char => 2byte(16bit) => 0~65535(유니코드) 음수는 불가능하고 문자 하나를 표현할때 사용한다. 문자는' '로 감싼다 

3.short => 2byte(16bit) => -2^15~(2^15-1)

4.int => 4byte(23bit) => -2^31~(2^31-1)

5.long => 8byte(64bit) => -2^63~(2^63-1) 정수 뒤에 l이나 L을 붙여주어야한다.ex) 123L, 123l

 

실수 타입

1.float => 4byte(32bit) => (1.4x10^(-45))~(3.4x10^38) => 소수점 이하 7자리 => 실수 뒤에 f나 F를 붙여주어야 한다. ex) 0.123f, 0.123F

2.double => 8byte(64bit) => (4.9x10^(-324)~1.8x10^308) => 소수점 이하 15자리

 

실수형 타입 표현에서 e문자나 E문자가 포함 되어 있는경우

실수en => 실수 x 10^n으로 생각하면 된다.ex) 12e3 => 12 x 10^3 => 12000.0ex) 12E-3 => 12x10^(-3) => 0.00012

 

 

논리 타입

1.boolean => true, false

 

 

 

String타입과 이스케이프 문자

변수에 문자열 저장

-문자 하나를 저장하기 위해서는 char타입 변수를 사용하나 문자가 아닌 문자열을 저장하기 위해서는 String타입을 사용한다.(String은 기본 타입이 아니다.)

-문자열을 " "로 감싼다.

 

이스케이프 문자

-문자열 내부에 특정 문자를 포함시킬 수 있게하거나 출력을 제어할 수 있게 하는 문자(ex)'나 " 를 포함시키고 싶거나 엔터 나 탭만큽 띄우고 싶을때 사용됨)

 

자주 사용되는 이스케이프 문자

\t :탭만큼 띄움

\n : 줄 바꿈

\r : 캐리지리턴

\" : "출력

\' : '출력

\\ : \출력

\u16진수: 16진수 유니코드에 해당하는 문자 출력

 

 

 

타입 변환

자동 타입 변환: 자동으로 타입 변환이 일어나는 것

-값의 허용 범위가 작은 타입이 허용 범위가 큰 타입으로 저장될 때 발생

ex)

byte = 10; =>byte 타입 변수 a에 10을 저장

int b = a; => byte 타입 변수 a에 저장된 10을 int 타입 변수 b에 복사해서 저장

이때 10은 byte타입의 값이었으나, 복사 저장할 때 int타입의 값으로 변환되었다.

 

byte < short < int < long < float < double

char타입은 불가능(음수 포함 여부 때문이다.)

 

강제 타입 변환(캐스팅):큰 허용 범위 타입을 작은 허용 범위 타입으로 강제로 나눠서 저장하는 것

ex)

int a = 10;

byte b = (byte) a;

-정수 타입에서 char타입도 가능

-실수에서 정수로 변환할때 소수점 아래자리는 사라진다. ex) 3.14 => 3

 

문자열을 기본 타입으로 강제 타입 변환

 String => byte

-String str = "10";

-byte value = Byte.parseByte(str);

 

 String => short

-String str = "200";

-short value = Short.parseShort(str);

 

 String => int

-String str = "30000";

-int value = Int.parseInt(str);

 

 String => long

-String str = "40000000000";

-long value = Long.parseLong(str);

 

 String => float

-String str = "12.345";

-float value = Float.parseFloat(str);

 

 String => double

-String str = "12.345";

-double value = Double.parseDouble(str);

 

 String => boolean

-String str = "true";

-boolean value = Boolean.parseBoolean(str);

 

기본 타입의 값을 문자열로 변경

String str=String.valueOf(기본타입값);

댓글