본문 바로가기

개발중/Java

(74)
[JAVA] ConcurrentHashMap 에 대해서 ConcurrentHashMap은 Java에서 멀티스레드 환경에서 안전하게 사용될 수 있도록 설계된 해시맵 구현체입니다. 다음은 ConcurrentHashMap의 주요 특징입니다:동시성 제공:ConcurrentHashMap은 멀티스레드 환경에서 여러 스레드가 동시에 데이터를 읽고 수정할 수 있도록 설계되었습니다.내부적으로 분할 잠금(Shard Locking) 메커니즘을 사용하여 성능을 최적화합니다. 이는 맵이 여러 개의 세그먼트(segment) 로 나뉘어 각 세그먼트에 대해 개별적으로 잠금을 걸기 때문에, 여러 스레드가 동시에 다른 세그먼트를 수정할 수 있습니다.잠금 수준 최적화:HashTable처럼 전체 맵에 대해 잠금을 걸지 않고, 데이터의 특정 버킷(bucket) 단위에만 잠금을 걸기 때문에 동시성..
Java 개발자라면 알아야하는 질문들이라길래 나는 잘 알고 있는가 ? 📌 JDK 와 JRE 의 차이점 JDK (Java Development Kit) JDK는 Java 애플리케이션을 개발하기 위한 도구 집합입니다. JDK에는 JRE가 포함되어 있으며, 추가적으로 컴파일러(javac), 디버거, 아카이버(jar), 문서 생성기(javadoc) 등의 도구도 포함되어 있습니다. 즉, JDK는 소프트웨어를 개발하기 위한 도구를 제공합니다. JRE (Java Runtime Environment) JRE는 Java 애플리케이션을 실행하기 위한 환경입니다. JRE에는 JVM (Java Virtual Machine)과 Java 클래스 라이브러리(Java API)가 포함되어 있습니다. 이는 애플리케이션을 실행하는데 필요한 최소한의 도구 및 라이브러리를 제공합니다. 그러나 JRE만으로는 J..
[Java] 객체 매핑 라이브러리 ModelMapper ModelMapper ModelMapper는 Java 객체 간 속성 값을 자동으로 매핑해주는 라이브러리이다. 주로 데이터 전송 객체(DTO)와 도메인 객체 간의 변환 작업에 사용된다. 이 라이브러리를 사용하면 수동으로 속성 값을 복사하는 작업을 줄이고 코드를 간결하게 유지할 수 있다. ModelMapper의 주요 특징 - 자동 매핑: 소스 객체와 대상 객체의 동일한 이름의 프로퍼티를 자동으로 매핑해줍니다. 이를 통해 수동으로 데이터를 복사할 필요가 없다. - 유연한 매핑 전략: 속성 이름이 다르거나 매핑 전략이 다른 경우, ModelMapper를 확장하여 사용자 정의 매핑 전략을 구현할 수 있다. - 높은 성능: ModelMapper는 매핑 과정을 최적화하기 위해 동적 코드 생성 및 캐싱을 사용하여 높은..
[JAVA] 문자열 받고, 초성으로 반환해주자. 초코렛 > ㅊㅋㄹ 자바 > ㅈㅂ 안녕 > ㅇㄴ 안녕하세요. 저는 개발중이에요. > ㅇㄴㅎㅅㅇㅈㄴㄱㅂㅈㅇㅇㅇ /** * 초성 반환 */ public String getInitialSound(String word){ String[] CHO = {"ㄱ","ㄲ","ㄴ","ㄷ","ㄸ","ㄹ","ㅁ","ㅂ","ㅃ","ㅅ","ㅆ","ㅇ","ㅈ","ㅉ","ㅊ","ㅋ","ㅌ","ㅍ","ㅎ"}; return Arrays.stream(word.split("")).map( x -> { char cho = (char)((x.charAt(0) - 0xAC00) / 28 / 21); return ((int)cho > 19 || (int)cho < 0) ? "" : CHO[(int)cho]; }).collect(Collectors...
[Gson] String => Object Array 활용하기 LabellingDataVO 객체로 파씽 해주기 아래 객체 배열을 파씽을 해보자. String patJson = "[" + " {\"icType\":1,\"color\":\"#5ba1e0\",\"patSeq\":9766,\"icCode\":1,\"wordNm\":\"혜택\"}" + " ,{\"icType\":1,\"color\":\"#5ba1e0\",\"patSeq\":15068,\"icCode\":1,\"wordNm\":\"현명하다\"}" + " ,{\"icType\":1,\"color\":\"#5ba1e0\",\"patSeq\":107560,\"icCode\":1,\"wordNm\":\"맞춤\"}" + "]"; Gson 을 생성 하고 fromJson 에 파씽하고자 하는 문자열과 , 파씽될 타입을 명시..
65279 아스키코드가 나와서 문자열 비교 안됨 ?! 😅 아래와 같은 String 이 두 개가 있다고 가정한 후 String a = "hello"; String b = "hello"; a.equals(b) 결과가 false 일 수 있다 ? 사실 나도 처음 겪는 일이라 ;;;; false 일 수 있다.... 아래처럼 문자열을 문자로 하나씩 보면 for( int i = 0; i < a.length(); i++ ){ System.out.println( (int)a.charAt(i) ) } 65279 의 값을 볼 수 있는데, 이게 문제다 문제 아래처럼 해결하기를 ! trim 도 안먹음 ,,, if(a.charAt(0) == 65279){ a= a.substring(1); }
[Java] mysql 접속정보로 쿼리조회 public void selectQuery(String JDBC_DRIVER, String DB_URL, String USERNAME, String PASSWORD ) throws SQLException{ Connection conn = null; Statement stmt = null; ResultSet rs = null; try { // 접속 Class.forName(JDBC_DRIVER); conn = DriverManager.getConnection(DB_URL, USERNAME, PASSWORD); stmt = conn.createStatement(); // 쿼리 String sql1 = "select * from BINSOO_TEST_COMPANY"; rs = stmt.executeQuery(..
Java에서 백분율(퍼센트) 계산하기 전체값에서 일부값은 몇 퍼센트? 일부값 / 전체값 *100 // 10은 100에서 몇 퍼센트? System.out.format("%.2f%%%n", 10.0 / 100.0 * 100.0); // 출력 결과: 10.00% // 33은 100에서 몇 퍼센트? int x = 33; int y = 100; System.out.println( (double) x / (double) y * 100.0 + "%"); // 출력 결과: 33.0% // 정수의 경우에는 (double) 로 실수화시키지 않으면 // 0.0 이라는 엉뚱한 값이 나옴 // 맨 끝의 + "%" 이 부분은 공식의 일부가 아니라 퍼센트 기호 출력