[JAVA] 01. 변수(Variable)

2017. 7. 28. 22:40·JAVA/개념
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
'JAVA/개념' 카테고리의 다른 글
  • [JAVA] 05. OOP 1(객체 지향 언어)
  • [JAVA] 04. Array (배열)
  • [JAVA] 03. 조건문, 반복문 (Control Statement)
  • [JAVA] 02. 연산자(Operator)
밍글링글링
밍글링글링
mingling - 밍글링, 밍글밍글링. 코드와 어우러지다. IT/ 프로그래밍/소스
    반응형
    250x250
  • 밍글링글링
    mingling
    밍글링글링
  • 전체
    오늘
    어제
    • 밍글링글링 (407) N
      • Flutter (2)
      • 일상생활 (8)
        • 리뷰 (1)
        • 생활정보 (4)
        • 맛집 (0)
        • 여행 (0)
        • 모든정보 (3)
      • JAVA (126)
        • 개념 (6)
        • 예제 (115)
        • Exception (2)
      • C (1)
        • C (1)
        • C++ (0)
        • C# (0)
      • JS (29)
        • JavaScript (18)
        • JQuery (5)
        • AJax (0)
        • NODE.JS (6)
        • Angular.JS 2.0 (0)
      • WEB (87)
        • HTML (6)
        • CSS (61)
        • JSP (20)
        • JSTL (0)
      • FrameWork (8)
        • Spring (8)
        • BootStrap (0)
        • MyBATIS (0)
        • JUnit (0)
      • 외부 라이브러리 (5)
      • 공유 소스 관리 (5)
        • Git (5)
        • SVN (0)
      • 빅데이터 프로그래밍 (37)
        • Python (37)
        • R Programming (0)
      • DB (7)
        • ORACLE (0)
        • MySql (6)
      • Development Tools (7)
        • StarUML (0)
        • eXERD (0)
        • Eclipse (4)
      • SKILL (6)
        • Migration (0)
        • Security (6)
      • MicroSoft (0)
        • Excel (0)
        • Word (0)
      • Android (0)
      • Server (21)
        • Ubuntu (5)
        • Linux (15)
      • IOS (0)
      • XML (0)
      • 미디어 (0)
      • 공지사항 (3)
      • NETWORK (1)
      • 게임 (4)
        • 피파 (1)
        • 리니지M (0)
        • 배틀그라운드 (1)
        • 듀랑고 (2)
      • 세상 이슈 (6)
      • 일렉트론 (0)
      • 대회 소식 (4)
      • 업무 (2)
      • Express, Vue (6)
      • docker (11)
      • svelte (3)
      • 블록체인 (1)
      • IT (10) N
      • Rust (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    jsp include
    proxy pass
    mysql db
    자바 for문
    spring java
    svelte
    SSL 인증서
    AI 코딩 에이전트
    nginx ssl 설정
    자바 exception
    docker
    css list
    nginx
    css float
    프런트엔드
    nginx ssl 적용
    Rust lang
    lang rust
    vue 설치
    css transition
    React Compiler
    vue cli
    Extension Bisect
    servlet class
    자바 배열
    css block
    에디터 팁
    VS Code 팁
    Node
    리눅스 설치
    오류
    css table
    ubuntu
    css tb
    클론코딩
    러스트
    css perspective
    자바 클래스
    java casting
    ssl 인증서 발급
    Java Array
    gitlab 설치
    자바 객체 지향
    rust linux
    브라우저 자동화
    API 설계
    vscode
    jsp parameter
    자바 생성자
    티스토리 자동화
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
밍글링글링
[JAVA] 01. 변수(Variable)
상단으로

티스토리툴바