JAVA_변수 (Variable)

JW__1.7·2022년 7월 22일
0

JAVA 공부일지

목록 보기
1/30

기본구조

  • 클래스 : 서로 관련 있는 변수나 메소드의 집합이다.
    객체를 만들기 위한 틀 또는 설계도와 같은 의미로 사용된다.
  • 메소드 : 객체의 행동을 구현한다.
public class Basic {
	public int plus(int a, int b) {
		return a + b;
	}
}

main 메소드 구조

  • JVM (Java Virtual Machine)이 실행하는 기본 메소드 실행하고자 하는 코드는 main 메소드에 작성해야 한다.
  • 자바 프로젝트를 실행할 때 반드시 필요하다.
public class Hello {
	public static void main(String[] args) {
		
		String message = "Hello World";
		System.out.println("message");
	}
}

식별자 (Identifier)

- 클래스, 변수, 메소드 등에 붙이는 이름
- 대소문자를 구별 (cat과 Cat은 다른 식별자이다.)
- 한글 사용 가능 (테스트 코드를 제외하면 한글 사용X)
- 숫자 사용 가능 (첫 글자로 사용X, 숫자로만 구성X)
- 특수문자 2가지( _ , $ ) 사용 가능 ($는 거의 사용X)
- 길이 제한 없다.
- 자바에서 사용 중인 키워드 사용 불가

가능한 식별자불가능한 식별자
name1block 숫자로 시작
section2one% 사용할 수 없는 특수문자(%)
super_manmy home 사용할 수 없는 특수문자(공백)
true 이미 사용중인 키워드
  • 자바키워드

이름 규칙 (Naming Convension)

  • Upper Camel Case

    각 단어의 첫 글자는 대문자, 나머지는 소문자로 표기
    클래스 이름 규칙
    ex. MyHome, MyProject 등

  • Lower Camel Case

    각 단어의 가장 첫글자는 소문자, 이후에는 Upper Camel Case와 동일
    변수, 메소드 이름 규칙
    ex. myHome, myProject 등

  • Snake Case

    모두 대문자, 각 단어를 밑줄(_)로 연결
    상수 이름 규칙
    ex. MY_HOME, MY_PROJECT 등

데이터 타입 (Data Type)

  • 기본 타입 (Primitive Type) 8개 - 데이터를 저장하는 타입
    : 실제 연산에 사용되는 변수이다.

  • 참조 타입 (Reference Type) - 데이터의 참조값(주소)를 저장하는 타입
    : 기본형 변수를 사용하여 사용자가 직접 만들어서 사용하는 변수이다.
    • 배열 (Array)
      배열을 이용해서 여러 개의 데이터를 한 번에 나타낸다.
      예시 : int[] points = new int[10];

    • 클래스 (Class)
      각종 클래스를 이용해서 객체를 나타낸다.
      예시 : String message = "안녕하세요";
      - String 클래스를 이용해서 문자열을 표현

    • 인터페이스 (Interface)
      각종 인터페이스를 이용해서 구현 클래스를 표현한다.
      예시 : List<String> hobbies = new ArrayList<>();
      - List 인터페이스를 이용해서 ArrayList 클래스를 표현

변수 (Variable)

  • 프로그램에서 사용하는 값을 저장하기 위한 공간
  • 데이터 타입 다음에 변수 이름을 작성해서 변수를 선언(declare)한 뒤 사용할 수 있다.
  • 변수에 저장된 값은 언제든지 다른 값으로 바꿀 수 있다.

변수선언

  1. 변수의 선언만 하고, 나중에 변수를 초기화하는 방법
  • int a, b, c; , String str;
  1. 변수의 선언과 동시에 초기화하는 방법
  • 데이터타입 변수이름 = 초기값;
    int price = 5000; , char name = "L"

논리(Boolean) 타입

boolean isGood = true;
boolean isAlive = false;

문자(Character) 타입 : 1글자

char ch1 = 'A';
char ch2 = '홍';
char ch3 = '\n';	// 라인 피드 - 줄바꿈
char ch4 = '\t';	// 탭
char ch5 = '\'';	// 작은 따옴표
char ch6 = '\"';	// 큰 따옴표

정수 타입

int score = 100;
long view = 123456789000L;
Long 타입 선언할 때 주의사항

4Byte 넘어가는 타입의 값은 마지막에 "L" 또는 "l"을 추가해야 한다.
이유는 자바는 기본적으로 모든 숫자를 4Byte에 넣는데, 4Byte가 초과하는 경우 "L" 식별자를 통해 Long 타입으로 인식한다.

실수 타입

double discount = 0.5;
double pi = 3.1415926535;

문자열 타입

String country = "korea";	// 자바가 쉬운 사용법을 지원
String name = new String("자바");
기본 타입(Primitive type)은 아니지만, 자주 사용하기 때문에 기본 타입처럼 사용할 수 있도록 자바가 지원한다.

상수 (Constant Variable)

  • final 키워드를 추가한 변수
  • 변수 선언과 동시에 반드시 초기값을 지정해야 한다.
  • 실행 중 저장된 값을 변경하는 것이 불가능하다.
  • 변수와 구분하기 위해 대문자를 이용한 Snake Case 방식의 Naming 사용
  • 상수선언 데이터타입 상수이름 = 초기값;
    예시 : final double PI = 3.141592; , (PI = 1.5;는 오류 발생!)

리터럴 (Literal)

소스 코드 내에서 실제 입력된 값

1. 정수 리터럴

  • 소수점이 없고, 10진수
    리터럴 : 25 -100 , 예시 : int n = 25; int n = -100;
  • 0 으로 시작, 8진수
    리터럴 : 025 -02 , 예시 : int n = 025; int n = -02;
  • 0x 로 시작하며, 0 ~ 9 또는 A ~ F 또는 a ~ f 로 구성, 16진수
    리터럴 : 0x25 0xAC5 , 예시 : int n = 0x25; int n = 0xAC5;
  • 0b 로 시작하며, 2진수
    리터럴 : 0b1010 , 예시 : int n = 0b1010;
  • long 타입 리터럴은 숫자 뒤에 L 또는 l 을 붙여 표시한다.
    리터럴 : 25L , 예시 : long n = 25L;

2. 실수 리터럴

  • 소수점이 있고, 10진수
  • double 타입
    리터럴 : 3.14 -0.21 , 예시 : double n = 3.14; double n = -0.21;
  • float 타입
    리터럴 : 3.14F , 예시 : float n = 3.14F;

3. 문자 리터럴

작은 따옴표 ( ' ' ) 로 묶은 하나의 문자
리터럴 : 'a' '가' , 예시 : char ch = 'a'; char ch = '가';

  • 이스케이프(Escape)
    백슬래시(\, \) 뒤에 한 문자가 오는 조합으로 단일 문자로 인식 (문자열 인식도 가능)

4. 문자열 리터럴

  • 리터럴로 생성되는 문자열은 JVM이 관리
  • 동일한 문자열이 발생되면 JVM이 기존에 생성한 문자열을 재사용
  • 큰 따옴표( " " )로 문자열 표현
    • 문자열 리터럴 내부에서도 이스케이프 문자를 사용할 수 있다.
      리터럴 : "apple" , 예시 : String fruit = "apple";
public class StringLiteral {
	public static void main(String[] args) {
		String str1 = "hello"; 
        String str2 = "hello";
		System.out.println(str1 == str2);
	}	// JVM에 의해서 생성된 문자열 "hello"를 공유하므로 true 반환
}

5. 논리 리터럴

리터럴 : true false , 예시 : boolean isNum = true;

6. 그 외 리터럴

  • String 에서 사용 가능
    리터럴 : null , 예시 : String message = null;

상수와 리터럴(Literal) 차이점

상수와 리터럴 둘 다, 변하지 않는 값(데이터)를 의미한다.
좀 더 자세히 말하면 상수는 변하지 않는 변수를 뜻한다.
리터럴은 실제값, 즉 변수에 넣는 변하지 않는 데이터를 의미한다.

int a = 10;
int 앞에 final를 붙이면, a는 상수가 된다. 여기서의 리터럴은 10이다. 즉, 10과 같이 변하지 않는 데이터가(boolean, char, int, long, double 등) 리터럴(literal)이다.

참조 타입의 변수

  • 메모리는 1바이트마다 고유의 주소값을 가지는데 이것을 참조(Reference)라고 한다.
  • 참조 타입은 값을 저장하지 않고 메모리의 주소값을 저장한다.
    (C/C++의 포인터 개념)
  • 참조값은 16진수로 구성되어 있다.
  • 참조 타입의 값은 임의로 수정할 수 없다.
  • 데이터타입 변수이름 = 값;
    예시 : String name = "tom";

0개의 댓글