java
-
[매일읽기] Micro optimizations in Java. String.replaceAll개발자 라이프/매일읽기 2020. 9. 7. 11:14
원문: medium.com/javarevisited/micro-optimizations-in-java-string-replaceall-c6d0edf2ef6 Micro optimizations in Java. String.replaceAll In this post, we will discuss the usage of another prevalent code constructions, the String.replaceAll and String.replace methods, and we… medium.com 이번 글은 흔히 사용되는 String.replaceAll과 String.replace 메서드 사용법에 대해 다루며 자바 11 버전에서 이것들의 성능을 확인하고 어떻게 최적화할 수 있을지 알아본다. Stri..
-
[매일읽기] Java Integer Cache — Why Integer.valueOf(127) == Integer.valueOf(127) Is True개발자 라이프/매일읽기 2020. 8. 8. 09:59
원문 : https://medium.com/programmingmitra-com/java-integer-cache-why-integer-valueof-127-integer-valueof-127-is-true-e5076824a3d5 Java Integer Cache — Why Integer.valueOf(127) == Integer.valueOf(127) Is True posted by Naresh Joshi on November 25, 2018 medium.com 자바의 2가지 타입 primitive type : byte, char, short, int, float, double, long, boolean 메모리에 직접 값이 쓰임 reference type : primitive type 외의 객체에 대한..
-
[매일읽기] A short summary of Java coding best practices개발자 라이프/매일읽기 2020. 8. 6. 21:56
원문 : https://medium.com/@rhamedy/a-short-summary-of-java-coding-best-practices-31283d0167d3 A short summary of Java coding best practices based on coding standards by Oracle, Google, Twitter and Spring Framework medium.com 자바 소스 파일 한 소스 파일은 2,000 라인을 넘지 않는다. 소스 파일은 문서화된 주석과 함께 구성 패키지 선언 클래스에 관한 주석 import 부분 (static은 마지막에) 클래스/인터페이스 부분 네이밍 클래스와 인터페이스는 카멜 케이스 두문 문자와 같은 줄임말(ex. CEO) 외에 모든 단어에 적용 패키..
-
[매일읽기] Functional Patterns in Java개발자 라이프/매일읽기 2020. 8. 5. 11:17
원문 : https://medium.com/better-programming/functional-patterns-in-java-b2b781f84124 Functional Patterns in Java How to use different design patterns with functional programming in Java medium.com 프로그래밍 패턴들 행위 패턴 (Behavioral pattern) 객체 간 일반적인 상호작용을 정의하는 패턴 strategy, visitor, chain of reponsibility, template method, observer, iterator 패턴 등 생성 패턴 (Creational pattern) 객체를 생성하는 메커니즘을 포함하는 패턴 factory..
-
[매일읽기] Understanding Java threads once and for all개발자 라이프/매일읽기 2020. 8. 4. 21:45
원문 : https://medium.com/swlh/understanding-java-threads-once-and-for-all-711f71e0ec1e Understanding Java threads once and for all Sometimes, we want to perform several tasks at the same time. The computer can do this by using Threads. You might be reading this post… medium.com 스레드(Thread) 큰 데이터를 서브 셋으로 쪼개 병렬로 처리할 때 스레드로 처리할 수 있음 CPU 프로세서 코어 수 등 하드웨어 스펙에 따라 스레드 성능이 영향을 받을 수 있음 만약 스레드 수가 코어 수보다 많다..
-
[매일읽기] 10 things you’re doing wrong in Java개발자 라이프/매일읽기 2020. 7. 29. 10:23
출처 : https://towardsdatascience.com/10-things-youre-doing-wrong-in-java-7608e2f050c7 10 things you’re doing wrong in Java The most common mistakes Java developers make towardsdatascience.com 1. 접근 제어자를 잘 모른다 특히 protected 접근 제어자에 대한 이해가 부족 동일 패키지에서의 접근 허용 하위 클래스에서의 접근 허용 2. equals() 메소드를 사용하지 않는다 '==' 비교 연산자 대신 equals() 메소드를 사용할 것을 권장 특히 참조 변수 비교 시, 더욱 equals() 권장 3. String 추가 조합 연산 '+' 를 이용해서 St..
-
[매일읽기] Immutable classes in Java개발자 라이프/매일읽기 2020. 7. 26. 09:26
자바에서 불변 객체의 특징과 생성 방법을 알아본다 불변 객체의 특징 객체의 값(상태;state)가 변경되지 않는다. 변하지 않는 값으로 확신할 수 있으므로 개발 과정에서 안정적이다. 멀티 스레드 환경에서 안정적이다. VM 캐시 혹은 별도 구현 캐시에 쉽게 캐시하고 사용할 수 있다. equals() & hashCode() 가 구현된 상태에서 해시 컬랙션에 안정적으로 넣을 수 있다. 가변 객체에서 불변 객체 만드는 과정 No. 과정 취약점 1 setter를 제거하여 직접적인 변경을 막는다. 초기 데이터를 넣을 수 없다. 2 all args 생성자를 추가하여 데이터를 생성 초기에만 넣을 수 있도록 한다. 클래스 상속 후 데이터를 변경하는 메소드를 추가 구현하여 데이터를 변경한다. 3 final 클래스로 지정하..
-
[매일읽기] How to Write Clean Java Code개발자 라이프/매일읽기 2020. 7. 25. 10:14
자바 개발자를 위한 간단한 클린 코드 팁 1. 구조화 프로그램을 작성함에 있어서 클래스, 함수, 구조를 먼저 생각해볼 것 하나의 패키지에 너무 많은 클래스를 넣지 말고, 적절히 카테고라이징 할 것 잘 구조화되면 추후에 재구조화나 리팩토링 과정에서의 공수를 제거하거나 줄일 수 있음 2. 네이밍 클래스, 함수, 변수들의 이름은 그들 자신을 표현하는 것이므로 최대한 명시적으로 이름을 지정할 것 정확한 이름은 부수적인 설명을 줄일 수 있음 카멜 케이스는 기본 3. 클래스의 적절한 책임 분배 하나의 클래스는 그 클래스 목적에 맞는 책임만 가지도록 구성 너무 많은 책임을 가지는 클래스가 있다면 분해하거나 클래스 이름(목적)을 변경 하나의 책임을 가지는 하나의 클래스가 베스트 메소드는 하나의 문제만 해결. 4. 적절..