[링크] java 병렬 프로그래밍 관련 (concurrent, multi thread..)
Double-Checked Locking with Singleton Double-checked Locking Pattern (DCLP) 을 쓰지 말아야 하는 이유 Java volatile이란?
Double-Checked Locking with Singleton Double-checked Locking Pattern (DCLP) 을 쓰지 말아야 하는 이유 Java volatile이란?
apache commons-lang 3.2 이상을 사용하고 있다면 Field[] fields = FieldUtils.getAllFields([클래스]); 해당사항이 없다면 직접 구현 https://stackoverflow.com/questions/1042798/retrieving-the-inherited-attribute-names-values-using-java-reflection
/** * 매개변수로 받은 문자열 list에 중복이 존재할 경우 true, 아니면 false 리턴 * * @param list * @return */ public static boolean hasDuplicated(List<String> list) { if(list == null){ return false; } Set<String> set = new HashSet<>(list); if(set.size() < list.size()){ return true; } return false; } 참고 https://stackoverflow.com/questions/562894/java-detect-duplicates-in-arraylist
https://lionhead93.github.io/spring/DI-lombok/
https://kakaocommerce.tistory.com/45?category=368198
왜인지 모르겠으나…(협업 환경에서 잘못된 오버라이드?) IDE의 JDK 언어 레벨이 5로 되어 있어서, 람다식 등의 시그니처를 인식하지 못한 것으로 추측된다. 다시 IDE의 JDK 버전을 8로 맞추어 줬더니 정상동작 했다. 아오.. 갈 길이 바쁜데 이런 거 발목 좀 안 잡았으면 좋겠네. -_-/
https://github.com/b1uec0in/JosaFormatter 나중에 봐야지. 일단 깃헙 스타 박습니다~ https://okky.kr/article/549842
https://solbel.tistory.com/1240
newList.addAll(oriList); 는 언뜻 deep copy 인 것처럼 보이지만 아니다. 커스텀 클래스인 경우에는 Clonable 을 implement 하기도 한다고 한다. 나는 주로 List<Map> 구조를 사용하기 때문에 그냥 아래와 같이 했다. List<Map<String, Object>> newList = new ArrayList<>(); oriList.forEach(el -> { newList.add(new LinkedHashMap<>(el)); // 이걸로 완전한 deep copy가 이루어 지는지는 아직 모르겠다. });
https://towardsdatascience.com/25-lesser-known-java-libraries-you-should-try-ff8abd354a94
@Transient private String blabla;
* commons StringUtils.containsAny([타겟 문자열], [비교대상1], [비교대상2]..); * containsAll() 같은 건 없지만, 그거 비슷하게 구현한 메서드 public static boolean hasAndKey(String value, String… keys) { for (String key : keys) { if (value.contains(key) == false) { return false; } } return true; }
package com.app.util; import java.util.Locale; import java.util.Properties; import javax.servlet.http.HttpServletRequest; import org.springframework.context.MessageSource; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import org.springframework.core.io.support.PropertiesLoaderUtils; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import com.util.StringUtil; import lombok.extern.slf4j.Slf4j; /** * 웹 관련 유틸 클래스 * * @author STEVE */ @Slf4j public class WebUtil { /** * 현재 request url 에서 [http(s)프로토콜 부터 도메인까지]를 substring 한 문자열을… Read More »
org.springframework.test.util.ReflectionTestUtils.setField(obj, “fieldName01”, fieldValue01);
List<String> newList = list.stream().map(StringUtil::trim).collect(Collectors.toList()); * 참고 링크 Java 스트림 Stream (1) 총정리
/* * 기본적인 루프 * – map.forEach() */ map.forEach((k, v) -> System.out.println("key: " + k + ", value: " + v)); map.forEach((k,v) -> { System.out.println("key: " + k + ", value: " + v) }); map.entrySet().forEach((e) -> System.out.println("key: " + e.getKey() + ", value: " + e.getValue())); map.keySet().forEach((k) -> System.out.println("key: " + k)); map.values().forEach((v) ->… Read More »
java -XX:+PrintFlagsFinal -version | grep -iE ‘HeapSize|MetaSpaceSize|ThreadStackSize’ * 참고 링크 https://www.mkyong.com/java/find-out-your-java-heap-memory-size/
String rootPath = request.getServletContext().getRealPath(“/”);
private Map<String, OwnerVO> getSortedMapByOwnerTotChgVol(Map<String, OwnerVO> ownerMap) { List<Map.Entry<String, OwnerVO>> sortList = new LinkedList<>(ownerMap.entrySet()); Collections.sort(sortList, new Comparator<Map.Entry<String, OwnerVO>>() { @Override public int compare(Entry<String, OwnerVO> o1, Entry<String, OwnerVO> o2) { return ((o1.getValue().getTotChgVol() – o2.getValue().getTotChgVol()) < 0 ? 1 : -1); } }); Map<String, OwnerVO> sortedMap = new LinkedHashMap<>(); Iterator<Map.Entry<String, OwnerVO>> iter = sortList.iterator(); while(iter.hasNext()) { Map.Entry<String, OwnerVO>… Read More »
https://stackoverflow.com/questions/4154239/java-regex-replaceall-multiline