(Effective Java) 규칙26-1. 제네릭 관련 용어 정리 제네릭 관련 용어 정리 아래 표에서는 5장(제네릭) 전반에 사용할 용어를 소개한다. 낮선 용어가 난무해 헷갈릴 때 참고하길 바란다. 한글 용어 영문 용어 예 아이템 매개변수화 타입 prrameterized type List 규칙 26 실제 타입 매개변수 actual type parameter String 규칙 26 제네릭 타입 generic type List 규칙 26, 29 정규 타입 매개변수 formal type parameter E 규칙 26 비한정적 와일드카드 타입 unbounded wildcard type List 규칙 26 로 타입 raw type List 규칙 26 한정적 타입 매개변수 bounded type paramete..
(Effective Java) 규칙 62. 다른 타입이 적절하다면 문자열 사용을 피하라 문자열(String)은 텍스트를 표현하도록 설계되었고, 그 일을 아주 멋지게 해낸다. 다만 문자열은 워낙 흔하고 자바가 잘 지원해주어 원래 의도하지 않은 용도로도 쓰이는 경향이 있다. 문자열의 남용 문자열은 다른 값 타입을 대신하기에 적합하지 않다. 많은 경우 파일, 네트워크, 키보드 입력으로부터 데이터를 받을 때 주로 문자열을 사용함 자연스러워 보이긴 하지만 입력받을 데이터가 진짜 문자열 일때만 그렇게 하는 게 좋음 기본 타입이든 참조타입이든 적절한 값 타입이 있다면 그것을 사용하고, 없다면 새로 하나 작성하라. 입력 데이터가 수치형이라면 int, float, BigInteger 등 적당한 수치 타입으로 변환해야 함..
(Effective Java) 규칙77. 예외를 무시하지 말라 예외 무시의 위험성 너무 뻔한 조언 같지만 사람들이 자주 어기고 있다. API 설계자가 메서드 선언에 예외를 명시하는 까닭은, 그 메서드를 사용할 때 적절한 조취를 취해달라고 말하는 것이다. API 설계자의 목소리를 흘려버리지 말자. 안타깝게도 예외를 무시하기란 아주 쉽다. 해당 메서드 호출을 try문으로 감싼 후 catch 블록에서 아무 일도 하지 않으면 끝임 // catch 블록을 비워두면 예외가 무시된다. 아주 의심스러운 코드다! try { ... } catch (SomeException e) { } 예외는 문제 상황에 잘 대처하기 위해서 존재하는데 catch 블록을 비워두면 예외가 존재할 이유가 없어진다. 운이 좋아 별 탈이 없으면 다..
문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한 사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예 입출력 예 설명 예제 #1 leo는 참여자 명단에는 있지만, 완주자 명단에..
문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 입출력 예 입출력 예 설명 예제 #1 앞에서 설명한 예와 같습..
Java 중복 없이 난수 생성 특정 범위의 난수(Random Number)를 중복없이 생성해야 할 상황에 간편하게 구현을 할 수 있는 방법을 알아보게 되면서 공유하고 한다. 해결방법 ThreadLocalRandom 사용 자바 8 이후로 Random클래스의 init() 메서드를 사용하여 distinct 옵션과 limit 옵션을 정한 IntStream을 얻을 수 있게 되었다. ThreadLocalRandom.current().ints(0, 100).distinct().limit(5).forEach(System.out::println); Collections.shuffle() 사용 list에 담긴 특정 범위의 수 들을 Collection.shuffle() 메서드를 사용하여 Random 하게 섞을 수 있습니다...
들어가며 intelij로 프로세스를 실행하다 보면 동일한 클래스를 이미 실행시킨 상태에서 실행하려 하면 팝업이 뜨게 된다. 어쩔수 없이 기존 프로세스를 죽인 뒤에 실행을 해야 됬는데 'parallel run'을 통해서 해결할 수 있는 방법을 공유하고자 한다. 해결방법 해당 프로세스의 Configuration을 수정 'Edit Configurations..' 클릭 (보통 한번 실행을 하게 되면 저장이 되게 됨) 오른쪽 상단의 'Allow parallel run' 체크 끝으로 이 글이 도움이 되었다면, Google 광고 한번씩 클릭 부탁 드립니다. 🙏🙏🙏 광고 클릭은 많은 힘이 됩니다!
(Effective Java) 규칙43. 람다보다는 메서드 참조를 사용하라 람다 람다가 익명 클래스보다 나은 점 중에서 가장 큰 특징은 간결함인데 람다보다도 더 간결하게 만들 수 있는 방법이 있다. 바로 메서드 참조(method reference) 임 예) 임의의 키와 Integer 값의 매핑을 관리하는 프로그램 값이 키의 인스턴스 개수로 해석된다면, 이 프로그램은 멀티셋(multiset)을 구현한게 됨 키가 맵 안에 없다면 키와 숫자1을 매핑하고, 이미 있다면 기존 매핑 값을 증가시킴 map.merge(key, 1, (count, incr) -> count + incr); 자바 8때 Map에 추가된 merge 메서드, 키, 값, 함수를 인수로 받아 수행하는 함수임 메서드 참조 위 코드는 깔끔한 코드지만..
- Total
- Today
- Yesterday
- 방통대 과제물
- effective java
- JavaFX Window Close
- 자전거
- intelij
- TableView
- windows
- 자바
- git
- 이펙티브
- JavaFX 종료
- 일본 여행
- 이펙티브자바
- effectivejava
- springboot
- 일본 자전거 여행
- 자전거 여행
- java
- Java UI
- JavaFX 테이블뷰
- 배낭여행
- 배낭 여행
- 일본 배낭여행
- 스프링부트
- 인텔리제이
- JavaFX Table View
- 일본여행
- JavaFX
- 이펙티브 자바
- 텐트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |