[TIL 23.01.18] JAVA 시작

이승렬·2023년 1월 18일
0

항해99

목록 보기
9/34
post-thumbnail

자바를 오늘 처음으로 시작했다.
어려운 부분은 아직까지는 없었지만, 새로 알게 된 내용들 그리고 필요한 내용들을 정리해서 한번 TIL을 작성해 보겠다.

Q1. 스터디 순서는 어떻게 됩니까?

  • 스터디 순서
    1. 항해99 JAVA 사이트에 DAY 별로 있는 내용을 공부하시고, 블로그 정리

    2. 각자 적은 블로그를 발표를 하는 시간

      (흐름위주, 모르는 부분 혹은 중요한 부분 합쳐서 3가지는 준비해서 오기)

    3. 발표를 들으면서 생겼던 의문점이나, 새로 알게된 점들은 따로 모아서 노션에 정리

    4. 문제풀이 (타 사이트 사용) → 모르는 부분 정리

    5. 최종 TIL 작성

Q2. 상수의 의미의 변형

  • 상수는 한번만 값이 저장 가능한 변수다.
  • 선언의 방법은 final + 변수타입 + 변수 이름이다.

여기에서 헷가리는 것이 상수와 리터럴을 구별하는 것이다.

class Variable2_2 {
    public static void main(String[] args) {
        int score = 100;
        final int finalScore = 1000;
    }
}
  • 여기에서 score은 변수를, finalScore 은 상수를 100과 1000은 리터럴을 의미한다.

Q3. 변수에서 빨간줄... 즉 Error는 거의 대부분..

  • 거의 대부분은 '변수 < 리터럴' 인 경우이다.

예시를 들어보면 다음과 같다.

  1. int i = 30_0000_0000;

    • int의 범위를 초과해서 넣었기 때문에 에러가 발생
  2. long l = 3.14f;

    • long은 8byte이고 float은 4byte 이기 때문에 가능할 것 같지만,
      이는 실수형은 정수형보다 저장범위가 훨씬 넓기 때문에 Error가 발생한다.
  3. float f = 3.14;

    • float < double
      즉 default로 받는 실수의 형식이 double 이므로 3.14f 라던지, (float)3.14를 해주어야 한다.

예외) byte 와 short 변수에 int의 리터럴 저장은 가능하다.

- 단, 변수의 타입의 범위 내이어야 한다.

Q4. 변수에 기본형에는 뭐가 있어?

  • 논리형 : boolean
  • 문자형 : char
  • 정수형 : byte, short, int, long
  • 실수형 : float, double

Q5. 기본형 범위좀 알려줘

Q6. 문자열과 숫자와 문자의 왔다리 갔다리는 어떻게 해?

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

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

  • 문자열을 숫자로
    - Integer.parseInt("문자열")
    - Double.parseDouble("문자열")

  • 문자열을 문자로
    "문자열".charAt(0)

Q7. 그런데 참조형은 뭔데?

기본형을 제외한 나머지 타입을 말함.

참조형 변수는 null 또는 메모리 주소를 저장.

  • null 은 '어떤 객체의 주소도 저장되지 않음'을 말한다.
  • 타입에 관계없이 변수의 크기가 항상 4byte 입니다. (JVM이 64bit일 경우 8byte)
    4byte는 2진수로 대략 40억개로, 40억byte(4GB)의 메모리를 다룰 수 있음

Q8. i++ 과 ++i의 차이점

Q8. Math 클래스와 나머지 연산자

  • Math 라는 Class 에 있는 메소드를 사용하면 편리하게 수학 계산들을 할 수 있다.
round() : 실수를 소수점 첫 째자리에서 반올림한 정수를 반환.
ceil() : 올림값을 double 형으로 반환.
floor() : 내림값을 double 형으로 반환.
abs() : int, double 기본형 모두 사용 가능하며 절대값 반환.

Q9. 문자열 비교는 어떻게해?

  • String 이라는 Class 에 있는 메소드중 equals 를 이용한다.

마치며..

오늘은 일단 객체지향 이라는 말이 항상 이해가 안되서 유투부를 쭉 봤는데
이해는 되는듯 안되는 듯 하면서 정리가 안되었다 내일정리를 해보자
(마지막 새벽선물은 쫌..)

profile
Backend_Developer

0개의 댓글