[Java] Language

게맛살맛게·2021년 12월 2일
0

Java

목록 보기
3/18

Java Syntax

주석문, 실행문과 세미콜론

  • 주석
기호설명
//행 주석
/*...*/범위 주석
/**...*/도큐먼트 주석
  • 실행문 맨 마지막에는 세미콜론(;) 필수
    	> 실행문이 끝났음을 알림
public class Hello {					// 클래스 : 필드 또는 메서드를 포함하는 블록
	public static void main(String[] args) {	// 메서드 : 어떤 일을 처리하기 위한 실행문들을 묶어 놓은 블럭
		System.out.println("Hello, Java");
	}
}

Java Language

  • 예약어 (Keyword)
    프로그래밍 언어에 미리 지정된 단어

  • 식별자 (Identifier)
    프로그래머가 직접 만들어 주는 이름
    - 변수명, 클래스명, 메서드명 등
    명명 규칙에 따라 지정 ( PascalCase | camelCase | snake_case | kebab-case )

    1. 문자, $, _, 숫자로만 구성
    2. 문자, $, _로 시작
    3. 숫자로 시작할 수 없음
    4. 대소문자가 구분됨
    5. 예약어는 사용할 수 없음

    camalCase : 변수, 메서드 / PascalCase : Class 명명규칙

  • 변수 : 데이터를 다루는 상자
    - 값을 저장하기 위한 메모리 공간 (주소에 대응)
    - 하나의 변수는 하나의 자료형만 지정
    - 값을 조회하고 변경

  • 자료형 : 데이터 크기 or 모양
    - 자료형에 따라 저장할 수 있는 값의 종류와 크기가 결정
    - 변수 사용 중 변경 불가

    기본자료형참조자료형
    최소단위 자료형
    다른자료형으로 분해 x
    메소드 없이 값만
    ex) int, float, double, char 등
    여러 자료들의 집합
    데이터와 메소드를 가짐
    ex) String, Integer, ArrayList 등
    int myInt = 19String myStr = new String();
    • 기본 자료형
      기본 자료형 ※ MSB : Most Significant Bit 숫자의 부호를 나타내는 처음 비트
      ※ 상수 (Constant) : 변경할 수 없는 고정된 데이터
      - static final로 선언
      - 대문자로 표현
      - 여러 단어가 겹칠경우 _로 구분
      --> static final int MAXIMUN_SPEED = 100;

Type Casting

  • 암묵적 형 변환 (자동 타입 변환 : Promotion) (Up-Casting)
    - 범위가 좁은 자료형에서 넓은 자료형으로 변환 ( 시스템이 자동으로 행함 )
    • 컴파일러가 책임
    • 다른 타입의 숫자 연산시 자동으로 형변환 (큰 쪽으로 통일)

  • 명시적 형 변환 (강제 타입 변환 : Casting) (Down-Casting)
    - 범위가 넓은 자료형에서 좁은 자료형으로 변환
    • 컴파일러 책임 x
    • 작아지고 난 나머지는 다 버림

실습

package com.javaex.basic;

public class Types {
	public static void main(String[] args) {
		intLongEX();
		floatDoubleEX();
		charEX();
		booleanEX();
		promotionEX();
		castingEX();
	}
	
	// 형 변환(Casting)
	private static void castingEX() {
		// 표현 범위 넓은 자료 -> 표현 범위 좁은 자료
		// 명시적으로 변환 해줘야
		
		float f = 123.456f;
		System.out.println(f);
		
		int i = (int)f;
		System.out.println(i);
		
		int i2 = 1234567890;
		System.out.println(Integer.toBinaryString(i2));
		
		short s = (short)i2;
		System.out.println(Integer.toBinaryString(s));
		
		// 형 변환 시 자료의 유실 발생 가능 주의
	}
	
	// 형 변환(Promotion)
	private static void promotionEX() {
		// 표현 범위 좁은 자료 -> 표현 범위 넓은 자료
		// 자동으로 변환
		
		byte b = 25;			// 1바이트 정수
		System.out.println(b);
		
		short s = b;			// 2바이트 정수
		System.out.println(s);
		
		int i = s;			// 4바이트 정수
		System.out.println(i);
		
		float f = i;			// 4바이트 실수
		System.out.println(f);
		
	}
	// 논리형 : 참 or 거짓
	private static void booleanEX() {
		boolean b1 = true;
		boolean b2 = false;
		
		System.out.println(b1);
		System.out.println(b2);
		
		boolean result;
		int var1 = 3;
		int var2 = 5;
		result = var1 < var2;
		System.out.println(var1 + "<" + var2 + "=" + result);
	}
	
	// 문자형 타입 : 부호 없는 정수(코드)
	private static void charEX() {
		char ch1 = 'A';
		char ch2 = '한';
		
		System.out.println(ch1);
		System.out.println(ch2);
		
		
		// ch1 4글자 뒤
		System.out.println((char)(ch1 + 4));
	}
	
	// 실수형 타입
	public static void floatDoubleEX() {
		// float (4) < double (8:default)
		// 정밀도 포기, 표현 범위 넓힌 것
		
		float floatVar = 3.14159f;	// F(or f)
		double doubleVar = 3.14159;
		
		floatVar = 0.1234567890123456789F;
		doubleVar = 0.1234567890123456798;
		
		System.out.println("float:" + floatVar);
		System.out.println("double:" + doubleVar);
		
		System.out.println(0.1 * 3);
		
		// 지수 표기법(e)
		floatVar = 3E-6f;	// 3 * 10 ^ -6
		System.out.println(floatVar);
		
	}
	
	// 정수형 타입
	public static void intLongEX() {
		// byte(1) < short (2) < int (4:default) < long (8)
		int intVar1;				// 선언
		int intVar2;				// 선언
		
		intVar1 = 2021;				// 초기화
//		intVar2 = 12345678901234;		// 범위 초과 경고
		
		System.out.println(intVar1);
		
		long longVar1 = 2021;			//선언 + 초기화
		long longVar2 = 12345678901234L; 	// L(or l)
		
		// 2진수, 8진수, 16진수
		int bin, oct, hex;
		bin = 0b1101;		// 2진수 	0b
		oct = 072;		// 8진수 	0
		hex = 0xFF;		// 16진수	0x

		System.out.println(bin);
		System.out.println(oct);
		System.out.println(hex);
		
	}
}
profile
IT 기술블로그

0개의 댓글