728x90
반응형

java 21

[Java] 리스트를 만드는 방법 3가지 (ArrayList, Arrays, List)

자바에서 List를 만드는 방법은 3가지가 있습니다. 1) import java.util.ArraysList; List numberList = new ArrayList(); 2) import java.util.Arrays; List numberList = Arrays.asList(); 3) import java.util.List; List numberList = List.of(); 3가지 방법의 차이점 Element add & remove setter null 1) new ArrayList() 가능 가능 가능 2) Arrays.asList() 불가능 가능 가능 3) List.of 불가능 불가능 불가능 Element add & remove가 불가능한 방법에서 add를 사용할 경우, UnsupportedOp..

JAVA 2022.12.02

[Java] Mutable & Immutable

Mutable과 Immutable mutable 변할 수 있는, 잘 변하는 / Java: 가변 객체 immutable 변할 수 없는, 불변의 / Java: 불변 객체 Java Object 자바 객체는 기본적으로 Heap 영역에 할당되고, Stack 영역에 참조값을 갖는 참조 타입 변수를 통해 데이터에 접근합니다. 이러한 객체는 Mutable Object, Immutable Object로 나눌 수 있습니다. [Java] 메모리 관리 - 스택, 힙, Garbage Collection Stack 영역 Heap 영역에 생성된 객체 타입의 데이터들에 대한 참조를 위한 값들이 할당됩니다. 원시타입(Primitive Types) - byte, short, int, long, double, float, boolean,..

JAVA 2022.11.23

[Java] 자바 메모리 영역 관련 노트 정리

블로그 포스팅을 보고 다시 한번 적으면서 메모리 영역 관련 내용 정리하였습니다. [관련 포스팅] [Java] 메모리 관리 - 스택, 힙, Garbage Collection Stack 영역 Heap 영역에 생성된 객체 타입의 데이터들에 대한 참조를 위한 값들이 할당됩니다. 원시타입(Primitive Types) - byte, short, int, long, double, float, boolean, char 타입의 데이터들이 할당됩니다.. lakelight.tistory.com [참고] 1. [JAVA] ☕ 그림으로 보는 자바 코드의 메모리 영역(스택 & 힙)

JAVA 2022.10.24

[Java] Thread Local

ThreadLocal 스레드 단위로 로컬 변수를 사용할 수 있다는 장점이 있습니다. 또한 여러 메서드를 전역변수처럼 사용할 수 있습니다. 다만 다른 스레드와 변수가 공유되지 않도록 주의해야 합니다. ThreadLocalMap private 클래스로 구성되어 있어 외부에서 접근할 수 없고, 내부적으로 해시 테이블 정보를 갖고 있는데, 요소는 WeakReference를 확장하고 ThreadLocal 객체를 키로 사용하는 Entry 클래스입니다. Thread ThreadLocalMap를 타입 멤버 필드로 가지고 있는데, 특정 스레드의 정보를 TreadLocal에서 직접 호출 할 수 있도록 합니다. ThreadLocal의 withInital 메서드 쓰레드 로컬 변수를 생성하면서 특정 값으로 초기화하는 메서드입니..

JAVA 2022.10.24

[Java] Collection - Map

Collection Java Collection의 주요 인터페이스는 List, Set, Map이 있습니다. 인터페이스를 구분하는 가장 중요한 개념은 "순서", "데이터 중복 여부" 입니다. List - 순서가 있고, 데이터 중복이 가능합니다. Set - 순서가 없고, 데이터 중복이 불가능합니다. Map - Key, Value 구조로 데이터가 저장되고, Key는 중복이 불가능하지만 Value는 중복이 가능합니다. Map Key와 Value로 구성된 객체를 저장합니다. 키는 중복될 수 없고, 값은 중복이 가능합니다. Map 인터페이스를 구현한 클래스 종류 HashMap TreeMap LinkedHashMap HashTable HashMap 기본 메서드 HashMap 선언 Map map = new HashMa..

JAVA 2022.09.19

[Java] Collection - Set

