본문 바로가기

IT/Java64

2021-01-13-replaceAll-No-group-2-에러 layout : post title : "replaceAll no Group 2 에러" category : Java replaceAll 메서드에 $ 사용시 발생한다. 에러는 다음과 같다. Exception in thread "main" java.lang.IndexOutOfBoundsException: No group 2 at java.util.regex.Matcher.start(Matcher.java:374) at java.util.regex.Matcher.appendReplacement(Matcher.java:831) at java.util.regex.Matcher.replaceAll(Matcher.java:906) at java.lang.String.replaceAll(String.java:2162).. 2023. 2. 27.
폴더 zip로 압축 import java.io.*; import java.net.URI; import java.util.Deque; import java.util.LinkedList; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; public class Zip { public static void main(String[] args) throws IOException { zip("C://workspace/jsSpeedTest", "C://workspace/file.zip"); } public static void zip(String directoryStr, String zipFileStr) throws IOException { //압축할 폴더 Fil.. 2020. 8. 5.
Arrays.asList() Arrays.asList()는 Arrays의 private 정적 클래스인 ArrayList를 리턴한다. 하지만 java.util.Arrays.ArrayList 클래스는 set(), get(), contaions() 의 메서드를 가지고 있지만 원소를 추가하는 메서드는 가지고 있지 않아 사이즈를 바꿀수 없다 List list = new ArrayList(Arrays.asList(array)); 의 방법을 사용하여 ArrayList를 새로 선언하는 경우에는 추가, 삭제가 가능하다. 2020. 7. 28.
Thread Safe StringBuilder와 StringBuffer를 사용하던 도중 지역변수의 경우 스레드에 세이프 하기 때문에 StringBuilder를 사용하여도 된다. 스프링 빈은 근본적으로는 스레드에 세이프 하지 않는다. 만약 인스턴스 변수가 빈에 존재한다면 스레드 세이프 하지 않다.(상태를 가지고 있다고한다.) 그렇기에 인스턴스 변수가 존재한다면 값이 변하지 않는 읽기 전용인 경우에만 허용하도록 한다. 무상태 빈을 만들어 해결한다. 해결 방법은 지역변수로 사용함으로써 스레드 세이프하게 만드는 것이다. scope를 prototype으로 하여 요청시마다 객체를 새로 만드는 것인데 성능상의 문제를 이르킬 가능성을 가지고 있다. 2020. 7. 8.