변수 / 기본자료형 / ..etc


변수(Variable)


  • 하나의 값을 저장할 수 있는 메모리 공간, 특정 메모리 영역에 이름을 붙이고 값을 저장

  • 변수의 선언 : 변수타입 변수이름;
    변수의 초기화 : 변수이름 = 값;
    변수의 선언과 초기화 : int a = 1;

  • 변수의 타입은 저장할 값의 타입에 의해 결정된다.

  • 변수명 :
    • 영문자or숫자, 특수문자는 &, _ 만 사용
    • 숫자로 시작할 수 없음
    • 자바 예약어는 사용할 수 없음
    • 변수명 길이는 상관 없으니 언제 누가 보더라도 뭐하는 변수인지 이해할 수 있도록!
    • Camel Case : 소문자로 시작, 두번째 단어부터 첫글자는 대문자 (ex) int numberOfStudents;)
  • +) 상수(constant) : final 키워드 사용하여 선언 / “변하지 않는 값을 반복하여 사용할 때” (값이 변하더라도 선언한 부분만 수정하면 되기 때문에 good) / 한번 초기화 하면 값 바꿀 수 없다 / 주로 대문자로 표현 (ex) final int MAX_NUM = 100;)



기본자료형 (Primitive Data Type)


  • 리터럴(실제 값)을 저장
    • 참조형(Reference type) : 메모리 주소 값을 저장(4byte or 8 byte)
    • 리터럴(literal) : 그 자체로 값을 의미 (ex) int a = 100; a=변수, 100=리터럴)


    • 문자
      • char(하나의 문자만을 저장할 수 있음) 'A' : 2byte문자 != "A" : 문자열(String클래스)
    • 숫자
      • 정수 : byte, short, int(4byte), long(8byte, 숫자 뒤에 L을 써서 long형임을 표시)
      • 실수 : float(4byte, 숫자 뒤에 f), double(8byte)
    • 논리형
      • boolean : true/false



아스키코드(ASCII) / 유니코드(Unicode)


  • 아스키코드 : 1byte(=8bit)의 데이터를 사용
char ch = 'A';
System.out.println((int)ch); //강제형변환 > 65 출력

char ch2 = 66;
System.out.println(ch2); //B 출력
  • 유니코드 : 아스키코드로는 모든 언어를 표현하는데 한계 -> 전 세계 언어의 문자를 정의하기 위한 국제 표준 코드 등장



Local Variable Type Inference


  • 지역변수 자료형 없이 사용하기 (JAVA10부터 지원)

  • 추론 가능한 변수에 대한 자료형 선언 X

  • 한 번 선언, 추론된 변수에 이후 다른 타입의 값을 대입할 수 X

public class LocalVariableInfer {

	public static void main(String[] args) {

		var i = 10;
		var j = 10.0;
		var str = "test";
		
		System.out.println(i);
		System.out.println(j);
		System.out.println(str);

		str = "hello"; 	//가능
//		str = 3; 		//불가능
	}

}



두 수의 값 교환하기


두 변수의 값을 바꾸기 위해서는 값을 담을 하나의 변수가 더 필요하다! => 임시 변수(temp) 만들기

int x = 10, y = 20;
int temp;

temp = x;   //x의 값을 temp에 저장
x = y;      //x의 값을 y에 저장
y = temp;   //temp의 값을 y에 저장

활용 문제 : 숫자 내림차순 정렬하기

Categories:

Java