Hello World

HEUKWU·2023년 1월 18일
0

Java

2진법 밖에 할줄 모르는 컴퓨터와 대화하기 위해서 우리는 눈높이를 많이 낮춰야한다.
1 + 3 이 4 라는건 인간인 우리에게는 너무 쉬운 문제이지만 컴퓨터가 이 문제를 계산하기 위해서는 0과 1로 표현해야 한다.
0과 1로 표현된 언어를 기계어라고 부르는데 인간의 입장에서 기계어를 이해하기란 쉽지 않다.
따라서 기계어와 인간의 언어를 매칭하는 코드표를 만들었다.
어셈블리라고 하는데 CPU마다 실행할 수 있는 기계어가 다르기 때문에 이 어셈블리어도 다르게 만들어졌다.
어셈블리어 이후 많은 언어들이 탄생했는데 그중 Java라는 언어를 공부할 것이다.

변수

변수는 하나의 값을 저장하는 메모리 공간을 의미한다.
(다른 값으로 자동 덮어 씌워짐)

  • 변수의 초기화
    변수의 초기화란 변수에 처음으로 값을 지정하는 것을 의미한다.
    변수에 값 저장 - 변수타입 변수이름 = 값;

상수

한번만 값이 저장가능해 변하지 않고 고정된 값을 담는 변수를 의미한다.

  • 선언 방법
    final 변수타입 변수이름 = 값;

리터럴

그 자체로 값을 의미한다.

int score = 100;
final int finalScore = 1000;

score - 변수
finalScore - 상수
100, 1000 - 리터럴

타입

타입은 기본형과 참조형이 있다.

기본형

8개가 있고 데이터의 가장 기본이 되는 타입이다.
크게 논리형, 문자형, 정수형, 실수형으로 분리된다.

  • 논리형
    참, 거짓으로 조건식과 논리적 계산에 사용된다.

  • 문자형
    하나의 문자를 저장하는데 사용된다.

  • 정수형
    정수값을 지정하고 크기에 따라 byte, int, long을 사용한다.

  • 실수형
    실수값을 저장하고 크기에 따라 float, double을 사용한다.

범위

아스키 코드

컴퓨터는 0과 1밖에 이해하지 못하기 때문에 문자를 표현하기 위해 문자와 숫자를 매칭하는 아스키 코드가 있다.

숫자와 문자의 변환

  • 숫자 -> 문자
    숫자 + '0'

  • 문자 -> 숫자
    문자 - '0'

숫자와 문자열의 변환

  • 숫자 -> 문자열
    숫자 + ""

  • 문자열 -> 숫자
    Integer.parseInt(문자열)
    Double.parseDouble(문자열)(실수로 변환)

문자와 문자열의 변환

  • 문자 -> 문자열
    문자 + ""

  • 문자열 -> 문자
    문자열.charAt(문자열의 인덱스)

참조형

  • 기본형을 제외한 나머지 타입을 뜻한다.
  • 객체의 주소를 저장하고 어떤 객체도 저장하고 있지 않음을 뜻하는 null을 저장하기도 한다.
  • 4byte의 크기를 저장한다.

형변환

변수 또는 상수의 타입을 다른 타입으로 변환하는 것이다.

public class Hello {
    public static void main(String[] args) {
        int i = 65;
        int num = 10;
        char ch = 'A';
        float f = 1.6f;

        System.out.println("(char)i = " + (char) i);
        System.out.println("(int)ch = " + (int) ch);
        System.out.println("(int)f = " + (int) f);
        System.out.println("(float)num = " + (float) num);
    }
}

결과

(char)i = A
(int)ch = 65
(int)f = 1
(float)num = 10.0

자동 형변환

float f = 1234;

int타입이 float타입보다 작기 때문에 형변환이 가능하다.

float f = (float)1234;

원래는 이렇게 형변환을 해줘야하지만 컴파일러가 형변환을 생략해도 컴파일러가 자동으로 형변환을 해준다.

하지만 큰 타입을 작은타입에 저장할때는 에러가 발생한다.

int i = 3.14f

3.14를 정수로 변환하면 소수점을 버리고 3이되기 때문에 값손실이 일어난다. 이렇게 값손실이 일어날때는 컴파일러가 자동형변환을 해주지 않기 때문에 에러가 발생하는 것이다.

따라서

int i = (int)3.14;

수동으로 형변환을 해줘야 한다.

산술변환

  • 큰 타입으로 일치
    long + int -> long
    float + int -> float

  • int보다 작은 타입이면 int로 변환
    byte + short -> int
    char + short -> int

연산자

증감 연산자(++),(--)

  • 전위형 : 값이 참조되기 전에 증가/감소 시킨다.
    ++j; --j;
  • 후위형 : 값이 참조된 후에 증가/감소 시킨다.
    j++; j--

비교 연산자

  • (==) 두 피연산자를 비교해 같으면 참을 반환
  • (!=) 두 피연산자를 비교해 같지 않으면 참을 반환
  • (>) 왼쪽이 오르쪽보다 크면 참을 반환
  • (>=) 왼쪽이 오르쪽보다 크거나 같으면 참을 반환
  • (<) 오른쪽이 왼쪽보다 크면 참을 반환
  • (<=) 오른쪽이 왼쪽보다 크거나 같으면 참을 반환

문자열을 비교할 때는 == 대신 equeals()를 써야한다.

논리 연산자

  • (&&) 논리식이 모두 참이면 참을 반환(AND)
  • (||) 논리식 중 하나라도 참이면 참을 반환(OR)
  • (!) 논리식의 결과가 참이면 거짓, 거짓이면 참을 반환(NOT)

삼항 연산자

조건식 ? 반환값 1: 반환값 2

대입 연산자

  • (+=)/(-=) 왼쪽 피연산자에서 오른쪽 피연산자를 더한(뺀)후, 왼쪽에 대입
  • (*=)/(/=) 왼쪽 피연산자에 오른쪽 피연산자를 곱한(나눈)후, 왼쪽에 대입
  • (%/) 왼쪽 피연산자에 오른쪽 피연산자를 나눈후, 나머지를 왼쪽에 대입

Math 클래스

수학과 관련된 메서드를 가지고 있는 클래스이다.

  • round() - 첫째자리에서 반올림한 정수 반환
  • ceil() - 올림값 반환 (double형으로)
  • floor() - 내림값 반환 (double형으로)
  • abs() - 절대값

0개의 댓글

관련 채용 정보