[Java] 2주차 과제

1 minute read

공부내용

  1. 프리미티브 타입 종류와 값의 범위 그리고 기본 값

    분류 type size defaultValue Range
    정수형 byte byte 0 -128(-2 7)~127(27 -1)
    정수형 short 2byte 0 -32768(-2 15)~32767(215 -1)
    정수형 int 4byte 0 -2147483648(-2 31)~2147483647(231 -1)
    정수형 long 8byte 0L -2147483648(-2 63)~2147483647(263 -1)
    실수형 float 4byte 0.0F  
    실수형 double 8byte 0.0  
    문자형 char 2byte ‘\u0000’ 0~65535
    논리형 boolean byte false true,false
  2. 프리미티브 타입과 레퍼런스 타입
    • primitive type -> stack 영역에 생성
    • reference type -> heap 영역에 생성되며, 실제 데이터들의 주소값을 가지고 있음, 클래스들을 변수로 받아줌
    • 실제 차이예시
        int a = 1;
        Integer b = new Integer(1);
      
  3. 리터럴
    • 값 그대로인 상수
    • literal type
      • 정수 리터럴 : 기본값은 int
      • 소수 리터럴 : 기본값은 double
      • L,l을 봍인 정수의 경우에는 long타입 리터럴
      • f,F를 붙인 소수의 경우에는 float타입 리터럴
  4. 변수 선언 및 초기화하는 방법
    • 기본형 변수
        // 선언 및 초기화
        int a = 1;
        // 초기화는 기본값을 다시 할당해주면 된다.
        a = 0;
      
    • 참조형 변수
        public static void main(String []args)
        {
            //student class를 참조형 변수 s1에 할당해준다.
            student s1 = new student();
        }
      
  5. 변수의 스코프와 라이프타임
    • instance 변수 메모리에 instance 변수가 올라가 있는 동안
    • class 변수 프로그램 사용중 혹은 class가 메모리에 올라가 있는 시간
    • local 변수 선언된 블록 안쪽 일반적으로는 method 내부정도로 볼 수 있다.
  6. 타입 변환, 캐스팅 그리고 타입 프로모션
    • 자동형변환(promotion) : 작은타입에서 큰타입으로 가는경우
    • 캐스팅(casting) : 일반적으로 명시적 형변환이라고 하며, 큰타입에서 작은타입으로 변형할때, 사용한다.
      1. 예시
          long a = 100L;
          int b = (int) a;
        
      2. 객체간에는 상속관계에 있는지 확인하지 않으면 Error발생할 수 있다
          public class main
          {
              public static void main(String[] args)
              {
                  ///casting
                  nation n = new nation();
                  city c = new city();
                  if(city instanceof nation)
                  {
                      nation nn = (nation) city;
                  }
              }
          }
                
          class nation
          {
              public string name;
          }
          class city extends nation
          {
              public string cityName;
          }
        
  7. 1차 및 2차 배열 선언하기
    • 1차 배열
        // 아래코드를 통해서 1차배열을 선언한다.
        // int사이즈 공간 100개를 미리 할당해 놓는다.
        int[] a = new int[100];
          
        // 실제 값을 할당한다.
        for(int i=0;i<a.length;i++)
        {
            a[i] = i;
        }
      
    • 2차 배열
        int[][] a = new int[10][10];
      
  8. 타입 추론, var
    • 타입 추론
      • 타입이 정해지지 않은 변수를 컴파일 타임에서 타입을 정해주는 것
      • 장섬 : 코드 작성자 입장에서는 변하게 작성이 가능
      • 단점 : 코드 리뷰자 입장에서 타입을 바로 파악하기 힘들 수 있다.
    • var
      • java 10부터 사용
      • 사용조건
        • local variable
        • initialize를 만드시 해야한다.
        • ex
                public void getData()
                {
                    var a = 1;
                    // continue;
                }
          
      • lambda에는 쓸수 없다.
          var a = () => { return "hello";};
        

Leave a comment