JAVA/개념

[JAVA] 01. 변수(Variable)

밍글링글링 2017. 7. 28.
728x90
1. 변수(Variable)란?
변하는 수?
하나의 값을 저장할 수 있는 기억공간
 
2. 변수의 타입(Data type)
값 - 문자(char)
    - 숫자: 정수(byte, short, int, long), 실수(float, doulbe)
    - 논리(boolean)
 
기본형(Primitive type)
8개(boolean, char, byte, short, int, long, float, double)
- 실제 값을 저장
논리형 - true와 false 중 하나를 값으로 갖으며, 조건식과 논리적 계산에 사용된다.
문자형 - 문자를 저장하는데 사용되며, 변수 당 하나의 문자만을 저장할 수 있다.
정수형 - 정수 값을 저장하는데 사용된다. 주로 사용하는 것은 int 이며,
            byte는 이진데이터를 다루는데 사용되며,
            short는 c언어와의 호환을 위해 추가되었다.
실수형 - 실수 값을 저장하는데 사용된다. float 와 double이 있다.
 
논리형 boolean(크키1)
문자형 char(크키2)
정수형 byte(크기1) short(크기2) int(크기4) long(크기8)
실수형 float(크기4) double(크기8)
 
참조형(Reference type)
- 기본형을 제외한 나머지(Strng, System 등)
- 객체의 주소를 저장(4byte, 0x00000000~0xffffffff)

 

3. 변수의 선언방법
타입 변수명;
int score;
score = 100;
int score = 100;
String str = "";
str = null;
 
4. 명명규칙 - 문법
1. 대소문자가 구분되며 길이에 제한이 없다.
- True와 true는 서로 다른 것으로 간주된다.
2. 예약어(Reserved word)를 사용해서는 안된다.
- true는 예약어라 사용할 수 없지만, True는 가능하다.
3. 숫자로 시작해서는 안 된다.
-top10은 허용하지만, 7up는 허용되지 않는다.
4. 특수문자는 '_'와 '%'만을 허용한다.
- $harp는 허용되지만 S#arp는 허용되지 않는다.
 
4. 명명규칙  - 관례
1. 클래스 이름의 첫 글자는 항상 대문자로 한다.
- 변수와 메서드 이름의 첫 글자는 항상 소문자로 한다.
2. 여러단어 이름은 단어의 첫 글자를 대문자로 하낟.
-lastIndexOf, StringBuffer
3. 상수의 이름은 대문자로 한다. 단어는 '_'로 구분한다.
-PI, MAX_NUMBER
 
5. 변수, 상수, 리터럴
변수(variable) - 하나의 값을 저장하기 위한 공간
상수(constant) - 한 번만 값을 저장할 수 있는 공간
리터럴(literal) - 그 자체로 값을 의미하는 것
 int score = 100;
score = 200;
char ch = 'A';
String str = "abc";
final int MAX = 100;
MAX = 200; // 에러
 
6. 리터럴과 접미사
boolean power = true;        long = 10000000000L;
char ch = 'A';                   float f = 3.14f
char ch = '\u0041';           double d = 3.14d
char tab = '\t';               float f = 100f;
byte b = 127;                  10. -> 10.0
short s = 32767;             .10  -> 0.10
int i = 100;                     10f -> 10.0f  
int oct = 0100;                3.14e3f -> 3140.0f
int hex = 0x100;             1e1 0 -> 10.0
 
7. 변수의 기본값과 초기화
변수의 초기화: 변수에 처음으로 값을 저장하는 것
*지역변수는 사용되기 전에 반드시 초기화해주어야 한다.
 
자료형 기본값  
boolean false boolean isGood = false;
char '\u0000' char grade = ''; //공백
byte 0 byte b = 0;
short 0 short s = 0;
int 0 int i = 0;
long 0L long l = 0; //0L로 자동변환
float 0.0f float f = 0; //0.0f로 자동변환
double 0.0d 또는 0.0 double d = 0; //0.0로 자동변환
참조형 변수 null String s1 = null, String s2 = ""; // 빈 문자열

 

8. 문자와 문자열

char ch = 'A';            

char ch = 'AB'; // 에러

String s1 = "AB";

String s1 = "A" + "B"; //"AB"

""+7 → "" + "7" → "7"

 

char ch = ''; //에러""+7+7 → "7"+7 → "7"+"7" → "77"
String s1 = "";7+7+"" → 14+"" → "14"+"" → "14"
String + any type → Stringany type + String → String

9. 정수의 오버플로우(Overflow)byte b = 127;        byte b = 128; //에러

b = b + 1; //b에 저장된 값을 1증가

127(최대값) .... 2 1  0 -1 -2 ... -128(최소값) 127(최대값) ... 2 1 0 -1 -2 ... -128(최소값) ... 반복

999(최대값) 998 ... 001 000(최소값) 999(최대값) 998 ... 001 000(최소값) 999(최대값) ... 반복

1. 부호가 없는 정수

1111(최대값) 1110 ... 0001 0000(최소값) 1111(최대값) 1110 ... 0001 0000(최소값) 1111(최대값) 1110 ... 반복

 

2. 부호가 없는 정수

0111(최대값) 0110 ... 0001 0000 1111 ... 1001 1000(최소값) 0111(최대값) 0110 ... 0001 0000 1111 ... 1001 1000(최소값) 0111(최대값) .. 반복

 

10.  형변환(Casting)
형변환이란?
-값의 타입을 다른 탕비으로 변환하는 것이다.
-boolean을 제외한 7개의 기본형은 서로 형변환이 가능하다.
float f= 1.6f;
int i = (int)f;
 
변환 수식 결과
int → char (char) 65 'A'
char → int (int) 'A' 65
float → int (int) 1.6f 1
int → float (float) 10 10.0f
변환   2진수   10진수  값손실
 byte → int  00000000000000000000000000001010  10
 10
 없음
 int → byte  00000000000000000000000100101100  300
 44
 없음

 

1byte         2byte        4byte        8byte         4byte           8byte

byte    →    short     →   int    →    long    →    float    →    double

char     →↗

 

* 댓글을 달아주시면 성심 성의껏 답변해드립니다

.

728x90

'JAVA > 개념' 카테고리의 다른 글

[JAVA] 06. OOP2(객체 지향 언어)  (0) 2017.08.01
[JAVA] 05. OOP 1(객체 지향 언어)  (0) 2017.08.01
[JAVA] 04. Array (배열)  (0) 2017.07.31
[JAVA] 03. 조건문, 반복문 (Control Statement)  (0) 2017.07.30
[JAVA] 02. 연산자(Operator)  (0) 2017.07.28

댓글