JAVA/수업 복습

자바 공부기록 06 - 변수의 데이터타입, 선언, 대입

본이qq 2022. 4. 1. 21:13

ⓜ정수형 : byte(1), short(2), int(4 - 기본형), -21억 ~ 21억, long(8)

ⓜ실수형 : float(4), double(8 - 기본형)
 (기본형이란 별도의 표시없이 쓰여지는 정수나 실수가 int와 double로 인식되어 사용된다는 뜻)
    ex) 100(int형), 100L(Long형), 123.12(double형) 123.12F(float형)
  byte a = 300; //에러(byte가 담을 수 있는 크기는 더 작음 
  float a = 123.12; //에러(뒤에 F를 붙여줘야함)

  1byte=8bit(00000000 ~ 11111111)

  00000000 - A 00000001 - B ..... 256개의 문자 중 하나를 저장가능  7bit : 128개
  15 bit = 32768개    16bit = 65536개   

ⓜ문자형: char(2 - 유니코드 지원)    

ⓜ진위형: boolean(1-true/false의 값만 저장할 수 있음)
ⓜ문자형: String(클래스, 정해진 크기가 없음)

 

 

ⓜ변수의 다양한 선언(생성) 방법

 

1. 변수 선언(생성)후 값을 대입

1
2
3
4
5
6
7
8
9
package days05;
 
import java.util.Scanner;
 
public class Variable06 {
 
    public static void main(String[] args) {
int n1;
        n1 = 10;}}
 
cs

2. 변수의 선언과 값의 대입을 동시에 처리

 

1
2
3
4
5
6
7
8
9
package days05;
 
import java.util.Scanner;
 
public class Variable06 {
 
    public static void main(String[] args) {
        int n2 = 20;}}
 
cs

3. 다수개의 변수를 한번에 선언하는 방법(동일한 자료형만 가능)

 

1
2
3
4
5
6
7
8
9
package days05;
 
import java.util.Scanner;
 
public class Variable06 {
 
    public static void main(String[] args) {
        int n3,n4,n5;}}
 
cs

4. 다수개의 변수를 값을 대입하면서 생성하는 방법

 

1
2
3
4
5
6
7
8
9
package days05;
 
import java.util.Scanner;
 
public class Variable06 {
 
    public static void main(String[] args) {
        int n6 = 60, n7 = 70;}}
 
cs

 

5. 처음부터 모든 변수에 값을 대입할 필요는 없음

1
2
3
4
5
6
7
8
9
package days05;
 
import java.util.Scanner;
 
public class Variable06 {
 
    public static void main(String[] args) {
        int n8, n9 = 90, n10;}}
 
cs

-변수는 선언 이후라도, 값이 대입되지 않으면 사용이 불가

-변수의 값은 여러번 대입할 수 있으며, 저장되는 값은 가장 최근, 마지막에 저장한 값이 저장되어 사용

-그 이전에 저장되는 값은 소멸 - 한번에 하나씩만 저장할 수 있는 단점

 

 

 

ⓜchar형 데이터는 컴퓨터 저장장치에 저장될때, 이진수 코드로 저장됩니다
  문자를 저장하기 위한 코드체계에 의해 조합된 코드(ASCII 코드)입니다.
  이를 십진수로 변환하면 정수로도 변환이 가능합니다.
  위의 내용을 기초로 한 결과 정수와 문자간 호환성이 발생됩니다.

1
2
3
4
5
6
7
8
9
10
11
 
public class Variable06 {
 
    public static void main(String[] args) {
        char ch = 'A';
        
        int intchar = ch;
        
        System.out.printf("ch -> 정수형 변수에 저장 %d\n", intchar);
        System.out.printf("ch -> %c\n", ch);
        System.out.printf("ch -> 정수형 변수값으로 임시변환 %d\n", (int)ch);}}
cs

 

 

1
2
3
4
5
6
7
8
9
10
11
12
 
public class Variable06 {
 
    public static void main(String[] args) {
        ch = 'B';        
        System.out.printf("'B' -> 정수값으로 캐스팅 %d\n", (int)ch);
        System.out.printf("'B' -> 정수값으로 캐스팅 %d\n", (int)'B');
        System.out.printf("'C' -> 정수값으로 캐스팅 %d\n", (int)'C');
        System.out.printf("'Z' -> 정수값으로 캐스팅 %d\n", (int)'Z');
        System.out.printf("'a' -> 정수값으로 캐스팅 %d\n", (int)'a');
        System.out.printf("'z' -> 정수값으로 캐스팅 %d\n", (int)'z');
        System.out.printf("'0' -> %d, '9' -> %d\n", (int)'0', (int)'9');}}
cs

 

-대문자 B 값에 32를 더하여 소문자 b 로 변경할 수 있다.

 

1
2
3
4
5
 
public class Variable06 {
 
    public static void main(String[] args) {
        System.out.printf("%c + 32 -> %c\n", ch, ch + 32);
cs

 

 

-아라비아 기호 '8' 에서  아라비아 기호 '0' 을 빼면, 정수 8이 결과로 나온다

 

1
2
3
4
5
 
public class Variable06 {
 
    public static void main(String[] args) {
        System.out.printf(" '8'-'0' -> %d\n"'8' - '0' );
cs

 

ⓜ실수형 변수의 초기화

 -자바에서 모든 실수들은 별도의 표기가 없으면, 기본적으로 double  타입으로 인식합니다

 -float 타입으로 값을 저장하기 위해서는 float 형 변수를 선언하고  float  형 데이터를 저장합니다.

 -float 변수에  double 형 데이터 입력 -> 에러

 -float f1 = 1.123;  // 에러

 -float  변수에   float  형 데이터 입력 -> 정상실행

1
2
3
4
5
public class Variable06 {
 
    public static void main(String[] args) {
        double f3 = 1.123;
        float f4 = (float)f3;
cs

 

-float 변수에  캐스팅 연산을 적용한 double  형 데이터 입력 -> 정상실행

 

1
2
3
4
5
public class Variable06 {
 
    public static void main(String[] args) {
        double f3 = 1.123;        
        float f4 = (float)f3;
cs

-용량이 큰 자료형(double)에  작은 자료형(float) 데이터 대입  -> 정상실행

1
2
3
4
5
public class Variable06 {
 
    public static void main(String[] args) {
        float f5 = 123.123F;        
        double f6 = f5;  // 캐스팅 연산이 필요 없습니다
cs

ⓜ정수들의 값의 대입

 

1
2
3
4
5
public class Variable06 {
 
    public static void main(String[] args) {
        int a = 100;        
        byte b1 = (byte)a;
cs

 -위처럼 int변수값(큰값)을 byte형식의 변수 b1(작은값)에 대입하려면 캐스팅이 필요하다

 

1
2
3
4
public class Variable06 {
 
    public static void main(String[] args) {
        byte b2 = 123;
cs

 -하지만 일반값에 의한 대입은 캐스팅이 필요가 없다(정수데이터에 한해서만 허용)

 -용량이 큰 변수값을 용량이 작은 변수값으로 넣으려고 하면 캐스팅 연산 필요

 -반대의 경우는 문제없이 모든 실행이 가능