본문 바로가기

language/java

(8)
[Java] Map - getOrDefault 메소드 정의 및 사용법 Map.getOrDefault 란? 찾는 키가 존재하면 해당 키의 value를 리턴하고 존재하지 않으면 default 설정 value값을 리턴한다. getOrDefault 사용하기 map.getOrDefault(Object key, V defaultValue); key : map 내부에 해당 key 값이 존재하면 그 key의 value 리턴 key 값으로 탐색하였지만 해당 key 값이 존재하지 않으면 defaultValue 리턴 getOrDefault 를 사용한 예제 ex. 한 페이지에 방문한 user들이 String 배열에 담겨져있고 페이지에 방문한 횟수를 구하기 위한 예제입니다. import java.util.HashMap; public class MapGetOrDefaultEx { public st..
[Java] Reflection을 이용하여 invoke() 로 메소드 동적호출 Reflection 이란 구체적인 클래스 타입을 알지 못해도 그 클래스의 메소드, 타입, 필드들에 접근할 수 있는 자바 API 자바는 정적인 언어이기 때문에 구체적인 클래스 타입을 알지 못하면 어떤 부분을 실행해야 하는 지 모르기 때문에 이런 문제를 해결하여 동적으로 호출할 수 있게 해주는 것이 Reflection 입니다. invoke()로 메소드 동적 호출하기 예제 ) 부모 클래스에 있는 특정 메소드와 자식 클래스에 오버라이드 되어 존재하는 같은 메소드 중에서 자식 클래스의 메소드를 호출하고 싶을 때 invoke를 사용하여 동적으로 호출하는 로직에 대해 작성해보았습니다. 클래스 구성 invokeEx.java GlobalClass.java ParentClass.java ChildClass.java 클래스..
[Java] System.arraycopy 와 Array.copyOfRange Java에는 배열을 복사하는 여러가지 방법들이 있는데 내가 아는 방법들에 대해 간단하게 정리해보려 합니다. Java 배열 복사 방법 System.arraycopy Arrays.copyOf Arrays.copyOfRange for문으로 hard copy System.arraycopy // System.java @HotSpotIntrinsicCandidate public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length); System.java의 arraycopy메소드를 확인하면 다음과 같이 되어있습니다. 변수들을 살펴보면 src : 복사하고자 하는 원본 배열 srcPos : 원본 배열에서 복사할 ..
[Java] BiFunction 인터페이스 BiFunction 인터페이스란 ? BiFunction Interface는 함수형 인터페이스로 java 1.8부터 사용되며 두 개의 매개변수를 전달받아 결과값을 생성하는 함수를 나타냅니다. BiFunction.java @FunctionalInterfase public interface BiFunction{ R apply(T t, U u); default BiFunction andThen(Function
[JAVA/자바] 문자열 인코딩 변환 - String getBytes() String 문자열에서 'euc-kr'로 바이트 배열 인코딩 String str = "hi" byte[] strBytes = str.getBytes("euc-kr"); ISO-8859-1로 인코딩된 문자열에서 UTF-8로 인코딩 변환 data = new String(data.getBytes("ISO-8859-1"), "UTF-8");
[Java] Long 자료형을 Integer로 형변환 : java.lang.Long cannot be cast to class java.lang.Integer Integer x = Integer.parseInt(String.valueOf(bestOfIndex.get("total"))); // bestOfIndex.get("total")의 자료형이 Long이다.
[Java] request.getRequestURI(), request.getContextPath() 등 url 주소 가져오는 함수 ex) http://localhost:8080/myWeb/mvc/message.do (위 주소를 사용해서 url 주소를 얻어오겠습니다.) request.getContextPath() : 프로젝트 path 출력 : /myWeb request.getRequestURI() : 프로젝트 + 파일경로 출력 : /myWeb/mvc/message.do request.getRequestURL() : 전체 경로 출력 : http://localhost:8080/myWeb/mvc/message.do request.getServletPath() : 파일명 출력 : /mvc/message.do request.getRealPath("/WEB-INF") : 서버 또는 로컬의 절대경로 출력 : C:\pmProject\myJSP\.m..
[Java/AWT] Panel 사용하여 다양한 레이아웃 구현하기 / BorderLayout, GridLayout, FlowLayout 위와 같은 화면의 레이아웃을 만들기 위해서는 여러개의 Panel이 필요합니다. 전체 레이아웃에 패널들을 추가 시키면서 패널안에 원하는 형태의 레이아웃을 넣어준다는 식으로 생각하면 편할 것 같습니다. 위의 화면을 만들기 위해서 다음과 같은 LayoutManager를 활용했습니다. 1. BorderLayout 2. FlowLayout 3. GridLayout Border Layout 기능 : container 영역을 동, 서, 남, 북 그리고 중앙으로 분할 component의 위치와 크기 설정 container.add("위치", component); 위치 = "East", "West", "South", "North", "Center" 지정되지 않은 영역이 존재할 경우에는 밑의 사진처럼 나타내지기도 합니다. ..