본문 바로가기
반응형

[IT] JAVA10

[자바] long, float 타입 변수 초기화 시 L, F 식별자 사용 이유 자바에서 long이나 float 데이터 타입의 변수를 선언하고 아래와 같이 특정 값으로 초기화하려고 하면, 아래와 같은 에러가 발생을 하게 됩니다. long long1 = 12345678912; float float1 = 123.123; Integer number too large Required type: float / Provided: double 12345678912나 123.123과 같은 고정된 데이터를 리터럴(literal)이라고 하는데, 이 리터럴들은 자바가 실행될 때 메모리의 별도의 Data Area (Constant pool)에 공간을 할당받아 저장되어 있게 됩니다. 자바에서는 이 리터럴의 기본 데이터 타입을 정수의 경우 int로, 실수의 경우 double로 저장이 되게 됩니다. 위의 예시.. 2023. 4. 26.
[ProcessBuilder] Spring(JAVA)에서 CMD 커맨드, 쉘 스크립트 등 외부 커맨드 실행 ProcessBuilder를 이용해서 JAVA 애플리케이션 혹은 Spring, Spring Boot 프레임워크에서 CMD를 통한 배치파일 실행이나 SH를 이용한 쉘 스크립트 등 외부 커맨드 파일을 실행하는 것을 간단하게 정리해보도록 하겠습니다. JAVA ProcessBuilder 예제 JAVA의 ProcessBuilder를 활용하여 다른 외부 프로세스를 실행시키거나 컨트롤을 할 수 있는데, 특히 윈도우의 CMD나 리눅스의 SH를 이용하여 사전에 작성한 배치 파일이나 쉘 스크립트 파일을 실행하여, 컴퓨터나 서버에 커맨드를 실행시켜 다양한 기능을 구현할 수 있습니다. Spring이나 Spring Boot 애플리케이션에서 OS에 커맨드를 날려서 현재 서버의 정보를 가져온다던지, Git 같은 커맨드 라인에서 동.. 2022. 11. 23.
[자바] 객체 리스트 특정 필드 값 제외하고 같은지 비교 서로 다른 두 Java Object List에 구성된 객체 데이터들이 같은지, 두 리스트가 동일한지 비교를 할 경우가 있는데, 그 중에서 특정 필드(값)을 무시하고, 일부 필드 인자만으로 객체의 값이 같은지를 판단해서 리스트가 같은지 비교를 하려면 아래와 같이 진행을 하면 됩니다. 특정 값 제외하고 두 객체 리스트가 같은지 비교 public class Phone { private int SerialNumber; private String Model; private int Version; } 위와 같이 Phone이라는 임의의 객체가 있는데, 만약 SerialNumber라는 값을 제외하고 Model과 Version이 같으면 두 객체는 같다고 판단을 해야하는 경우가 있다면, 아래와 같이 모든 IDE에 있는 기.. 2022. 11. 9.
[자바] JAVA GC (Garbage Collection) 개념 및 동작 원리/방식 안녕하세요, 자바 GC (Garbage Collection)에 대해 간단하게 요약하여 정리를 해보고, 동작 원리 및 방식에 대해서도 간략하게 정리를 해보도록 하겠습니다. GC (Garbage Collection)란 자바의 가비지 컬렉션(Garbage Collection)이란, JVM의 메모리 영역에서 더 이상 참조하지 않는 데이터가 할당된 메모리를 JVM이 자동으로 정리를 해주는 것으로 주로 동적 메모리 영역인 Heap 영역을 대상으로 동작합니다. 개발자가 직접 메모리 관리를 해야 하는 C계열의 언어와 달리, 자바는 JVM이 알아서 불필요한 메모리를 정리하면서 스스로 메모리 관리를 하게 됩니다. JVM Heap 메모리 구성 GC (Garbage Collection)는 JVM의 메모리영역 중 동적 영역인 .. 2022. 9. 8.
[JAVA] 객체 List 정렬 및 2번째 조건으로 정렬 안녕하세요, 자바 Collection 자료 구조 중 순서가 있는 List 계열의 ArrayList, LinkedList, Stack, Vector 자료 구조 정렬에 대해서 정리를 하려고 합니다. 여러 가지 방법 중에서 객체 리스트를 Collections.sort 메서드, Comparator - compare 메서드를 이용하여 정렬하는 법과 객체 리스트에서 1번째 정렬 조건이 같을 때 2번째 정렬 조건으로 정렬을 하는 법을 간단히 정리하려고 합니다. 객체 리스트 정렬 객체 리스트를 아래와 같이 Collections.sort 메서드를 이용하여 정렬하는 예제를 간단하게 작성해보겠습니다. id와 age 인자를 가진 User라는 객체를 생성한 다음 아래와 같이 리스트에 add를 해줍니다. class User { .. 2022. 7. 13.
[JAVA] Robot 클래스 마우스 랜덤 이동을 통한 화면보호기/절전모드 방지 Java의 Robot 클래스를 이용하여, 마우스를 주기적으로 랜덤 하게 이동시켜 화면보호기 또는 절전모드를 방지하는 아주 간단한 코드를 작성하도록 하겠습니다. Robot 클래스란 PC의 인풋 이벤트를 생성하기 위한 클래스로 키보드나 마우스 입력을 JAVA의 코드를 통해 받을 수 있습니다. 애플리케이션 자동 테스트나 데모를 자동으로 보여줄 목적으로 생성이 된 클래스입니다. 이 Robot 클래스를 이용하여 아주 간단하게 마우스를 일정 시간 간격으로 랜덤하게 이동을 시키는 코드를 구현하도록 하겠습니다. 먼저 Robot 객체를 생성하고, mouseMove라는 매서드를 통해 마우스를 이동을 하게 됩니다. 이 매서드는 매개변수로 화면 해상도의 좌표 값인 x와 y를 받아서, 그 좌표 위치로 마우스를 이동하는 매서드입.. 2022. 6. 23.
[자바] Hash Set 정의 및 사용법 (추가, 삭제, 포함여부, 하나씩 출력, 리스트 변환 및 정렬) 안녕하세요, Java HashSet의 정의와 주요 기능에 관해 정리를 해보도록 하겠습니다. HashSet 자바의 HashSet은 Set 인터페이스의 구현체로, 중복이 허용되지 않는 자료구조입니다. 입력한 순서(인덱스)가 보장되지 않고, null도 데이터로 입력이 가능한 특징을 가지고 있습니다. 데이터를 입력 시, 기존 저장된 객체 중 같은 hashCode()를 찾고, 같으면 equals() 메서드를 통해 동일 객체인지 판단 후 동일 객체가 아닐 때만 데이터가 저장이 되는 구조입니다. 자바 Set 선언 및 데이터 추가 아래와 같이 HashSet을 선언하고 add() 메서드를 통해 값 입력이 가능하며, 입력 시에 중복을 검사하여 중복된 데이터가 있을 시 저장이 되지 않습니다. Set set = new Has.. 2022. 5. 31.
[자바] equals와 hashcode - 같은 객체인지 비교 안녕하세요, JAVA에서 두 변수가 같은지를 비교할 때, 주로 '==' 연산자와 equals()란 메서드를 사용합니다. '==' 연산자와 equals() 메소드 만약 비교하는 대상의 데이터 타입이 기본 타입(Primitive Type : byte, short, int, long, char, float, double, boolean)이라면, '==' 연산자를 이용해서 해당 두 변수의 값이 같은지 비교해서 True / False를 리턴해줄 것입니다. 비교하는 데이터 타입이 참조 타입(Reference Type : Class, Interface, Array, Enum)이라면, '==' 연산자는 두 대상이 완전히 동일한 대상인지, 두 대상의 참조값 (메모리 주소)이 같은지를 비교하여 True / False를 리.. 2022. 2. 23.
[자바] Map의 Key 값 혹은 Value 값 List 생성, 객체 List에서 특정 값 List 생성 안녕하세요, 오늘은 간혹 코딩 테스트 혹은 실제 프로젝트에서 필요한 아래 2개의 케이스에 대해 구현하는 방법을 정리해보겠습니다. 1. Map의 Key값 List 생성 (Key값 추출) / Value값 List 생성 (Value값 추출) Java의 Key, Value로 구성된 HashMap에서 Key값만 가져오기 혹은 Value값만 가져와서 List를 만들어 보도록 하겠습니다. 먼저 아래와 같이 이름과 ID로 구성된 임의의 Member Map을 생성을 합니다. Map memberMap = new HashMap(); memberMap.put("킴오리", 30); memberMap.put("이오리", 50); memberMap.put("엔탈", 10); 이 Map에서 Key로만 구성된 List 혹은 Value.. 2022. 1. 13.
JAVA 설치 및 환경 셋팅 (OpenJDK) 안녕하세요, 오리엔탈 킴입니다. 오늘은 JAVA를 설치하고 개발 환경 세팅을 하도록 하겠습니다. 그럼 바로 JAVA를 설치를 하겠습니다. 저는 OpenJDK를 설치하겠습니다. (Oracle JDK는 상업용이고, 같은 Oracle에서 제작한 오픈소스 라이선스 JDK가 OpenJDK입니다.) 1. JDK 파일 다운로드 아래 사이트 방문하셔서 적당히 최신 버전으로 다운로드합니다. jdk.java.net/archive/ Archived OpenJDK GA Releases Archived OpenJDK General-Availability Releases This page is an archive of previously released builds of the JDK licensed under the GNU G.. 2020. 11. 5.
반응형