JAVA/Java 기초

자바 이론 복습용 정리

  1. 자바
    • 개발환경설정: JDK와 이클립스 설치
    • .java(자바소스파일) → 컴파일러  →  .class(바이트코드)  → JVM
    • JDK: Java Development Kit  →  개발에 필요한 라이브러리와 플랫폼이 포함
    • JRE: 자바 실행 환경(런타임 관련된것들)
    • 오픈소스: 무상으로 공개한 소프트웨어
    • 컴파일: 자바를 기계어로 변경해주는 과정
    • bin 폴더: 개발에 필요한 도구들이 들어있다.
    • API: Application Programming Interface
      • JDK에 포함된 클래스 라이브러리
      • 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가  제공하는 기능을 제어할 수 있게 만든 인터페이스
  2. 변수와 자료형
    • 보수: x에 대한 (x+k)의 보수는 k이다
    • 데이터 타입
      • 기본타입 8개
        • null : 레퍼런스 타입의 값으로 사용가능하다. (기본타입에는 사용 불가)
        • 문자열: 자바에서 문자열은 객체임(기본타입 아님)
      • 레퍼런스 타입: 클래스, 인터페이스, 배열에 대한 레퍼런스
    • 바이트형: 1바이트는 8비트, 동영상이나 음악팡리 재생, 데이터 전송에 사용
      •  → 바이트 기반 스트림
    • 8진수: 0으로 시작하는 숫자   ex) int n = 015 → 0으로 시작=8진수
    • 상수: final, 값변경불가, 사용전에값지정가능
    • 리터럴: 프로그램에서 사용하는 모든 숫자, 문자, 논리값
    • 형변환 : 자동형변환, 강제형변환
      • 강제형변환 시 데이터 손실이 될 수 있다. (나누기 연산 시 소수점 아래가 버려짐)
  3. 제어문
    • case 문에 정수, 문자, 문자열 사용가능
    • continue 문
      •  continue 이후의 문장은 수행하지 않고, 검사식 처음으로 돌아가 수행됨
      • 반복문을 빠져나가지 않고 건너뛴다
    • break 문
      • 그 지점에서 더 이상 수행문을 반복하지 않고 반복문을 빠져나온다. 가장 가까운 반복문을 빠져나간다.
    • 나머지의 범위는 나누는 수보다 하나 작은 수까지.
  4. 객체지향 프로그래밍
    • 사용목적: 
      • 상속, 상속으로 인한 업,다운 캐스팅. 캡슐화
      • 소프트웨어 재사용성이 높아진다. 생상성이 향상된다.
    • 캡슐화
      • 클래스에 메서드와 데이터를 넣고 구현
      • 공개된 메서드에만 접근가능하도록 제한
      • 객체내의 데이터를 보안, 보호
    • 클래스의 다중 상속 없음 → 인터페이스를 통해 같은 결과를 얻음
    • 다형성  →  오버라이딩  → 동일한 이름의 다른 동작을 하게 한다.
    • 클래스: 변수(필드), 생성자, 메서드만 들어갈 수 있다.
    • static: 메모리 공간이 따로 생기지 않고 같이 사용 가능한 공간
    • 인자(매개변수) 전달 -> call by value
      • 값에 의한 호출: 기본타입의 값을 전달하는 경우/레퍼런스를 전달하는 경우
      • 기본타입의 값을 전달하는 경우
        • 값이 복사되어 전달
        • 메소드의 매개변수가 변경되도 호출한 실인자 값은 변경되지 않음
      • 레퍼런스를 전달하는 경우
        • 객체, 배열의 레퍼런스 전달(복사되어 전달되는게 아님)
        • 메소드의 매개변수와 호출한 실인자가 객체나 배열을 공유하게 된다.
    • 생성자
      • 메서드 (리턴타입이 없다)
      • new를 통해 객체를 생성할 때만 호출된다.
      • 생성자를 작성하지 않으면 컴파일에 의해 자동으로 기본생성자가 선언된다.
  5. 클래스와 객체
    • this: 자신의 레퍼런스를 반환
    • this(): 생성자에서 다른 생성자를 호출
    • 접근 지정자
      • default: 같은 패키지 내의 다른 클래스만 접근 가능
      • public: 패키지에 관계없이 모든 클래스에서 접근 가능
      • private: 클래스 내에서만 접근 가능(상속받았을 때도 안됨)
      • protected: 같은 패키지 내의 모든 클래스에서 잡근 가능, 상속 받은 자식 클래스는 다른 패키지에 있어 접근 가능
    • no-static 멤버
      • 객체마다 독립적으로 별도 존재 (인스턴스 변수)
      • 객체 생성 후 사용가능
    • static 멤버
      • 객체를 생성하지 않고 사용 가능 (클래스 변수, static 변수)
      • 동일한 클래스의 모든 객체에 의해 공유된다
  6.  상속과 다형성
    • 자바는 다중상속을 지원하지 않는다. 
    • 상속의 횟수 제한이 없다
    • 하위 클래스 객체가 생성될 때 
      • 하위 클래스가 생성될 때는 상위 클래스의 생성자가 먼저 호출된다
      • 하위 클래스의 생성자와 상위 클래스의 생성자가 모두 실행된다
      • → 하위 클래스 생성자에서 super()를 자동으로 호출된다.
    • 동적바인딩 : 서브 클래스에 오버라이딩 된 메소드가 무조건 실행됨
  7. 추상 클래스
    • 추상클래스 : 추상 메서드와 일반메서드 모두 있을 수 있다.
    • 추상 메서드는 추상 클래스 안에서만 존재할 수 있다.
    • public static final int MAX = 9999;   → 공유 가능하고, 수정은 불가능하게 설정
    • 추상클래스 사용 이유
      • 목적에 맞게 추상메서드를 다르게 구현하여 다형성을 추구할 수 있다
  8. 인터페이스: 추상메서드와 상수로만 이루워져있다
  9. 클래스
    • Object 클래스: 최상위 클래스
    • Wrapper 클래스
      • 기본타입을 객체형으로 사용해야 하는 경우.
      • 박싱(Boxing): 기본타입을 객체형으로 바꾸는 것
      • 언박싱: 객체형을 기본형으로 꺼내는 것 
      • valueOf(), parseInt() : 클래스 메서드의 일종
  10. 예외
    •  Exception 클래스: 예외 클래스의 최상위 클래스
    • throws: 예외처리를 메서드가 호출될 때 처리하도록 미룸 
  11. 입출력
    • InputStream : 입력 => 파일을 읽어 들일 때 사용
    • OutputStream : 저장 => 파일 생성

 

 

 

 

 

 

 

 

참고

Do it! 자바프로그래밍 입문

 

728x90
728x90

'JAVA > Java 기초' 카테고리의 다른 글

List 인터페이스 - ArrayList 클래스  (0) 2022.06.02
2의 보수법  (0) 2022.06.02
List 인터페이스 - Vector 클래스  (0) 2022.05.30
컬렉션 프레임워크 - collection  (0) 2022.05.30
스레드 - Thread  (0) 2022.05.27