자바에서 이런게 된다고? 네.. 가능합니다. 한번 보시죠!

Поділитися
Вставка
  • Опубліковано 21 жов 2024

КОМЕНТАРІ • 34

  • @p2p945
    @p2p945 2 роки тому +5

    이펙티브 자바 책을 봐야지봐야지 하면서 계속 미루고만 있었는데, 이렇게 강의로 내주신다면 감사히 수강하겠습니다.

  • @김태민-k2q
    @김태민-k2q 2 роки тому

    안녕하세요 기선님 영상 잘봤습니다
    질문 두개가 있는데, 하나는
    왜 가비지 컬렉터를 호출하는것인가요? 제가 알기론 가비지 컬렉터는 사용하지 않는 변수 혹은 인스턴스의 메모리를 해제하는 것으로 알고있는데 둘의 연관관계를 모르겠습니다.
    2번째 질문은
    Account account = null로 지정하고 왜 try 부분에서 인스턴스를 할당하는것인가요?
    제가 직접 try 부분에 Account account = BrokenAccount(“푸틴”) 으로 완전객체를 만들어서 테스트 해본결과 actual값은 똑같아서요.
    기선님이 예제 테스트케이스를 짤때 불완전한 객체로 만들어야 한다는 언질을 남긴거 같아서요,
    항상 영상 잘보고있습니다 매번 감사합니다.

    • @김지훈-x4x
      @김지훈-x4x Рік тому

      Finalize 는 gc 돌때 호출됩니다

    • @김태민-k2q
      @김태민-k2q Рік тому

      @@김지훈-x4x 잊고있었는데 드디어 알았네요.. 감사합니다

  • @jameschoi3137
    @jameschoi3137 2 роки тому +1

    인터뷰 질문으로 사용하기 좋네요. 감사합니다.

    • @keesun.b
      @keesun.b  2 роки тому +2

      음 이건 너무 심한것 같고요. 이 영상 맨 뒤에 이어지는 영상을 인터뷰 질문으로 쓰시면 좋을 것 같습니다.

  • @trustarMello
    @trustarMello 2 роки тому +1

    준비하시는 강좌가 혹시 The Java 씨리즈의 여러 해킹과 보안에 관한건가요?ㅋ

  • @yonsonlee3721
    @yonsonlee3721 2 роки тому +1

    재미있고 유익하네요!! 감사합니다 ㅎㅎㅎ

  • @야생원숭이-g7z
    @야생원숭이-g7z 2 роки тому +1

    예외가 발생하고 gc후 객체가 죽을때 finalize메소드를 실행하는것을 이용해 이체를 한다,,
    단, sleep으로 매인객체가 죽는걸 잠시 잡아두는 사이에 이체작업은 끝내야하는거,,,
    인가요??

    • @keesun.b
      @keesun.b  2 роки тому +2

      아니 그게 아니구요. 3초는 GC가 실행이 될 수 있도록 시간을 좀 벌어준거죠. System.gc()를 호출한다고 GC가 바로 될거라는 보장이 없어서요.

  • @jinseokkim9300
    @jinseokkim9300 Рік тому

    오 재밌네요

  • @jjo954
    @jjo954 2 роки тому

    오 영상을 보고 책을 다시 보니 이해가 확실히 잘되네요! 감사합니다~

  • @hancoding
    @hancoding 2 роки тому

    ㅋㅋㅋㅋㅋㅋㅋ 몰라도 되는데~ 하시는 게 너무 유쾌하십니다 재밌게 봤습니다 선생님!

  • @loopinger1737
    @loopinger1737 2 роки тому +1

    덕분에 새로운 지식을 알고갑니다.
    당연히 오버라이딩 하실줄 알았는대 finalize 상속이라니 생각도 못했습니다.

  • @나재헌-m4o
    @나재헌-m4o Рік тому

    와 엄청 신기하네요

  • @eung-ae12345
    @eung-ae12345 Рік тому

    오... 재밌네요

  • @네이팔
    @네이팔 2 роки тому

    잠시 해커가 되는 상상을 했네요 재밌는주제의 강의였어용

  • @miv-6031
    @miv-6031 2 роки тому

    오..재밌어요 ㅋㅋㅋ

  • @ykc2283
    @ykc2283 2 роки тому

    궁금한게 있는데요, Finalizer 공격이 가능케할려면 소스코드 수정 권한이 있어야하는것아닌가요? 소소코드 부분은 어떻게 가능케하나요?

    • @keesun.b
      @keesun.b  2 роки тому

      영상은 보시고 나서 질문하시는거죠?

    • @ykc2283
      @ykc2283 2 роки тому

      @@keesun.b 아 넵 봤습니다! 제가 질문을 구체적으로 못한것같아서 죄송합니다. 그러니까 제 말의 뜻은 Account를 상속받는 새 클래스를 만든다 하더라도 결국은 코드가 빌드되는 환경 안에 그 클래스가 있어야하지 않나?라는 의문이었습니다.

    • @keesun.b
      @keesun.b  2 роки тому +1

      @@ykc2283 당연히 코딩을 해야 하니까 빌드가 되는 환경이 필요한건 맞는데요. Account 코드를 수정할 필요는 없구요. (영상에서 보여드렸다시피) 이미 빌드되서 컴파일된 클래스 파일만 참조할 수 있으면 (클래스패스에 추가해서) 가능합니다.

    • @ykc2283
      @ykc2283 2 роки тому

      @@keesun.b 그렇군요 감사합니다~

  • @정태혁-s3u
    @정태혁-s3u 2 роки тому

    재밌네여 ㅋㅋ

  • @오성민-h8c
    @오성민-h8c 2 роки тому

    재밌네요 ㅋㅋ

  • @파랑레몬캔디
    @파랑레몬캔디 8 місяців тому

    finalize attack
    final class로 만들거나 class에 finalize를 만들어서 사용

  • @은빛개발자
    @은빛개발자 2 роки тому +4

    Thread.sleep(mills: 3000L);
    이렇게 콜론은 java 몇 버전부터 되는건가요?

    • @팡팡-j1e
      @팡팡-j1e 2 роки тому +1

      통합개발도구인 Intellij 기능이예요. 타이핑한 것이 아닙니다.

    • @은빛개발자
      @은빛개발자 2 роки тому +1

      @@팡팡-j1e 아 네...감사합니다.

    • @생각플러스
      @생각플러스 2 роки тому +1

      이클립스도 어시스트 뭐시기 기능키면 됨

  • @성이름-r6y
    @성이름-r6y 2 роки тому +1

    사용하시는 키보드 모델이 뭔가용?? 소리가 착착 감겨용

    • @keesun.b
      @keesun.b  2 роки тому

      매직키보드 입니다 ㅋ

  • @셜루-e4h
    @셜루-e4h 2 роки тому

    제 계좌도 추가해주세요 🙇‍♂️

  • @iamdanmuzi
    @iamdanmuzi 2 роки тому +1

    finalizer 자체를 사용하는게 예측이 힘들고 위험하기 때문에 개인적으로는 아래 방법을 더 선호합니다.
    public class Account {
    private String name;
    public Account(String name) {
    this(checkPutin(name));
    this.name = name;
    }
    private Account(Void checkPutin) {
    }
    private static Void checkPutin(String name) {
    if (name.equals("푸틴")) {
    throw new IllegalArgumentException("푸틴은 안 돼~");
    }
    return null;
    }
    public void transfer(int amount, String to) {
    System.out.printf("transfer %d from %s to %s.", amount, this.name, to);
    }
    }