[JAVA] Effective JAVA. 9장 일반적인 프로그래밍 원칙 1편(item 57, 58, 59, 60)
·
언어/JAVA
개요 회사 업무로 진행하는 이펙티브 자바 세미나 자료 내용이다. 책과 블로그를 참고하였으며, 자세한 코드는 여기서 확인할 수 있다. GitHub - cobinding/effective-java-semina: [JAVA] 인턴십 업무로 진행한 Effective-JAVA 세미나 코드 [JAVA] 인턴십 업무로 진행한 Effective-JAVA 세미나 코드. Contribute to cobinding/effective-java-semina development by creating an account on GitHub. github.com 9장은 내용이 많아서 1편과 2편으로 나누어서 포스팅할 예정이다. item 57. 지역변수의 범위를 최소화하라. 코드 가독성과 유지보수성을 위해 지역변수의 유효 범위를 최소..
[JAVA] 날짜/시간 클래스 알아보기(Date, LocalDateTime, ZoneDateTime)
·
언어/JAVA
개요 회사에서 새로운 기능 추가를 위해 팀원 분이 Date를 쓴 것을 발견하였다. 이펙티브 자바 스터디에서 Date클래스는 사용을 지양해야 한다고 공부했기에 이 부분에 대해 자세한 기록을 남겨 곱씹어야겠다고 다짐했다. DATE java의 util 클래스다. 공식 문서를 살펴 보면, Date 클래스가 구현한 인터페이스는 다음과 같다. Serializable: 특별한 메소드를 포함하지 않는 마커 인터페이스다. 객체의 상태를 저장하거나(메모리에 존재하는 객체를 디스크에 저장) 네트워크를 통해 전송할 수있도록 바이트 스트림으로 변환하는 것이다. Clonable: 이또한 마커 인터페이스다. 객체를 복사할 때 사용된다. Comparable: Date의 compareTo 메소드를 지원하는 인터페이스다. DATE 클래..
[JAVA] Effective Java. 6장 열거 타입과 애너테이션
·
언어/JAVA
개요 회사 업무로 진행하는 이펙티브 자바 세미나 자료 내용이다. 책과 블로그를 참고하였으며, 자세한 코드는 여기서 확인할 수 있다. GitHub - cobinding/effective-java-semina: [JAVA] 인턴십 업무로 진행한 Effective-JAVA 세미나 코드 [JAVA] 인턴십 업무로 진행한 Effective-JAVA 세미나 코드. Contribute to cobinding/effective-java-semina development by creating an account on GitHub. github.com item34. int 상수 대신 열거 타입을 사용하라 같은 그룹으로 묶이는 int 타입 상수들은 나열하지 말고, enum 클래스를 활용하자. 열거 타입은 그 자체가 클래스이..
[JAVA] 익명 클래스(Anonymous Class), 람다식(Lambda)
·
언어/JAVA
개요 Effective Java 7장에서 등장하는 개념을 공부하기 위한 포스팅이다. 1-1) 익명 클래스(Anonymous Class) 프로그램에서 일시적으로 한번만 사용되고 버려지는 객체다. 분명히 Java Spring을 공부할 때는 코드의 재사용성을 고려하며 프로그래밍을 해야 좋은 개발자라고 배웠다. 그렇다면 재사용이 불가능하고 확장성도 좋지 않은 익명클래스를 왜 사용하는 걸까? 프로그램 내에서 일시적으로 사용되는 객체 처리에 사용한다. 확장성을 활용하는 것이 유지보수에서 더 불리할 경우에 사용한다. 해당 블로그 에서 이를 이해하기 위한 아주 좋은 예시를 들고 있다. 일부를 발췌해서 이해해보자. 1-2) 확장성이 필요없는 극단적인 예시 (출처) 곤충이라는 부모클래를 상속받는 거미 구현 클래스가 있다...
[JAVA] JAVA String | StringBuilder | 문자열 결합 연산 | 문자열 연산의 복잡도
·
언어/JAVA
문자열 연산 최적화 산학 프로젝트 냉시피 개발 중 내가 크롤링한 값을 저장하기 위해 어떤 자료형을 쓸 지 많이 고민을 했는데, 그 과정 중 알게된 java StringBuilder에 대해 정리해보려고 한다. 처음에는 크롤링값: [재료이름, 재료수량]을 Map으로 묶어서 리스트로 저장을 하려고 했다. 하지만 걱정되었던 것이 1. 크롤링 자동화가 안되었는데 복잡도가 O(n)이면 성능 상 좋지않다.(크롤링 시 N=6만을 넘고, 그 이상이 될 확률이 매우매우 높은 상황.) 2. 이걸 도메인으로 구현을 해야하는데 어떤 column 값에 리스트를 어떻게 저장할까 였고, 이 문제를 해결하기 위한 조사를 통해 StringBuilder라는걸 알게 되었다. 결론적으로 [재료이름, 재료수량]을 하나의 문자열로 결합해야 한..
sebinChu
'언어/JAVA' 카테고리의 글 목록