Collection Java Collection의 주요 인터페이스는 List, Set, Map이 있습니다. 인터페이스를 구분하는 가장 중요한 개념은 "순서", "데이터 중복 여부" 입니다. List - 순서가 있고, 데이터 중복이 가능합니다. Set - 순서가 없고, 데이터 중복이 불가능합니다. Map - Key, Value 구조로 데이터가 저장되고, Key는 중복이 불가능하지만 Value는 중복이 가능합니다. Set 중복된 요소를 포함할 수 없는 인터페이스입니다. List와 다르게 인덱스를 사용하지 않기 때문에, 인덱스 매개변수가 없습니다. Set 인터페이스의 메서드는 아래와 같습니다. Set 인터페이스를 구현한 클래스 종류 HashSet Linked HashSet TreeSet HashSet 해싱이라..

JAVA 2022.09.19

[Java] Collection - List

Collection Java Collection의 주요 인터페이스는 List, Set, Map이 있습니다. 인터페이스를 구분하는 가장 중요한 개념은 "순서", "데이터 중복 여부" 입니다. List - 순서가 있고, 데이터 중복이 가능합니다. Set - 순서가 없고, 데이터 중복이 불가능합니다. Map - Key, Value 구조로 데이터가 저장되고, Key는 중복이 불가능하지만 Value는 중복이 가능합니다. List List는 데이터를 순서에 맞게 일렬로 구성합니다. 인덱스가 부여되기 때문에 인덱스로 데이터를 검색할 수 있습니다. 그리고 List는 Set과 다르게 중복을 허용합니다. List 인터페이스를 구현한 클래스 종류 ArrayList AttributeList CopyOnWriteArrayLis..

JAVA 2022.09.19

[Java] JDK 동적 프록시

JDK 동적 프록시 프록시는 타겟 코드의 수정없이 접근제어, 부가기능을 추가하기 위해 주로 사용됩니다. 하지만, 프록시를 사용하기 위해서는 대상 클래스 만큼 프록시 클래스를 만들어줘야하기 때문에 코드 중복이 발생한다는 단점이 있습니다. 이를 해결할 수 있는 기술이 동적 프록시 기술입니다. 동적 프록시 기술은 개발자가 직접 프록시 클래스를 만들지 않아도 되고, 런타임에 개발자 대신 동적으로 객체를 생성해줍니다. 또한 동적 프록시에 원하는 로직을 지정할 수도 있습니다. JDK 동적 프록시 구현 JdkDynamicProxyInterface public interface JdkDynamicProxyInterface { String call(); } JdkDynamicProxyImpl @Slf4j public c..

JAVA 2022.08.24

[Java] Reflection

Java Reflection 클래스, 인터페이스, 메소드들을 찾을 수 있고, 객체를 생성하거나 변수를 변경할 수 있습니다. 또한 메소드를 호출할 수도 있습니다. Reflection은 자바에서 기본적으로 제공하는 API이고, 사용방법만 알면 라이브러리 추가 없이 사용할 수 있습니다. Java Reflection 사용 Reflection 예제에서 사용할 클래스 @Slf4j public class ReflectionEX { @Slf4j static class MethodCall{ public String MethodOne(){ log.info("method One Call"); return "One"; } public String MethodTwo(){ log.info("method Two Call"); re..

JAVA 2022.08.24

[Spring] Server-Client 간 암, 복호화 구현

서버와 클라이언트 간에 데이터를 전송할 때 암호화를 해서 데이터를 보내려고 합니다. 이때 어떻게 암, 복화화를 하면 좋을까요? 데이터 암, 복호화에 사용할 알고리즘은 두 가지 입니다. AES와 RSA입니다. 그럼 이 두가지에 대한 개념에 대해 먼저 알아보겠습니다. AES 대칭키 알고리즘입니다. 즉, 같은 키로 암호화와 복호화를 진행합니다. 대칭키 알고리즘은 속도가 빠르지만 키 배송에 대한 문제가 있습니다. 또한 사용자가 증가할 수록 키교환을 해야하기 때문에 많은 키를 관리해야할 수도 있습니다. RSA 공개키 암호화 방식으로, 서로 다른 키로 암호화와 복호화를 진행합니다. 공개키를 이용해서 암호화를 하고, 개인키를 이용해서 복호화를 진행합니다. 대칭키 알고리즘에 비해 속도가 느립니다. Server-Clie..

Spring 2022.08.18
728x90
반응형