티스토리 뷰

Languages

Java 1. 기본

Korean Eagle 2020. 7. 6. 16:31
728x90

1. Identifier - 클래스, 메소드, 패키지, 속성, 변수 등을 식별할 수 있는 식별자 - 대소문자 가림

 

public class Demo {
  public static void main(String args[]) {
    int i = 20;
  }
}

 

  1-1 Demo, main, String, args, i 5개의 identifier가 있다. int는 keyword이다.

  1-2 [A-Z], [a-z],[0-9], $, _ 사용가능. 첫글자는 숫자를 허용하지 않음

  1-3 reserved name은 허용하지 않음

  1-4 클래스 이름을 identifier로 사용가능함 String String = "TEST"

 

2. reserved words

  2-1 literals, keywords

 

3. keywords

  3-1 모두 소문자로 되어 있음

  3-2 goto, const는 keyword이지만 사용되지 않음

  3-3 null은 keyword가 아니라 literal이다.

 

4. literal

  4-1 literal은 contant value으로 변수에 할당할 수 있다.

  4-2 null, true, false 는 대표적 literal  이다.

  4-3 특별한 것이 아니라 할당이 가능한 값들을 literal이라고 한다.

 

5. var - java 10 이상

  5-1 var str = "my string"; 이런 식의 추론가능한 타입을 대신하여 사용가능함

 

  

6. Data Type

  6-1 byte: 8bit -128 to 127 signed two's complement integer

  6-2 short: 16bit -32768 to 32767 signed two's complement integer

  6-3 byte, short는 대형 배열의 메모리 절약에 유용하다.

  6-4 int: signed two's complement integer -2^31 to 2^31 - 1 Java8이후 Integer unsigned가 가능 0 to 2^32 -1

  6-5 long: signed two's complement integer -2^63 to 2^63 - 1 Java8이후 Long unsigned가 가능 0 to 2^64 -1

  6-6 float: 32bit floating point 뒤에 f나 F를 붙여 주어야 함

  6-7 double: 64bit floating point default 타입

  6-8 boolean: true or false

  6-9 char: 16bit Unicode character. 하나의 문자열을 표현함

 

7. type casting 

  7-1 Implicit - 자동변환으로 두 타입이 서로 compatible해야 하고 타겟의 타입이 소스타입보다 커야 한다.

  7-2 long -> float or double은 분명 정보 손실이 발생하지만 결과값은 least significant bit을 손실이고 round된 long값을 가지기 때문에 정확성이 떨어지지만 source의 전체 범위를 커버하기 대문에 자동 컨버전을 지원한다.

 

  7-2 explicit - 사용자가 강제적이고 명시적으로 하는 변환

 

8. final

  8-1 final은 상수를 만든다. 

 

9. Wrapper 클래스

  9-1 모든 primitive type에 대한 클래스형식의 지원이다.

 

10. Primitive variable의 메소드 전달방식

  10-1 자바는 기본적으로 call by value이다. primitive 방식은 값을 복사하여 전달된다.

 

 

728x90

'Languages' 카테고리의 다른 글

Java : Optional  (0) 2020.07.28
Java 2. main 메소드  (0) 2020.07.06
Typescript : Generic  (0) 2020.06.14
Typescript : tsconfig.json 파일  (0) 2020.06.14
Typescript Basic : 인터페이스  (0) 2020.05.13
댓글