본문 바로가기

개발중/Java

(74)
java 8 stream api documentation int sum = numbers.parallelStream().reduce(0, Integer::sum); 일반적인 방법 int sum = 0; for (int x : numbers) { sum += x; } 람다식 방법 int sum = numbers.stream().reduce(0, (x,y) -> x+y); int sum = numbers.stream().reduce(0, Integer::sum); int sum = numbers.parallelStream().reduce(0, Integer::sum); Stream API 란 Java 8에서 새롭게 추가된 Api로 함수형 인터페이스(람다식)을 적용하여 컬렉션과 같은 저장요소를 반복적으로 처리할 수 있는 기능이다. java에서 완전한 Funtiona..
[Java] Java8 람다식 Java 8 부터 자바에 람다식이 도입되었습니다. 람다식은 익명 함수를 생성하기 위한 식입니다. 자바에서 람다식은 함수형 인터페이스를 구현하는 모습으로 사용되는데 이는 함수형 프로그래밍에 알맞습니다. 자바에서의 람다식은 함수형 인터페이스의 메소드를 간편하게 구현하여 사용하는데에 그 목적이 있습니다. 이제부터 람다식의 특징과 관련된 내용을 설명해보겠습니다! 람다식 장단점 장점 메소드의 구현을 간결하게 하여 가독성을 높인다 람다로 구현하여 코드 줄 소비를 줄일 수 있다. 함수형 프로그래밍을 바탕으로 병렬 프로그래밍이 가능하다. 지연 연산을 이용하여 향상된 퍼포먼스를 보여줄 수 있다. 단점 람다식이 남용된다면 오히려 프로그램의 코드를 이해하기 어려울 수 있다. 람다식을 재귀로 활용할 경우 까다롭다. 함수형 인..
String,StringBuffer, StringBuilder 차이점 String StringBuffer StringBuilder 차이점 String = immutable(불변) StringBuffer = mutable(가변) StringBuilder = mutable(가변) String 다시 말해서, String 클래스는 StringBuffer 클래스나 StringBuilder 클래스와 다르게 리터럴을 통해 생성되면 그 인스턴스의 메모리 공간은 절대 변하지 않는다. StringBuffer StringBuffer는 불변객체가 아니다. 내부적으로 buffer를 가지고 있는데, StringBuffer 인스턴스를 생성할때는 적절한 길이의 char형 배열이 생성되고, 이 배열은 문자열을 저장하고 편집할때 사용하는 buffer가 된다. 여기서 적절한 길이를 지정해야 하는 이유는, ..
Demon 만들기 (API 사용) Demon 만들기 [1] 10분마다 한 번씩 도는 프로세스 1. API 사용 2. 1000건의 데이터를 테이블에 저장 테이블 데이터가 만건이 되면 프로세스 실행 안함 3. i_title, i_content 테이블 생성 [2] 테이블 데이터가 10000건일 경우에만 실행되는 프로세스 1. title과 content 합침 2. 특수문자 제거해서 새로운 테이블에 줄바꿈 단위로 저장 API를 이용해서 DATA 가지고 오기 URL 에 실어보낼 데이터 조합 후 API 접촉 시도 package com.rsn; import java.util.HashMap; import java.util.Map; import com.rsn.def.job.Demon_Test_API; public class Demon_Test { priv..
java 에서 data → excel 파일 Java 에서 생성한 Data를 Excel 로 만들어서 내보내려고 한다. POI를 이용하기 때문에 pom.xml 에 아래 코드를 추가해 주었다 org.apache.poi poi 4.1.2 아래 코드를 실행 결과 Style이 적용이 안되어서 적용을 시켜보아야겠다. public void ExcelDownload(List list){ // Workbook 생성 Workbook xlsWb = new HSSFWorkbook(); // Excel 2007 이전 버전 Workbook xlsxWb = new XSSFWorkbook(); // Excel 2007 이상 // *** Sheet------------------------------------------------- // Sheet 생성 Sheet sheet1..
mysql timeStamp 자바에서 날짜로 만들기 timeStamp 로 넘어오는 데이터가 있는데 이 데이터는 1539269962 이런식으로 넘어오는데 오라클에는 이런식으로 찍으면 날짜로 변환이 되지만 자바에서는 어떤식으로 찍어야 변환이 되는지 찾아보는데 흔하지 않았다. x.getI_crawlstamp() 에는 1539269962 이 문자열로 담겨 있으니까 강제로 int 형변환 시키고 long 형으로 만든다 그 후에 kava.sql.Timestamp를 이용해서 문자열을 바꿔주니 잘 변환이 된 것을 볼 수 있다. 아까는 잘 나왔는데 갑자기 1990 년대가 나오는 것을 보고 당황해서 이걸로 바꿔줬더니 다행이도 잘 되었다.
StringUtils.isBlank() StringUtils.isBlank StringUtils.isBlank() 를 사용하면 null 값을 효율적으로 관리할 수 있다. StringUtils 에서 기본적으로 지원하는 함수이다. import org.apache.commons.lang3.StringUtils; public static boolean isBlank(final CharSequence cs) { final int strLen = length(cs); if (strLen == 0) { return true; } for (int i = 0; i < strLen; i++) { if (!Character.isWhitespace(cs.charAt(i))) { return false; } } return true; } 아래 처럼 null / ""..
자바 명명 규칙 낙타 표기법 프로그래밍에서 파일, 변수, 함수 등 대상의 이름의 띄러쓰기 없이 짓기 위하여 따르는 관례인 네이밍컨벤션의 하나다. 단어 전체적으로 소문자를 사용하지만, 각 합성어의 첫 글자만 대문자로 표기한다. 합성한 단어의 모양이 쌍봉낙타와 비슷하다는 뜻에서 이름을 붙혔다. PascalCase 모든 단어에서 첫 번째 문자는 대문자이며 나머지는 소문자이다. PascalCase는 class 명 만들 떄 사용한다. camelCase 최초에 사용된 단어를 제외한 첫 번째 문자가 대문자이며 나머지는 소문자이다. camelCase는 method 명 만들 때 사용한다.