본문 바로가기

반응형

개발/JAVA

(14)
[JAVA] 이클립스에서 자바 커스텀 어노테이션(Custom Annotaion) 만들기 이클립스에서는 자바 커스텀 어노테이션을 빠르게 만들 수 있는 기능이 있다. 먼저 어노테이션이 무엇인지 알아보고 이클립스 커스텀 어노테이션 만드는 방법에 대해 알아보자. 어노테이션(Annotaion)이란어노테이션은 간단하게 얘기하자면 프로그램에 추가적인 정보를 제공해주는 것인데 이 추가 정보를 통해서 컴파일, 런타임 시에 어떻게 코드를 컴파일하고 처리할 지를 정할 수 있다. 이클립스에서 커스텀 어노테이션(Custom Annotaion) 만드는 방법1. 커스텀 어노테이션을 만들 패키지를 우클릭 한 뒤 나오는 메뉴에서 New-Annotaion을 선택해준다.2. 다음과 같은 new Annotaion Type 팝업창에서 필요한 정보들을 입력해준다. 패키지에서 우클릭해서 들어온 경우 Source folder와 Pa..
[JAVA] 로컬 클래스에서 final 변수를 사용해야 하는 이유 로컬 클래스(Local Class)란? 생성자나 메소드 내부에서 선언된 클래스를 말한다. 로컬클래스는 생성자와 메소드가 실행될 동안에만 객체를 생성할 수 있다. public class A { //생성자 public A() { class B { }//로컬 클래스 } //메소드 public void method() { class B { }//로컬 클래스 } } 로컬 클래스 특징은? 생성자나 메소드의 매개변수나 내부에서 선언된 로컬 변수를 로컬 클래스에서 사용할 때는 final 변수를 사용해야 한다. 이러한 로컬 변수는 final 특성을 갖기 때문에 값을 수정할 수 없다. Java 8 이후부터는 final을 명시하지 않아도 final 변수로 인식이 된다. 물론 그 이전버전에서는 final 키워드를 따로 명시해..
자바 포맷팅과 날짜와 시간 클래스 사용 ✅ 포맷팅 의미 데이터를 원하는 형식으로 변환하는 작업 일반적으로 문자열을 생성하는 과정에서 사용 날짜와 시간을 특정 형식에 맞추어 표현하거나 숫자를 일정한 형식으로 표기하는 등의 작업 포맷팅 클래스 종류 SimpleDateFormat 클래스 날짜와 시간을 포맷팅하는데 사용 지정된 패턴에 따라 Date객체를 포맷팅하거나 포맷된 문자열을 Date 객체로 파싱 가능 ex) “yyyy-MM-dd-HH:mm:ss” DateTimeFormatter 클래스 날짜와 시간을 포맷팅하는데 사용되는 클래스 LocalDate, LocalTime, LocalDateTime 등의 클래스와 함께 사용 가능 패턴 문자열을 사용하여 객체를 문자열로 변환하거나 문자열을 객체로 변환 가능 DecimalFormat 클래스 숫자를 포맷팅하..
소스파일명과 동일한 클래스에만 public을 붙일 수 있는 이유 자바 언어를 배우면서 클래스의 이름은 소스파일명과 같아야 한다는 것은 지극히 당연한 일이죠? 한 소스파일 내에 클래스가 여러 개 있을 때는 소스파일명과 동일한 클래스에만 public이라는 접근제어자를 사용할 수 있는데 그 이유가 궁금해서 정리해봤습니다. 그 이유는 자바의 컴파일과 네임스페이스 관리 방식과 관련이 있기 때문입니다. 소스 파일명과 클래스 이름이 동일한 경우 컴파일러는 해당 클래스 파일의 이름을 소스 파일명과 동일하게 생성합니다. 이러한 방식은 자바의 일관성과 그 구조를 유지하는 데에 도움을 준다고 합니다. 또한 클래스의 접근성과 사용범위를 명확하게 유지할 수 있습니다. 그렇다면 한 소스 파일명에 여러 개의 클래스가 있는 경우 왜 다른 클래스에는 public 접근제어자를 사용할 수 없을까요? ..
자바에서의 메모리 누수를 데몬 스레드로 해결할 수 있을까? 데몬 스레드(Daemon thread)란? 주 스레드의 작업을 돕는 보조적인 역할을 수행하는 스레드 백그라운드에서 실행되는 스레드 특징 : 메인 스레드가 종료되면 자동으로 종료됨 주로 백그라운드 작업이나 서비스를 제공하는 역할을 함 데몬 스레드를 사용하는 곳 주기적으로 로그 파일 정리하기나 백업 작업을 수행하는 등의 백그라운드 작업 데몬 스레드를 사용해서 메모리 누수를 해결할 수 있는지 메모리 누수(memory leak)는 주로 객체 참조가 제대로 해제되지 않으면 발생하는데 이를 해결하려면 객체 참조를 명시적으로 해제하는 것이 중요하다. 데몬 스레드를 사용하면 해당 스레드가 백그라운드에서 실행되지만 메모리 누수의 원인이 되는 객체 참조가 없는 경우에는 데몬 스레드로 인해 발생하는 메모리 누수 문제는 해결..
포장클래스 의미와 사용하는 이유 포장 객체란? 자바에서는 기본 타입과 참조 타입이 있다. 이 중 기본 타입의 값을 가지고 있는 객체를 생성할 수 있는데 이런 객체들이 바로 포장 객체이다. 이러한 포장 객체들을 사용하는 목적은 기본 타입의 값 변경이 아닌 객체로 생성하는 것이다. 기본타입과 포장 클래스 매치 기본 타입 포장 클래스 byte Byte char Character short Short int Integer long Long float Float double Double boolean Boolean 박싱 vs 언박싱 박싱 : 기본 타입의 값을 포장 객체로 만드는 것 언박싱 : 포장 객체에서 기본 타입의 값을 얻어내는 것 //박싱 Integer value1 = 1; //언박싱 int value2 = value1; 포장 클래스 사용..
자바에서 구현과 상속을 동시에 사용하는 경우(implements, extends) 자바를 공부하다가 한 클래스에 대해서 extends와 implements를 동시에 사용가능한지에 대한 궁금증이 생겼다. 그래서 정리 해보는 내용! 결론부터 말하자면 둘 다 동시에 사용이 가능하다. 아래의 예시 소스 코드를 보자. //인터페이스 public interface TireInterface { } //상속받을 부모 클래스 public class TireClass { } //한 클래스 내에서 인터페이스 구현, 클래스 상속을 동시에 사용 public class Tire extends TireClass implements Tire { } 위의 내용과 같이 일반 클래스에서 인터페이스 구현과 클래스 상속을 동시에 할 수 있다. 표기할 때는 "extends 상속받을 클래스 implements 인터페이스" 방..
[JAVA] 자바에서 역슬래시, 따옴표 등 이스케이프 시퀀스 출력하기 자바에서 String으로 문자를 출력하는 경우 백슬래시와 따옴표는 그냥 문자만 적었을 때는 출력되지 않고 오류가 나게된다. 그래도 역슬래시나 따옴표를 문자 자체로 출력해야하는 경우가 있는데 그럴 때의 해결방법을 알아보자. 역슬래시를 잘 모르는 사람들을 위해 간단히 설명하자면 역슬래시는 백슬래시라고도 하는데 생긴 모양은 '\' 이렇게 생겼다. 개발할 때는 많이 쓰지만 역슬래시 자체를 모르는 사람도 생각보다 많은데 아래의 사진과 같이 키보드에서 저렇게 생긴 자판을 찾으면 된다. 그렇다면 역슬래시와 따옴표를 출력하려면 어떻게 해야할까? 간단하게 정리하자면 역슬래시와 따옴표 앞에 역슬래시를 넣어주면 된다. ex) \' or \\ 이것을 이스케이프 시퀀스(Escape Sequence)라고 하는데 자바에서 역슬래시..

반응형