Git Product home page Git Product logo

studylog's Introduction

StudyLog

Rule

  • 한 주마다 리딩을 하는 사람 한명이 있고, 책을 읽다가 모르는 점, 기록으로 남겨 두고 싶은 예제 등 자유로운 방식으로 이슈를 추가한다.

  • 해당 이슈는 스터디 시간에 함께 살펴본다. 모두가 납득하면 close.

  • 해결하지 못한 이슈는 stuck 처리한다.

studylog's People

Contributors

polarhub25 avatar donghyeon3813 avatar

Watchers

 avatar

Forkers

donghyeon3813

studylog's Issues

item26. 비한정적 와일드 카드의 사용 용도

비한정적 와일드 카드를 사용한 list에는 null밖에 넣을 수 없다고 합니다.
그렇다면 왜 사용하는지? 어느 상황에 이것이 필요한지에 대해서 알면 좋을 것 같습니다.

item34.필요한 원소를 컴파일 타임에 다 알수있는 상수 집합이란? (219페이지)

우선 "필요한 원소를 컴파일 타임에 다 알 수 있는 상수 집합이란" 말이 명확하게 이해가 되지않았고, 이야기를 하다보니, static final과 열거타입은 사용법은 유사한데, 특정 상수값을 여러 클래스에서 가져다 쓸때 열거타입을 써야한다고 이야기가 나왔습니다.
--> 그렇다면 static final 과 enum class의 컴파일 범위는 다른건가요?

item15. 99p 클래스에서 public static final 배열 필드를 두거나 이 필드를 반환하는 접근자 메서드를 제공해서는 안된다. 이런 필드나 접근자를 제공한다면 클라이언트에서 그 배열의 내용을 수정할 수 있게 된다.

해당 문구에서 클라이언트가 그 배열의 내용을 수정할 수 있게 된다고 나와있는데, 여기서 이야기하는 클라이언트가 어떤건지, 어떤식으로 수정을 할수있는건지 명확하게 이해가 안되서 이슈로 올립니다.

item19. 123p . 효율적인 하위 클래스를 큰 어려움 없이 만들수 있게 하려면 클래스의 내부 동작 과정 중간에 끼어들수 있는 훅(hook)을 잘 선별하여 protected 메서드 형태로 공개해야 할수도 있다

  • public, default 상태로 재정의를 할수있는데 왜 protected로 공개해야 하는걸까요?
  • 훅 메소드 라는건 재정의 가능한 메소드를 말하는걸까요? 그렇다면 훅 메소드 라는 정의는 디자인 패턴의 용어로 이해하면 되는지 이야기 해보고싶습니다.

item37. Enummap 버전은 언제나 식물의 생애주기당 하나씩의 중첩 맵을 만들지만, 스트림 버전에서는 해당 생애주기에 속하는 식물이 있을때만 만든다. (228p)

Enummap 버전은 언제나 식물의 생애주기당 하나씩의 중첩 맵을 만들지만, 스트림 버전에서는 해당 생애주기에 속하는 식물이 있을때만 만든다.
==> 이 경우에 EnumMap과 Stream 중에 효율성이 더 좋은것은 무엇인지 이야기해보고 싶습니다.

item02.빌더

19p. 빌더 패턴은 계층적으로 설계된 클래스와 함께 쓰기에 좋다고 나와있는데,
추상 클래스에 빌더를 선언해 놓으면, 하위 클래스가 그 빌더를 오버라이딩 해서 사용할 수 있으므로 쓰기 좋다는 의미가 맞는지..?

item07. 리스너 혹은 콜백

39p 에서 말하는 리스너 혹은 콜백이 왜 메모리 누수의 주범인지, "뭔가 조치해주지 않는 한 콜백은 계속 쌓여갈 것이다" 라는 말의 의미에 대해서 알려주세요

item10. equals()는 항시 메모리에 존재하는 객체만을 사용한 결정적 계산만 수행해야한다.

61페이지에 있는 문구인데, 이 말의 의미와 객체 식별성이랑의 차이점이 정확히 이해가 가지않습니다. 객체 식별성도 두 객체가 메모상에서 같은 객체를 가리키는지 여부이고, 논리적 동치성이 equals()는 항시 메모리에 존재하는 객체만을 사용해야 한다고 한다면, 둘의 차이점..? 은 단순히 메모리 주소값을 비교하냐, 값 자체를 비교하냐의 차이로 보면 되는건지에 대해서 이야기해봤으면 좋겠습니다

item18. 117-118p의 코드가 이해가 가지 않아 이슈로 올립니다.

컴포지션은 기존 클래스가 새로운 클래스의 멤버를 사용하는 것을 뜻하는 걸로 알고 있습니다.
하지만 117p에 18-2 코드를 보게되면 이는 컴포지션이 아닌 컴포지션을 활용한 클래스를 상속한걸로 보이는데요 이걸 왜 컴포지션을 사용했다고 표현한건지 이해가 잘 가지 않습니다.
컴포지션의 사용은 118p에 18-3에서 사용한 걸로 보이는데 이를 왜 재사용할 수 있는 전달 클래스라고 한 것인지 이해가 가지 않습니다.

또한 117-118에서 이렇게 사용했을 때의 이점에 대해서 토론하고 싶습니다.

item45. Stream 동작원리

스트림의 중간연산과 종단 연산의 차이점과
스트림의 동작원리중 지연평가의 개념에 대해서 깊게 습득해서 토론해보아요

item06. 객체 풀

34p 에서 말하는 객체 풀이란? 무엇을 말하는 것인지 궁금합니다.

item03. 싱글턴 클래스의 역직렬화 관련 질문!

  1. 싱글턴 클래스를 직렬화하고 역직렬화할 때마다 새로운 인스턴스가 만들어지는 이유가 궁금해요!
  2. readResolve 메서드를 추가한 것만으로 역직렬화시에 원래의 인스턴스가 반환되는 이유에 대해서 이야기하고 싶습니다.

item.34 static final의 사용처

enum이 넓은 면에서 static final보다 장점이 많다고 합니다.
그렇다면 어떤 부분에서 static final을 사용하였을 때 enum을 사용했을 때보다 더 좋은 효과를 가져올까요?

item01. 호출될때마다 새로운 객체를 생성하지 않아도 된다는 내용 질문!

호출될때마다 새로운 객체를 생성하지 않아도 된다는건,

  1. 그럼 동일한 a객체를 동일한 프로젝트 내에 있는 클래스에서 사용한다는 의미인지,
  2. 그렇게 되면 의존성(?)이 커지게 되서 문제가 발생할 수 있지않을까..?
  3. 그리고 동일한 객체를 공유하면서 사용할지 , 또는 새로운 객체를 생성하는지에 대한 기준은 프로젝트 마다 달라질수있는지에 대해서 이야기해보고 싶습니다.

item24. 중첩 클래스 종류

중첩 클래스 종류에 대해서 책에 예시가 없고, 내용 자체가 크게 와닿지 않아서 다음 스터디때 각자 이해한 내용에 대해서 자세히 스터디 했으면 합니다..! 그리고 관련된 이슈사항이나 정리된 내용이 있다면 하위에 달아주세요!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.