📚 전체글176 표준 예외를 사용하자 이 글은 책 이펙티브 자바 3판 Item72과 하단 Reference 참고했습니다. 잘못된 내용이 있다면 편하게 말씀해주세요 🙏🏻 결론 자바 언어가 제공하는 표준 예외는 충분히 많다. 직접 만들지 말고 현재 상황에 맞는 표준 예외를 찾아 사용하자 이전 글 표준 라이브러리를 익히고 사용하자 에서 표준 라이브러리를 써야 하는 이유에 대해 알아봤다. 예외를 던질때도 마찬가지이다. 표준 예외를 사용하자. 왜? 읽기 쉬워진다. 메모리 사용량 감소, 클래스 적재 시간 감소, 예외도 직렬화에 포함되기 때문에 표준 사용이 좋다 자주 쓰이는 예외 예외 쓰임 예 IllegalArgumentException 허용하지 않는 값이 인수로 건네졌을 때 (null일 때 써도 되지만 따로) 나이를 나타내는 매개변수에 음수가 들어올 .. 2022. 2. 6. 자바에서 객체 복사는 clone()이 아닌 복사 생성자, 팩토리를 사용하자 이 글은 책 이펙티브 자바 3판 Item 13과 하단 Reference를 참고했습니다. 잘못된 내용이 있다면 편하게 말씀해주세요 🙏🏻 결론 객체를 복사할 때 특별한 경우(이미 Cloneable로 구현한 클래스로 사용하고 있을 때)를 제외하고 복사 생성자와 복사 팩토리를 사용하자 자바에서 객체를 복사할 때 어떻게 할까? 방법은 보통 2가지가 있다. 1. Object 객체의 clone() 메서드 + Cloneable 인터페이스 사용 2. 복사 생성자 또는 복사 팩토리 사용 1번의 경우 Object.clone() 메서드가 있다. 복사가 필요한 클래스에서 이를 오버 라이딩하여 사용한다. 이때 Cloneable 인터페이스를 받아 구현한다. Cloneable를 받지 않으면 clone()는 예외를 던지게 설계되어있기.. 2022. 2. 5. [주간 회고] 22.01. 4주차 👫🕹 일기 형태로 작성되었습니다. 월, 화요일 멀티 프로세스, 스레드 스케줄링하는 프로젝트를 했다. 스케줄링에 라운드 로빈을 적용했다. 자바에서 처음으로 스레드 생성을 했다. 자세한 내용은 일일 회고로 대체한다. [일일 회고] 22.01.24~25 - 자바의 동시성 프로그래밍과 몇 개의 아이템 적용 JK의 그룹 리뷰 시간도 유익했다. 인간과 인공지능의 차이점은 인간은 '모르는 것'을 바로 모른다고 할 수 있다. 하지만 기계는 모른다고 대답하기 위해 기계가 알고 있는 모든 정보를 검색, 계산하고 마지막에 모른다고 한다. 모르는 것을 아는 것, 비판적 사고와 메타인지를 높이는 것은 배움에 중요한 요소다. 또한 이미 안다고 하는 것을 점검할 필요가 있다. 사실 모르는 것인데 해당 지식을 자주 접하면 친숙하게 느껴져.. 2022. 1. 30. [일일 회고] 22.01.24~25 - 자바의 동시성 프로그래밍과 몇 개의 아이템 적용 📚개발 일지 어제, 오늘은 자바로 멀티 프로세스와 스레드 스케줄링을 공부하고 간단하게 구현했다. 저번 주 프로젝트에선 탑다운, 설계에 많은 시간을 두었다. 하지만 너무 큰 범위로 설계해서 실제로 작게 쪼개 구현하는 일이 어려웠다. 이번 프로젝트는 설계를 대략적으로 잡고 바텀엄 방식으로 바닥부터 작은것 하나씩 구현했다. 구현하면서 처음 설계했던 부분을 보충하는 식이었다. 작게 구현하다 보니 구현체에 자신감이 생기고 즐거움이 있었다. 프로젝트에 적용한 아이템(?)은 다음과 같다. ✅ toString() 재정의 + StringBuilder 를 활용한 주요 정보 반환 2022.01.15 - 모든 구현 클래스에서 Object의 toString 재정의를 고려하자 🗣 에 정리했던 item12를 적용했다. 매번 객체의.. 2022. 1. 25. 자바의 동시성 프로그래밍, 가변 데이터를 동기화하는 3가지 방법(+a. 자바 기본 타입의 원자성에 대하여) 이 글은 책 이펙티브 자바 3판 Item78과 하단 Reference 참고했습니다. 잘못된 내용이 있다면 편하게 말씀해주세요 🙏🏻 주제 공유 중인 가변 데이터는 동기화해 사용하라 결론 가변 데이터는 공유하지 않는 게 좋다. 하지만 공유해야 한다면 가변 데이터의 읽고, 쓰는 동작에 동기화를 신경 써야 한다. 동기화 방법은 3가지(synchronized, Atomic class, volatile)가 있다. 적재적소에 사용하자. 목차 동기화란? synchronized Atomic class (java.util.concurrent.atomic) volatile 예제 StopThread +a 자바 기본 타입의 원자성에 대하여 동시성 프로그래밍에서 스레드 간 데이터를 공유할 때는 불변 데이터만 공유하거나 가변 데이.. 2022. 1. 24. 이전 1 ··· 21 22 23 24 25 26 27 ··· 36 다음