콘텐츠로 이동

Java 실습 리터럴 활용 예제

Java 실습: 리터럴 활용 예제

문자 리터럴 - 작은 따옴표(')의 역할

System.out.println(0xac00); //정수 리터럴
System.out.println((char)0xac00); //문자 코드임을 가리킨다.
System.out.println('가'); //문자 리터럴

// (char)0xac00 == '가'
// ***** '문자' ==> 문자의 코드 값을 리턴한다. *****
// 문자의 코드값도 숫자로 다룰 수 있다.

// 문자 코드를 정수로 출력하라!
System.out.println((int)'가');  //44032

// '각' ==> 0xac01 (44033) 을 리턴한다.
// 따라서 다음과 같이 다른 숫자와 연산을 수행할 수 있다.
System.out.println('각' + 1); //44034
System.out.println('각' - 1); //44032
// 문자 코드에 정수 값을 연산하는 순간 그 결과는 더이상 문자코드가 아니라 정수가 된다.

// 해당 계산 결과를 문자 코드로 바꾸고 싶다면, 이전에 했던대로 (char)을 앞에 붙여준다.
System.out.println((char)('각' + 1)); //갂
System.out.println((char)('각' - 1)); //가

논리 리터럴

// 참 : true
// 거짓 : false
// 자바는 대소문자를 구분하여 처리한다.
System.out.println(true);
System.out.println(false);
// System.out.println(TRUE); 컴파일오류

// 보통 비교 연산의 결과로 논리 값이 리턴된다.
System.out.println(4 < 5);  //true
System.out.println(4 > 5);  //false

// 논리 연산의 결과도 논리 값이다.
System.out.println(true && true);   //true
System.out.println(true && false);  //false
System.out.println(true || true);   //true
System.out.println(true || false);  //true

// 문자 코드와 ''연산
// '문자' 단독으로 사용될 때는 문자로 취급하지만,
// 다른 값과 연산을 수행하면 해당 문자코드는 정수로 취급된다.
System.out.println('가' == 44032);  //true
System.out.println('가' == 44033);  //false
// boolean 값을 다룰 때 메모리 크기 : JVN은 논리 값을 저장할 때 4바이트 정수 메모리를 사용한다.
// true(1), false(0)으로 저장
// boolean은 배열에서는 1바이트 정수 배열의 메모리를 사용한다.

문자열 리터럴

// 큰 따옴표("")를 사용하여 문자열을 나타낸다.
System.out.println("홍길동");
System.out.println("가");   // 문자가 아니라 문자열이다!

// 문자열과 다른 종류의 값을 더한다?
// => 다른 종류의 값을 문자열로 변환한 후
// 기존 문자열에 결합하여 새 문자열을 만든다.

// + 연산자(operator; 특정 기능을 수행하는 명령)를 이용하여
// 여러 개의 문자열을 하나로 합쳐 새 문자열을 만들 수 있다.
System.out.println("홍길동" + "입니다.");   //홍길동입니다.

System.out.println("홍길동은 " + 20 + "살입니다.");     //홍길동은 20살입니다.

System.out.println("취업여부: " + false);       //취업여부: false

System.out.println("키: " + 180.7f);  //키: 180.7  여기서 f는 값이 아니기 때문에 문자열로 바뀌지 않음.

// 문자열의 저장?
// 자바는 char(2byte) 배열(여러 개의 메모리)에\
// 문자열의 유니코드(Unicode; UCS-2)를 저장한다.
// 예) "AB가각"
// [0041][0042][ac00][ac01] <== 2byte 메모리 4개에 저장됨.

이스케이프 문자 리터럴

// 이스케이프 문자
// - 문자를 제어하는 기능을 가진 문자
// - 문법
//    \n , \r, \f, \t, \b, \', \", \\
//
System.out.println("Hello,World!");
System.out.println("Hello,\nWorld!");     // 줄바꿈
System.out.println("Hello,\rabc");        // 커서(cursor; 문자를 출력할 위치를 가리킴)를 처음으로 돌리는 문자
                                          // Hello,를 쓰고 커서를 처음으로 보내 그 뒤 abc를 출력. Hel을 덮어씀
System.out.println("Hello,\b\b\bWorld!"); // 커서를 이전으로 한칸 이동시키는 문자
                                          // Hello,를 쓰고 커서를 이전으로 3칸 이동시킨뒤 World!를 출력. 'lo,'가 덮어써짐
System.out.println("Hello,\tWorld!");     // tap 공간을 추가시키는 문자
System.out.println("Hello,\fWorld!");     // formfeed; 과거 dot print에서 사용하던 기능
System.out.println("Hello,\"W\"orld!");   // " 문자를 추가시키는 문자
System.out.println("Hello,\'W\'orld!");   // ' 문자를 추가시키는 문자
System.out.println("Hello,'W'orld!");     // ""안에서 ' 문자는 그냥 적어도 된다.
System.out.println('\'');                 // ''안에서 ' 문자를 출력하려면 \ 필요.
System.out.println('\"');
System.out.println('"');                  // ''안에 " 문자는 그냥 적어도 된다.
System.out.println("C:\\Users\\user");    // \ 문자를 출력하고싶으면 \\

 대부분 언어에서 이스케이프 문자는 동일.
 ** 줄바꿈 코드 **
 Carrage Return(CR) : 0d
 Line Feed(LF) : 0a
    - windows OS 에서는 줄바꿈을 표시하기 위해 CRLF 2바이트 코드를 삽입한다.
    - Unix OS 에서는 줄바꿈을 표시하기 위해 LF 1바이트 코드를 삽입한다.

jar = java archive, 단지 자바 클래스 파일들이 담김

유용한 정보

언어별 코딩 스타일 http://sideeffect.kr/popularconvention 구글 스타일가이드 https://github.com/google/styleguide

gradle 명령어

    gradle tasks --all
    gradle compileJava
    gradle build
    gradle run
    gradle clean
    gradle init
    ...
    gradle eclipse
        - .settings폴더, .classpath, .project파일 생성