언어/JAVA26 Java8 Parallel Stream, 효율적으로 사용해야합니다. 람다 참고 https://www.popit.kr/java8-stream%EC%9D%98-parallel-%EC%B2%98%EB%A6%AC/ https://m.blog.naver.com/tmondev/220945933678 Java8에서 최대 변경사항은 람다라고 할 수 있습니다. 람다식을 효과적으로 사용할 수 있도록 기존 API에 람다를 대폭 적용하였으며, 그 대표적인 인터페이스가 Stream입니다. 스트림 인터페이스는 컬렉션을 파이프 식으로 처리하도록 하면서 고차함수로 그 구조를 추상화합니다. 스트림을 사용하면서, 여러 줄의 코드로 작업했던 로직을 간편하게 처리 할 수 있게 되고, 가독성 또한 높아졌습니다. 특히 Parallel Stream은 병렬연산을 쉽고 간단하게 처리해주니 정말 매력적으로 보입니다.하지.. 언어/JAVA 2024. 5. 7. java 모던자바 람다 스트림 - 병렬 처리 테스트 배경 - 병렬 처리 가동시 정상 작동하는지 확인하기 위해 테스트 코드 작성 - 병렬로 1부터 n 까지 더했을시 동기화 문제가 발생하지 않고 정상작동하나 확인 코드는 아래에... 알게된 정보 1. 그냥 int 로 더하는 작업하면, 정상값이 나오지 않는다. atomicint로 사용해야 제대로 된 값이 나옴 2. parallel 사용시 메인쓰레드에서 돌아서, forkjoinpool 를 사용해야 한다고한다. 안쓰면 메인쓰레드만 사용해서 서버 죽을수있다는 경험을 전해들음 그래서, 다른 쓰레드로 동작하도록 하기 위해 forkjoinpool 을 사용한다. package io.swagger.service; import java.util.HashMap; import java.util.Map; import java.uti.. 언어/JAVA 2022. 8. 16. 자바 8 Stream API 과 주의사항 이 글은 자바 8 Stream API 를 아는 사람이 주의해야 할 것에 대해 쓰여진 글이지만 , 몰라도 상관없습니다. 이 글 읽어보면 대충 이런거구나 알 수 있으니깐요. Java 8 Stream API 을 배워야하는 이유로 "가독성/간편성" 과 "성능/공짜점심" 으로 보통 꼽습니다. * 가독성 코어 자바 1 2 3 4 5 6 7 8 9 10 11 private static int sumIterator(List list) { Iterator it = list.iterator(); int sum = 0; while (it.hasNext()) { int num = it.next(); if (num > 10) { sum += num; } } return sum; } Stream API 1 2 3 private .. 언어/JAVA 2022. 6. 29. 가비지컬렉션 GC heap dump 분석 조건 쿠버네티스 파드 메모리 증가로 어떤게 쓸데없이 메모리를 차지하는지 분석, 수정이 필요함 방법 가비지 컬렉션 찾는거 검색하니까, 대부분 jmap 으로 heapdump 생성을 하고있음 나도 마찬가지로 jmap heapdump 떠서 분석하려함 eclipse memory analyzer (MAT)를 실행하여 분석하려고 함 https://blog.naver.com/pcmola/222038466393 -> 정확한 분석이 안됨. 파드 메모리가 보통 5~6G 였는데 해당툴로 돌려보면 heap이 64Mb 로 나옴 ( heap이 아닌 다른데서 누수가 있거나, 해당 툴이 정확한 분석을 못한다고 둘중 하나로 판단 ) -> 우선 다른 툴로도 한번 실행해보기로함 -> jdk 에 기본설치된 visual VM 으로 돌려봄 ht.. 언어/JAVA 2021. 6. 3. json 변환시 urlencode 발생 해결방볍 Gson을 사용하여 json변환 작업시, = 문자가 \u003d로 변환되서 나오는 것을 목격 Map map = new HashMap(); map.put("id", "asd12sdnwe=="); Gson gson = new Gson(); String json = gson.toJson(map); asd12sdnwe\u003d 이런식으로 출력된다. 문제해결을 위해 구글링을 했더니 아래와 같이 gson 을 사용하면 유니코드로 변환되지않는다. Map map = new HashMap(); map.put("id", "asd12sdnwe=="); Gson gson = new GsonBuilder().disableHtmlEscaping().create(); String json = gson.toJson(map); ---.. 언어/JAVA 2021. 3. 17. 옵저버 패턴 참조 사이트 GOF java 디자인 패턴 https://stackoverflow.com/questions/1673841/examples-of-gof-design-patterns-in-javas-core-libraries/2707195#2707195 https://gdtbgl93.tistory.com/8 [디자인패턴] 옵저버 패턴 (Observer Pattern) - Java 내장 객체 사용 지난 시간에는 옵저버 패턴의 기본 개념과 구현하는 것에 대해서 알아보았습니다. 우리가 알아본 옵저버 패턴은 흔하게 사용하는 디자인 패턴 중에 하나입니다. 특히 이벤트 처리에 사용되는데 gdtbgl93.tistory.com https://jusungpark.tistory.com/8 디자인패턴 - 옵저버 패턴 (observer pat.. 언어/JAVA 2020. 7. 28. [json] 키 값 전체 리스트, 그 키와 value 값 불러오기, 키 값 전체 리스트 목표 1. json 에 키값만 추출 2. 키값에 따른 value 값 추출 3. key, value 둘다 추출 - 키 값 추출하는 자료 Get JSON key name using GSON https://stackoverflow.com/questions/22358243/get-json-key-name-using-gson/22358779 - 이것도 키 값 추출하는 자료긴 한데, value 도 뽑을수 있음 Java GSON: Getting the list of all keys under a JSONObject https://stackoverflow.com/questions/31094305/java-gson-getting-the-list-of-all-keys-under-a-jsonobject 두개 잘 조합하면 됨.. 언어/JAVA 2019. 12. 27. [java] iterator 병합 merge db 조회값 iterator 두개를 merge 시켜야할때가 있다. 두가지 방법이있음 둘다 잘되긴함. 성능은 뭐가 나은지 모름 1. Guava (formerly Google Collections) has Iterators.concat. Iterator rows = Iterators.concat(rows_l, rows_b); 2. import org.apache.commons.collections4.iterators.IteratorChain; 사용 IteratorChain rows = new IteratorChain(rows_l, rows_b); 두개 라이브러리 잘 찾아서 doc 보고 하면 잘됨. https://stackoverflow.com/questions/3610261/is-it-possible-to-.. 언어/JAVA 2019. 9. 3. HttpURLConnection클래스로 웹페이지 POST 요청하기 , 서버에서 페이지 요청 방법 http://arabiannight.tistory.com/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9CAndroid-HttpUrlConnection-Request-%EC%84%A4%EB%AA%85-%EB%B0%8F-%EC%84%A4%EC%A0%95-%ED%95%98%EA%B8%B0-header-get-post-body%EB%93%B1 http://ibabo.tistory.com/266 http://fruitdev.tistory.com/21 언어/JAVA 2017. 8. 23. 왜 항상 자바Java는 C++보다 느린가? http://sungpi.postach.io/post/wae-hangsang-jabajavaneun-c-boda-neuringa 이 글은 Dejan Jelovic님의 글을 번역 한 글입니다. 수 많은 오역이 있을 수 있습니다. 피드백 부탁드립니다!“자바Java는 높은 능률Performance을 가졌다. 그럭저럭 높은 능률. 그리고 그럭저럭 이란 느림을 뜻한다." Mr. Bunny( http://www.mrbunny.com/ )자바Java 프로그래밍을 해본 사람이라면, 자바Java로 짜여진 프로그램들은 C++로 짜여진 프로그램보다 느린 걸 안다. 이것은 자바Java를 사용하는 사람들이 받아들여야 하는 인생의 진리이다.그러나 많은 프로그래머들은 이 것이 임시적인 상황일 것이라고 자위하고, 남들을 설득하곤 한.. 언어/JAVA 2016. 12. 8. Scanner와 BufferedReader의 차이 http://blog.naver.com/PostView.nhn?blogId=crazydeicide&logNo=130115264169 흠...전에 포스팅 했던 것도 있고, 기왕 포스팅 한것 조금 더 자세히 써보자라는 의미에서의 포스팅 Scanner와 BufferedReader의 차이는 일단Java 예전 버전에선 BufferedReader를 사용하다가새로 나온것인 Scanner라는 점. 당연히 예전 코드에서는 BufferedReader가 주로 사용되었지만,요즘은 Scanner가 사용된다는 사실. 두번째론 자료를 입력받는 방식에서 차이가 있다는 점.Scanner는 뒤에 메소드를 어떤 점을 사용하느냐에 따라,(일단 BufferedReader reader = new BufferedReader(new InputSt.. 언어/JAVA 2016. 11. 29. System.in.read() 표준입출력, http://androiddeveloper.tistory.com/57 http://commin.tistory.com/41 http://blog.naver.com/PostView.nhn?blogId=crazydeicide&logNo=130115264169 언어/JAVA 2016. 11. 25. 이전 1 2 3 다음