교육 (Today I Learned)/SeSAC

SeSAC 24일차 / 상속, 배열, 컬렉션, 스레드

Bay Im 2023. 8. 25. 00:29
SeSAC 24일차(2023-08-25)
상속, 배열, 컬렉션, 스레드


MVC (Model View Controler)

  • M (HTML)
    • <a>, <form>
  • V (CSS)
  • C (Java Script)

 

 

상속

extends로 클래스 상속을 받고, 자식 클래스에서 메서드 구현을 따로 안했는데, 호출 시 부모 클래스의 메서드가 불러와졌다.

  • 다형성
    • 다형성은 상속 관계에 있는 클래스 간에 발생할 수 있는 현상
    • 부모 클래스의 메서드를 자식 클래스에서 오버라이딩하거나, 자식 클래스에서 새로운 메서드를 추가하여 사용할 수 있다.
    • 이렇게 하나의 부모 클래스를 상속받아 여러 자식 클래스에서 다양한 방식으로 사용할 수 있다는 개념을 다형성이라고 한다.

 

 

배열

  • Array
    • type과 개수를 정해놓은 데이터들의 집합
      • ex) int[] i = new int[365];

 

 

컬렉션

  • List
    • 인덱스 존재
    • ArrayList
    • LinkedList
      • 첨삭용 List
      • 이전 값과 다음 값 사이에 주소 값 존재
  • Set
    • 인덱스 미존재
    • 중복 비허용 (unique한 값)
    • List의 중복 제거를 위한 사용
      • ex) Set<String> hashSet = new HashSet(list);
  • Map
    • Map<key, value>의 형태
    • key 값은 중복 불가, unique한 값으로 생성
    • 검색이 빠르다.

 

 

제너릭

  • 같은 타입의 데이터만 받을 수 있다.
  • 선언부에는 필수, 초기화는 선택 (초기화에서 넣으면 성능 향상)
  • 값을 get할 때 casting할 필요 없다.

 

 

단방향 배열

  • Enumeration
  • ex) public enum 이름 { 필드 멤버 선언 }
  • Literal
  • while문으로 next(), hasNext() 사용

 

 

클래스 생성 시 같이 생성할 메소드

  • hashcode()
    • 위변조 방지용
    • 성능 향상
  • toString()
  • equals()

 

스레드

자바에서 스레드는 프로그램 내에서 실행될 수 있는 코드 블록을 말한다.

스레드를 사용하면 하나의 프로그램 내에서 여러 작업을 동시에 처리할 수 있다.

스레드는 운영체제가 관리하는 프로세스와 달리 경량 프로세스이기 때문에, 더욱 빠른 실행 속도와 효율적인 자원 관리를 할 수 있다.

자바에서 스레드는 Thread 클래스를 상속받아서 만들거나 Runnable 인터페이스를 구현하는 방법으로 생성할 수 있다.

  • CPU
    • Thread
      • light weight Process
      • 운영체제가 관리
  • data
    • Object
  • code

 

  • Runnable Queue
  • Running
    • sleep()
    • join()
    • wait()
    • notify()
    • yield()
  • Not Runnable

 

 

실습

  • Project: ThreadProject
  • package: test.thread
  • Main-class: TestFirstThread, TestSyncThread

 

 

오늘의 실습 코드

https://github.com/yubin-im/SeSAC/tree/f7a911458cc48ba5d93bc2894c5548cf8acbc63a/20230818/test

 

728x90