컴퓨터공학/Java 정리

java study day1-2

saurus2 2016. 12. 21. 20:59

Stdin으로 받은 변수들 저장하고 출력하기


import java.util.Scanner;

public class Solution {

    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);

        int i = scan.nextInt();

        double d = scan.nextDouble();

        scan.nextLine(); // nextInt 다음에 nextLine을 사용하면 다시 nextInt가 integer token을 읽는다.

//마지막의 last newline character 가 버퍼에 저장되어 있기 때문에 nextLine()을 한번 호출하여 

//C언어의 cin.ignore() 혹은 fflush(stdin) 처럼 버퍼를 비워줘야 함

        String s = scan.nextLine();

        // Write your code here.

        System.out.println("String: " + s);

        System.out.println("Double: " + d);

        System.out.println("Int: " + i);

    }

}

자바 변수 :

변수 ? 

하나의 값을 저장할 수 있는 기억공간

값 - 문자 - char

숫자 - 정수 - byte, short, int, long

- 실수 - float, double

논리 - boolean


변수의 타입 ?

기본형 Primitive type

8개 (boolean, char, byte, short, int, long, float, double)

실제 값을 저장

참조형 Reference type

기본형을 제외한 나머지 (String , System 등)

객체의 주소를 저장 (4 Byte, 0x00000000~0xffffffff)

(c언어의 포인터의 크기 4Byte , 32bit의 컴퓨터의 주소 즉, cpu가 한번에 처리할 수 있는 명령어의 크기와 , 

한번에 전송할 수 있는 데이터의 크기에 따라 달라짐 

OS나 compiler에 따라 다를 수 있고, 특수용도에 따라 다르게 설정 가능)


1byte = 8bit

1byte = 2^7-1

float = 4byte

double = 8byte

short = 2^15-1

char = 2^16-1

int = 2^31-1

long = 2^63


명명 규칙 ?

대소문자가 구분이 되며 길이에 제한이 없다

예약어를 사용해서는 안됨

숫자로 시작해서는 안됨

특수문자는 _ 와 $만 허용한다


-권장사항

클래스 이름의 첫 글자는 항상 대문자

여러 단어 이름은 단어의 첫 글자를 대문자

상수의 이름은 대문자, 단어는 '_'로 구분


변수, 상수, 리터럴

변수(Variable) - 하나의 값을 저장하기 위한 공간

int score = 100;

상수(Constant) - 한 번만 값을 저장할 수 잇는 공간

final int MAX = 100; // MAX = 200; 에러 다시 할당을 할 수 없음

리터럴(literal) - 그 자체로 값을 의미함

* 지역변수는 사용되기 전에 반드시 초기화해주어야 한다


Error Ex) 

char ch = 'ab'; // 에러

char ch = ''; //에러


문자열 + any type -> 문자열

any type + 문자열 -> 문자열


형변환 (Casting)

byte -> int

byte b = 10; 

int i = (int)b; //생략가능 int i = b;

int -> byte

int i2 = 300;

byte b2 = (byte)i2; //생략불가