본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


자바12

Java mail Transport의 커넥션을 활용한 속도 차이(일반발송, 동보발송) javax.mail 패키지를 활용해서 메일을 전송하는 경우 Transport 객체를 활용해서 커넥션을 직접 사용하는경우와 직접 사용하지 않는 경우에 따라서 속도차이가 많이 난다. javax.mail 패키지는 maven에서 쉽게 받을 수 있다. javax.mail mail 1.4.7 4명한테 같은 내용의 메일을 보내는 상황을 가정하여보자. 이에대해 일반적으로 메일을 전송하는 코드는 아래와 같다. import java.util.Arrays; import java.util.List; import java.util.Properties; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; import javax.mai.. 2019. 7. 18.
Java 1.8 컬렉션 stream, filter, map, foreach, sort java 1.8에서의 강력한 기능중 하나는 컬렉션의 내용을 stream을 통해서 여러 람다식을 표현 할 수 있는 점이다. Javascript처럼 배열(Array)을 가공하는 느낌이 나서 무척 좋았다. //샘플 데이터 List list = new ArrayList(); HashMap req = new HashMap(); req.put("id", "admin"); req.put("text", "ab"); req.put("type", "A"); list.add(req); req = new HashMap(); req.put("id", "test"); req.put("text", "hello"); req.put("type", "B"); list.add(req); req = new HashMap(); req.put.. 2019. 7. 15.
Java List unmodifiableList (final 같은 배열) 자배 컬렉션에서 리스트에 데이터를 추가한 뒤 더 이상 데이터 삭제, 추가를 막기 위해서는 Collection에서 제공하는 unmodifiableList를 활용하면 된다. import java.util.ArrayList; import java.util.Collections; import java.util.List; public class TestUnmodifiableList { public static void main(String[] args) { List list = new ArrayList(); list.add('a'); list.add('b'); list.add('c'); list.add('d'); try { list.forEach(System.out::println); list = Collecti.. 2019. 6. 21.
Java 문자열, String 관련 기본 1. 문자열 비교 String str = "abcd"; boolean equ = str.equals("abcd"); System.out.println(equ); 2. 문자열 내용만 비교(대소문자 무시) String str = "abcd"; boolean equ = str.equalsIgnoreCase("ABCD"); System.out.println(equ); 3. 문자열 시작 여부 확인 String str = "abcd"; boolean isStart = str.startsWith("a"); System.out.println(isStart); 4. 문자열 종료여부 확인 String str = "abcd"; boolean isLast = str.endsWith("d"); System.out.println.. 2019. 6. 17.
Java synchronized, ReentrantLock, semaphore 자바에서는 동기화에 대한 지원을 여러방법으로 가능토록 하는데 대표적으로 synchronized와 semaphore를 통해서 쉽게 구현하게 해 주고 있다. synchronized는 메소드나 문장구간등에 선언하여 해당 행동이 끝날 때 까지 다른 쓰레드가 접근을 못하도록 하는데 반해 semaphore는 좀 더 유연하다 semaphore는 접근할 수 있는 쓰레드의 수와 외부에서 락 또는 릴리즈 등에 대한 컨트롤도 가능 할 수 있게 해준다. 일반적인 동기화의 예제코드이다. public class Tester { public static void main(String args[]){ Tester mm = new Tester(); try { new Thread(()->{ try { mm.looper(1234); } .. 2019. 6. 13.
Java poi 스타일 적용 및 적용이 되지 않는 경우 사용자의 요청에 의해서 엑셀파일을 만들었어야 하는데, 병합, 선 그리기 색깔 등 요구사항이 복잡하고 많았었다. 그러다 보니 여러 삽질을 통해서 다양한 오류와 방법을 습득 하였던 것 같다. 일단, 셀에서의 병합은 merge이다. HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet(); CellRangeAddress address = new CellRangeAddress(시작줄,종료줄,시작행,종료행); sheet.addMergedRegion(address); 병합은 만들어진 sheet객체를 대상으로 실시되는데, 엑셀을 output하기 전 까지 코드 어디에 위치하던지 간에 잘 작동한다. 처음 이해가 안갔던 부분이 .. 2019. 5. 28.