[Java] Basic

hyun-jin·2022년 8월 7일
0

Java

목록 보기
1/14

Java언어의 특징

1) 완전한 객체 지향 언어.

객체지향의 특성인 상속, 캡슐화, 다형성 등의 개념이 잘 적용된 언어이고 코드의 재사용 및 유지보수에 용이하다.

2) 운영체제에 독립적.

컴퓨터는 여러가지 운영체제가 사용되고 있다. 일반적으로 window에서 생성된 소프트웨어는 다른 운영체제에서 실행될수 없게 되는것이 일반적이지만 자바프로그램은 JVM이 구축된 환경이라면 운영체제와 관계없이 실행 시킬 수 있다.

<변수>

  • 변수(variable)란 값을 저장할 수 있는 저장공간이다.

- 자료형

  • 프로그래밍 언어에서 사용하는 변수의 종류를 구별하고 자료형마다 데이터의 크기가 지정되어 있는데 이것은 메모리를 효율적으로 사용하기 위함이다.

✔︎ 변수 사용 방법

  • 변수 선언 ( 데이터형 변수이름;)

    int num;
    int num1;

  • 변수를 할당 ( 변수이름 = 값;)

    num = 5;
    num1 = 10;

  • 선언과 할당의 통합 ( 데이터형 변수이름 = 값;)

    int num = 5;
    int num1 = 10;

