반응형

JAVA 45

HttpURLConnection | RestTemplate | WebClient

개발 환경: OpenJDK 17, Spring Boot 3.1.7 사용한 API: https://developers.kakao.com/docs/latest/ko/daum-search/dev-guide#search-book HttpURLConnection public abstract class HttpURLConnection extends URLConnection JDK 1.1부터 내장하고 있는 클래스다. 각 HttpURLConnection 객체는 단일 요청을 만드는데 사용된다. 하지만, 네트워크 연결에 따라서 HTTP 서버는 공개적으로 다른 인스턴스로부터 공유될 수 있다. 요청이 끊어진 후 InputStream 또는 OutputStream에서 close() 메서드 호출하는 것은 어떠한 공유된 영구적인 연..

JAVA 2023.12.28

enums(열거형)

enums 열거형 상수간의 비교에 '=='를 사용 가능 열거형 상수간의 비교 연산자로 ''는 사용 불가하니 compareTo()를 사용 열거형 상수의 값이 변경되어도 기존의 소스를 다시 컴파일하지 않아도 된다. enum 열거형이름 {상수명1, 상수명2, ...} 열거형 정의 열거형이름.상수명 열거형에 정의된 상수를 사용 열거형이름[] 변수명 = 열겨형이름.values(); 열거형에 정의된 모든 상수를 출력

JAVA 2023.05.22

Thread(쓰레드)

Thread 프로세스(실행 중인 프로그램)의 자원을 이용해서 작업을 수행하는 것 모든 프로세스에는 최소한 하나 이상의 쓰레드가 존재 프로세스의 메모리 한계에 따라 쓰레드의 수가 결정된다. 구현 방법 Thread클래스를 상속받기 ⚠️ 다른 클래스를 상속받을 수 없다. [일반적인 방법] Runnable인터페이스를 구현하기 Runnable인터페이스를 구현한 클래스의 인스턴스를 생성한 다음, 이 인스턴스를 Thread클래스의 생성자의 매개변수로 제공해야 함 실행 방법 start()를 호출한다. 실행대기중인 쓰레드가 하나도 없으면 곧바로 실행상태가 된다. 하나의 쓰레드에 대해 start()는 한 번만 호출될 수 있다. ⚠️ 하나의 쓰레드에 대해 두 번 이상 호출하면 IllegalThreadStateExceptio..

JAVA 2023.04.24

JVM

JVM(Java Virtual Machine) 시스템 메모리를 관리하면서 자바 기반 애플리케이션을 위해 이식 가능한 실행 환경 제공 JVM은 자바 클래스 로더(Class Loader)와 자바 실행 엔진(Execution Engine)에 의존 JVM 자바 클래스 로더 클래스를 메모리에 로드하고 실행을 위해 사용할 수 있게 만드는 JVM의 일부 클래스 로딩(Class Loading)을 최대한 효율적으로 수행하기 위해 지연 로딩(Lazy-loading)과 캐싱(Caching) 같은 기법을 활용 JVM 실행 엔진 클래스 로더가 클래스를 로딩하는 작업을 마치면, JVM은 각 클래스에 있는 코드를 실행하기 시작 JVM 실행에 실행 엔진은 필수적이다. 파일 시스템 액세스, 네트워크 입출력을 위한 리소스를 관리 ⚙️ ..

JAVA 2023.04.23

Abstract class(추상 클래스)

abstract class(추상 클래스) 하나 이상의 추상 메서드를 포함하는 클래스 다형성을 가지는 메소드의 집합을 정의하도록 한다. 반드시 사용되어야 하는 메소드를 추상 메소드로 선언해서 이 클래스를 상속받는 모든 클래스는 이 추상 메서드를 반드시 재정의하게 한다. 인스턴스를 생성할 수 없다. 상속을 통해 자식 클래스를 만들고, 자식 클래스에서 추상 메서드를 모두 오버라이딩해야 자식 클래스의 인스턴스를 생성할 수 있다. abstract class 클래스명{ abstract 반환타입 메서드명(); } abstract method(추상 메소드) 상속받는 자식 클래스가 반드시 추상 메소드를 구현하도록 한다. 선언부만 존재 구현부를 자식 클래스에서 오버라이딩해서 사용 abstract 반환타입 메소드명(); 👇..

JAVA 2023.03.23

javax

javax.servlet.http.Cokkie, javax.servlet.http.HttpServletRequest를 import해야해서 javax에 대해 찾아봤다. javax Java API의 일부 Java SE(Java Standard Edition)와 Java EE(Java Enterprise Edition)에서 사용되는 패키지들을 담고 있는 패키지 이름의 접두사 javax.servlet을 사용하기 위해 Java EE를 지원하는 서블릿 컨테이너를 사용 나는 아래처럼 서블릿 컨테이너 중에서 Tomcat을 사용할거다. build.gradle에 의존성을 추가 implementation 'org.springframework.boot:spring-boot-starter-web' Spring Boot Star..

JAVA 2023.03.03

generic

제너릭(generic) JDK 1.5부터 도입됨 클래스/메소드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정 클래스/메소드 내부에서 사용되는 객체의 타입 안정성을 높인다. 반환값에 대한 타입 변환 및 타입 검사에 들어가는 수고를 줄인다. @Getter @Setter @NoArgsConstructor public class Response extends CommonResponse{ private T result; } T는 타입 변수, 임의의 참조형 타입 T 뿐만 아니라 어떠한 문자를 사용해도 상관없다! @PostMapping("/friends-state") public Response getFriendsState(@RequestBody List ids) { return responseService...

JAVA 2023.01.25

OpenJDK 설치

https://github.com/ojdkbuild/ojdkbuild GitHub - ojdkbuild/ojdkbuild: Community builds using source code from OpenJDK project Community builds using source code from OpenJDK project - GitHub - ojdkbuild/ojdkbuild: Community builds using source code from OpenJDK project github.com 내 OS는 Windows Oracle JDK를 지우고 OpenJDK로 바꿨다. 위의 링크에 들어가서 zip 파일 설치 환경변수 설정 시스템 변수의 Path에 %JAVA_HOME%\bin 추가 bin뒤에 \붙이면 ..

JAVA 2023.01.22

TreeMap

TreeMap 이진 검색 트리 검색과 정렬에 적합한 컬렉션 클래스 검색 성능은 HashMap이 더 뛰어나다. 범위검색이나 정렬이 필요할 경우 TreeMap 선택 예시) TreeMap treeMap=new TreeMap(Collections.reverseOrder()); treeMap.putAll(redisTemplate.opsForHash().entries("findAll")); 내림차순으로 key를 정렬하는 TreeMap 참고 👇 https://huskdoll.tistory.com/5 Map의 key(키)로 정렬(Sort) 및 역정렬(Reverse) TreeMap의 순서대로 정렬되는 기능을 사용하여 HashMap을 정렬 하는 소스를 작성해 보았습니다. 값으로 정렬하실 분은 http://huskdoll...

JAVA 2022.07.28
반응형