(Effective Java) 규칙63. 문자열 연결은 느리니 주의하라 문자열 연결 연산자 문자열 연결 연산자(+)는 여러 문자열을 하나로 합쳐주는 편리한 수단이다. 그런데 작고 크기가 고정된 객체의 문자열 표현을 만들때라면 괜찮지만, 본격적으로 사용하기 시작하면 성능 저하를 감내하기 어렵다. 성능 문제 문자열 연결 연산자로 문자열 n개를 잇는 시간은 n^2에 비례한다. 문자열은 불변(규칙 17)이라서 두 문자열을 연결할 경우 양쪽의 내용을 모두 복사해야 하므로 성능 저하는 피할 수 없는 결과이다. 예) 문자열 연결을 잘못 사용한 예 public String statement() { String result = ""; for (inti = 0; i < numItems(); i++) result +=lin..
(Effective Java) 규칙64. 객체는 인터페이스를 사용해 참조하라 규칙51에서 매개변수 타입을 클래스가 아니라 인터페이스를 사용하라고 했다. 조언을 "객체는 클래스가 아닌 인터페이스로 참조하라"고까지 확장할 수 있음 인터페이스 타입 적합한 인터페이스만 있다면 매개변수뿐 아니라 반환값, 변수, 필드를 전부 인터페이스 타입으로 선언하라. 객체의 실제 클래스를 사용해야 할 상황은 '오직' 생성자로 생성할 때 뿐임 예) Set 인터페이스를 구현한 LinkedHashSet 변수를 선언 //좋은 예. 인터페이스를 타입으로 사용했다. Set sonSet = new LinkedHashSet(); //나쁜 예. 클래스를 타입으로 사용했다! LinkedHashSet sonSet = new LinkedHashSe..
들어가며 Perl 설치중 Perl MakeFile.PL명령을 실행하니 아래와 같은 오류가 발생했다. Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at [Makefile.PL](http://makefile.pl/) line 7. 해결방법 해결방법은 간단하다. CPAN을 설치해주자. yum install perl-CPAN 끝으로 이 글이 도움이 되었다면, 하단의 Google 광고 👎👎👎 한번씩 클릭 ..
(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 블록을 비워두면 예외가 존재할 이유가 없어진다. 운이 좋아 별 탈이 없으면 다..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bmwM4o/btqCu0o5xp7/kT5jXoVniELbLMMf3Uktr1/img.png)
문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한 사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예 입출력 예 설명 예제 #1 leo는 참여자 명단에는 있지만, 완주자 명단에..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/caaMZQ/btqCsHQ7BFC/FIKuQS7U28Cw2QlPWtWR6k/img.png)
문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 입출력 예 입출력 예 설명 예제 #1 앞에서 설명한 예와 같습..
- Total
- Today
- Yesterday
- git
- JavaFX
- 텐트
- JavaFX 종료
- TableView
- 스프링부트
- windows
- 일본 배낭여행
- 이펙티브 자바
- 방통대 과제물
- springboot
- intelij
- 이펙티브
- 일본여행
- 배낭여행
- effective java
- JavaFX Table View
- JavaFX Window Close
- 자바
- Java UI
- 자전거
- 일본 여행
- 자전거 여행
- 일본 자전거 여행
- java
- 인텔리제이
- 이펙티브자바
- effectivejava
- 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 |