✔︎ 값의 할당 방법

  • boolean은 true, false 거짓 중의 한가지만 갖는다.

    boolean t = true;
    boolean f = false;

  • char는 홑따옴표(')로 감싸진 한 글자만 대입 가능하다.

    char one = '일';

  • long, float, double은 다른 데이터 형과의 구별을 위해 값 뒤에 데이터형의 첫 글자를 접미사로 가질 수 있다. (접미사는 대/소문자 자리지 않지만 가급적 대문자로 사용한다.)

    long money = 1000000L;
    float pi = 3.14F;
    double pi = 3.1425D;

✔︎ 변수 사용의 제약

  • 반복하여 다른 값이 할당될 수 있지만, 이미 선언된 변수명은 중복 사용이 불가능 하다.

    int num = 10;
    num = 20; // 가능, 생성된 변수는 다른 변수에 대입될 수 있다.
    int num = 30; // 불가능, 중복 선언된 변수이므로 에러

  • 선언되지 않은 변수는 사용이 불가능 하다

    int num = 10;
    num = 20;
    num1 = 30; // 불가능, 선언되지 않은 변수이므로 에러

  • 값이 대입되지 않은 변수는 다른 변수에 대립하거나 출력할 수 없다

    int num;
    int num1 = num; // 불가능, 값이 없는 변수를 대입하여 에러
    system.out.println(num); // 불가능, 값이 없는 변수를 출력해 에러

<상수>

  • 수식에서 변하지 않는 값
    -변수와 같이 메모리상에 존대하지만, 값이 변경할 수 없는 데이터로 읽기 전용 데이터이다.
    -final키워드를 사용하여 선언된 변수를 상수로 생성한다.

    final int age = 25;
    final bouble pi = 3.14D;
    age = 23; // 불가능, 상수의 값을 변경하므로 에러

<연산자>

  • 연산자란 프로그램에서 연산을 수행하기 위해 사용되는 기호들

✔︎ 종류

  • 대입연산자, 사칙연산자, 단항연산자, 증감연산자, 비교연산자, 논리연산자

- 사칙연산자

더하기(+), 빼기(-), 곱하기(*), 나눗셈의 몫(/), 나머지(%)

  • 더하기(+)
    1. String이 덧셈에 사용되면 결과는 String으로 나오고, 다른 연산은 불가능하다.

    int age = 20;
    Stirng name = "학생";
    String result = name + age; // "학생20"

  • 빼기(-) , 곱하기(*)
    1. String은 곱셈 연산이 불가능하다.
    2. char는 아스키코드에 부여된 int로 해석한다.

  • 나누기(/)
    1. int / int -> int(몫)
    5 / 2 -> 2
    2. char는 아스키코드에 부여된 int로 해석한다.
    3. 0으로 나눌 수 없다.(오류발생)

  • 나머지(%)
    1. 나머지를 계산한다.
    int % int -> int(나머지)
    5 % 2 -> 1

✔︎ 연산자가 여러개가 사용되었을 경우 연산자의 우선운위에 따라 해석하고, 연산자의 우선순위가 같다면 앞에서부터 해석한다.

- 단항연산자

  • 어떤 변수의 값에 대한 연산 결과를 다시 자기 자신에게 대입하는 경우 사용한다.

    int num = 100;
    num = num + 50; // 105
    num += 50; // 105

  • 단항연산자는 모든 사칙연산자에 표현이 가능하다.

    +=, -+, *=, /=, %=

- 증감연산자

  • 단항 연산자로 표현할 수 있는 식에서 계산 대상 값이 1인 경우, 덧셈과 뺼셈에 대해서는 한번 더 축약할 수 있다.
    • 덧셈(+)
      x = x + 1;
      x += 1;
      x++;
      ++x;
    • 뺄셈(-)
      x = x - 1;
      x -= 1;
      x--;
      --x;
  • 후위형과 전위형이 있다.
    • 후위형
      x = x +1 // x += 1 // x++
      x = x -1 // x -= 1 // x--
    • 전위형
      ++x
      --x

- 후위형(x++)과 전위형(++x)의 차이

증감연산자는 표시 위치에 따라 결과가 서로 다르게 적용된다.

  • 후위형(x++)
    증감연산자가 뒤에 표시되는 경우, 형재 x의 값을 먼저 수식에 적용한다.
    int a = 100;
    int x = 1;
    int y = a + x++;
    y = 100 + 1; // y에 101이 대입된 후에 x++가 계산된다.
    --> 결과: y = 101, x = 2
  • 전위형(++x)
    증감연산자가 앞에 표시되는 경우 먼저 현재 x의 값이 1증가 시킨 후, 그 결과를 수식에 적용한다.
    int a = 100;
    int x = 1;
    int y = a + ++x; // ++x가 먼저 계산되서 x는 2가 된다.
    y = 100 + 2;
    --> 결과: y = 102, x = 2

- 비교연산자

  • 두 개의 변수값 간의 관계를 비교하여 참(true), 거짓(false)으로만 결과를 판별 가능하므로, 연산 결과는 boolean값으로 생성된다.
  • 같다(==), 다르다(!=), 초과(>), 이상(>=), 미만(<), 이하(<=)

    boolean r = x 비교연산자 y;
    int x = 100;
    int y = 1;
    booean r = x > y; // true

- 논리연산자

  • 두개 이상의 비교연산자의 결과나 boolean 값에 대해 주가로 "and"나 "or"연산을 수행하여, 참일때는 true, 거짓일때는 false값으로 결과르 얻는다.

- and의 의미를 갖는 &&

  • "&&"연산자는 두개의 boolean값을 비교하여 모두 true인 경우만 결과값이 true가 된다.

- or의 의미를 갖는 ||

  • "||"연산자는 두개의 boolean값을 비교하여 둘중 하나라도 true인 경우 결과가 true이다.
ABA and BA or B
FalseFalseFalseFalse
FalseTrueFalseTrue
TrueFalseFalseTrue
TrueTrueTrueTrue

<형변환(Casting)>

  • 변수의 자료형이 변화되는 것을 의마한다.
  • 암묵적 형변환과 명시적 형변환 두 종류가 있다.

✔︎ 암묵적 형변환

  • 서로 다른 자료형을 연산 혹은 대입하는 경우, java컴파일러가 자료형을 통일한다. 이 과정에서 발생하는 형변환을 암묵적 형변환이라고 한다.
  • 암묵적 형변환은 데이터의 손실이 발생하지 않는 범위 내에서만 가능하다.

    int a = 10; // 정수형
    flaot b = a; // 정수형을 실수형에 대입한다
    -> 암묵적 형변환은 어떤 변수가 더 큰 범위의 변수로 대입 가능함을 의미한다.

✔︎ 명시적 형변환

  • 데이터의 손실을 감수하더라도, 강제로 형변환 시키는 형태

    자료형 b = (변환할 자료형) a ;

  • 실수형을 정수형으로 변환하는 경우, 소수점 이하 자리는 버려진다.

    double a = 3.14d;
    int b = (int) a; // 결과는 3

0개의 댓글