> For the complete documentation index, see [llms.txt](https://leeans-dev-book.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://leeans-dev-book.gitbook.io/docs/lecture/java/section1./undefined-1.md).

# 자료형과 변수

## 변수

<figure><img src="https://3814826491-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJyHOwztPxBT3bLpisjCt%2Fuploads%2Fz7xGkqhYS7pPG7tlpGn4%2Fjava.png?alt=media&amp;token=545233b0-5dee-4f7a-bef1-c99ca931ca81" alt=""><figcaption><p>변수는 값을 넣을 수 있는 빈 상자와 같다.</p></figcaption></figure>

<mark style="color:red;">**"데이터의 저장과 참조를 위해 할당된 메모리 공간에 붙인 이름"**</mark>

<figure><img src="https://3814826491-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJyHOwztPxBT3bLpisjCt%2Fuploads%2FQxGKsk8IrldNyk9boChU%2FScreenshot_32.png?alt=media&amp;token=f3ee49bc-a301-404a-bee7-dd989c6a8fbd" alt=""><figcaption></figcaption></figure>

## 자료형

<figure><img src="https://3814826491-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJyHOwztPxBT3bLpisjCt%2Fuploads%2FlIzXzVYqyDhgdhMwXnOB%2FScreenshot_30.png?alt=media&amp;token=7a8350c5-de80-4407-b782-a144fedc0097" alt=""><figcaption></figcaption></figure>

#### 참고. 디버깅 모드

<figure><img src="https://3814826491-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJyHOwztPxBT3bLpisjCt%2Fuploads%2FCvHmObw9VZ5oyxzdXnXJ%2FScreenshot_31.png?alt=media&amp;token=ee0df470-0787-45af-9977-6ce2e1827e80" alt=""><figcaption></figcaption></figure>

소스 코드 앞에 중단점 (break point) 를 찍고 디버깅모드 실행 버튼을 클릭하면&#x20;

중단점에서 멈춰서 변수값을 확인 할 수 있다.

디버깅 모드의 더 많은 기능은 아래 링크를 확인!

{% embed url="<https://jojoldu.tistory.com/149>" %}

```java
byte a = 111;
byte a = 222; /// 재선언 불가능
a = 20;  //재할당 가능

//자바는 정적 자료형 
//처음 선언할 때의 자료형이 달라질 수 없음 
a = false;
```

```java
char ch1, ch2, ch3; // 한번에 선언 가능

char ch4 = 'A', ch5 = 'B', ch6 = 'C'; //초기화 까지 가능 


//System.out.println(ch1);   초기화전에는 사용 불가
```

```java
//final 키워드 : 변수의 값을 못바꾸게 만듦
//final 변수는 보통 대문자로 
final int NUMBER = 1;
NUMBER = 2;
```

## 자바 코딩컨벤션

* 클래스는 대문자로 시작
* 상수는 대문자와 *사용 (ex. PI ,* COMPANY\_NAME)
* 변수나 메서드는 camelCase 사용&#x20;
* 변수명에 예약어는 사용할 수 없다. (ex. int double;)

### 리터럴(literal)

리터럴이란 프로그램에직접 표현한 값을 말한다.&#x20;

정수리터럴

```java
int n = 15;     //10진수
int m = 0x15;   //16진수
int b = 0b0101; //2진수
long g = 24L;   //정수 리터럴을 long 타입으로 지정하고자 하면 숫자뒤에 'L', 'l'을 붙여야 한다.
```

실수 리터럴

```java
double s = 12.0;
double d = 0.1234;
double e = 1234E-4;
float f = 0.1234f; // 'f' 'F'를 붙이면 float타입으로 강제 변환
```

문자 리터럴

```java
char a = 'W';
char b = '글';
char c = \uae00; //유니코드
```

<figure><img src="https://3814826491-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJyHOwztPxBT3bLpisjCt%2Fuploads%2Fi3ejgZk8bVoTGhbsPxEo%2Fimg.png?alt=media&amp;token=05288bef-9ed8-415d-b6a9-59883bba539f" alt=""><figcaption></figcaption></figure>

논리타입 리터럴

```java
boolean a = true;
boolean b = 10 > 0;
while(true) // if문이나 while 문 등에 사용된다.
```
