본문 바로가기

반응형

개발/JAVA

(13)
[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)라고 하는데 자바에서 역슬래시..
[JAVA] 자바에서 OPEN API 연결하기 어느 분야인지에 따라 조금 다를 수 있겠지만 공공데이터 포털 등에서 제공하는 OPEN API, 혹은 외부에 있는 API들을 사용해야 하는 경우가 생각보다 많다. 혹은 포트폴리오를 만들면서도 OPEN API를 사용해보는 경우도 많기 때문에 정리해본다. 나의 경우는 내가 담당하는 API에서 외부의 API를 호출하는 코드를 짜야했다. 쉽게 말하자면 내가 만든 API url을 호출하면 나는 외부의 API를 호출해서 결과를 받아오는 방식이다. 일단 OPEN API의 경우는 그냥 쓸 수 있는 API들도 있지만 보통은 API를 제공하는 사이트에서 활용신청을 해서 API KEY라고 하는 인증키를 받아와야 합니다. API마다 활용 기간이나 사용방법이 다르기 때문에 사용하고자 하는 OPEN API 사이트에 가서 확인하는 ..

반응형