[2020.11.12.목] TIL

노을·2020년 11월 12일
0

TIL

목록 보기
9/81
post-thumbnail

👨‍💻 호녹스 강의 정리 ( 보충내용은 주말에 정리 )

Java.lang.Object

- 자바의 모든 클래스는 Object를 상속 받음
- toString(), equals 등..이 모두 이 객체의 것
  • 객체를 알아볼 수 있는 팁!
    • NULL 값을 가질 수 있다면 참조형 즉, 객체!
    • int a = NULL (X)
    • 기본타입을 객체로 쓰고싶을 경우, wrapper 클래스인 Integer 사용

String은 일반 객체가 아닌 Immutable(불변) 객체

public static void main(String[] args){
	String s = "a";
    for(int i=0 ; i<100000; i++) {
    	s+="a";
    }
}
  • i 범위를 100000, 200000 등 변경할 때, 연산시간이 선형적으로 증가하지 않고 exponential하게 증가
  • a에서 aa가 되려면 객체 하나를 새로 만들어서, 그 객체를 s의 참조로 가르쳐주는 방식임.
  • 즉 객체가 10만개 생기고, 그 중 실제로 사용하는 객체는 마지막 객체 1개이다.
  • GC(가비지 컬렉터)가 힙에 있는 것을 한꺼번에 모아서 제거하는데, 청소는 오래 걸리는 작업!
  • 주기적으로 만들어진 객체를 GC 하기 때문에 연산이 느려지는 것이다.

StringBuffer

  • String과 다르게 mutable(가변)한 객체임.
  • 따라서 문자열 연산 속도가 빠르다.
  • 따라서 String은 메모리를 많이 먹으므로, 문자열 연산을 조심해서 써야함.

자바는 "OOOO" 이 안되기 때문에 인터페이스가 필요하다.

  • 정답) 다중 상속

Interface

  • 객체와 마찬가지로 참조형
  • 일종의 추상 클래스, 실체가 없음.
  • 자바의 기본 인터페이스는 전부 able로 끝남.
    • ~할 수 있는, 인터페이스가 무언가 능력을 주는 느낌

Interface는 왜 다중상속이 되는가?

  • (조사하기)

자바에서 매개변수나 리턴이 될 수 있는 것은?

  • 기본타입, 참조타입
  • 자바의 함수는 객체가 아니기 때문에 불가능.
    • 따라서, "람다"라는 것을 통해 흉내낼 수 있다.

Static 메소드를 사용할 때 주의사항

  • this를 사용할 수 없음.
    • this는 객체 자기자신을 가리킴
    • 하지만 객체가 없기때문에 안되는 것.

접근 한정자

  • private, default, protected, public
  • public은 지양하는게 좋음. private로 우선 개발할 것.

메소드, 클래스에 final을 붙이면?

  • 상속해도 못쓰는 메소드? (알아보기)

자바, 컬렉션 프레임 워크

  • 컬렉션=컨테이너
  • list, map, set
  • (공부하기)

var 자동변수

equals

  • 값, 객체 비교 가능
  • 클래스내 generate로 @Override 하여, 클래스만의 equlas로 커스텀 할 수 있음.
  • list의 remove는 equlas를 활용해서 지움.

정렬 (공부를 안해서 아직 잘모름, 공부하기!)

  • Collections.sort
    • 매게변수에, 대소비교 함수가 필요
    • compareTo
      • 대소 비교, 함수 정렬 기준 제공 인터페이스 메소드
    • 그럼 왜 매게변수에 인터페이스를 사용하느냐?
    • 자바는 함수가 매게변수가 안되서 그럼.
  • 오름차순
  • 내림차순
  • x뿐만 아니라 y도 정렬을 하고싶다면?

  • compareTo는 2개를 쓸 수 없음.
  • 방법) 1. Comparable 상속 2. Comparator 인터페이스 이용
  • 결론)
  1. (2)번 정렬 방법
  • 기본상태
  • 가격 오름차순 정렬
  • 공격력 오름차순 정렬 (안정정렬)
  1. z정렬 방법.

👨‍⚖ 과거 면접 질문 by 호녹스

  • 자바의 메소드는 객체인가? 아닌가?
    • 네, 자바 1.8에서는 람다가 있기 때문에 함수를 객체처럼 쓸 수 있습니다.
  • 자바는 다중상속이 가능한가?
    • 아닙니다, 하지만 인터페이스를 이용해서 다중상속처럼 사용할 수 있습니다.

👍 그냥 자랑

  • 정보처리기사 합격! 야호!

👀 느낀점

오늘도.. 주말에 있을 공모전 최종 발표 준비를 하느라 따로 코딩 프로젝트는 손을 못댔다.. 호녹스의 수업시간 만큼은 열심히 들었지만 프로그래밍계가 수업듣는다고 되는것이 아닌걸 잘알고있다. 이번주 발표만 끝나면 다른 방해없이 미친듯이 코딩만 하고싶다..

참! 오늘 정보처리기사 자격증 합격 문자를 받았다!!
예상외로 높은 점수로 합격을 해서 매우매우 기쁘다 ㅎㅎ

📆 앞으로 할일

  • 자바 파일 입출력 공부하기
  • compareTo, Collections.sort(), Comparator
  • 오늘 이해 못한 자바의 정렬 공부하기
  • eqauls, toString @override 해보기!
  • 가계부 검색 기능 추가하기
  • 공모전 발표 준비 잘하기
profile
카르페디엠

0개의 댓글