본문 바로가기

반응형

분류 전체보기

(140)
자바에서의 메모리 누수를 데몬 스레드로 해결할 수 있을까? 데몬 스레드(Daemon thread)란? 주 스레드의 작업을 돕는 보조적인 역할을 수행하는 스레드 백그라운드에서 실행되는 스레드 특징 : 메인 스레드가 종료되면 자동으로 종료됨 주로 백그라운드 작업이나 서비스를 제공하는 역할을 함 데몬 스레드를 사용하는 곳 주기적으로 로그 파일 정리하기나 백업 작업을 수행하는 등의 백그라운드 작업 데몬 스레드를 사용해서 메모리 누수를 해결할 수 있는지 메모리 누수(memory leak)는 주로 객체 참조가 제대로 해제되지 않으면 발생하는데 이를 해결하려면 객체 참조를 명시적으로 해제하는 것이 중요하다. 데몬 스레드를 사용하면 해당 스레드가 백그라운드에서 실행되지만 메모리 누수의 원인이 되는 객체 참조가 없는 경우에는 데몬 스레드로 인해 발생하는 메모리 누수 문제는 해결..
이클립스 깃허브 연동오류 : rejected - non-fast-forward 이클립스와 깃허브를 연동해서 쓰면 편리하게 깃허브에 내 소스코드를 올릴 수 있습니다. 이클립스와 깃허브 연동하는 방법이 궁금하신 분들은 아래의 링크를 참고해주세요. 깃허브&이클립스 연동하고 프로젝트 커밋하기 이번에는 깃허브와 이클립스를 연동하는 방법을 알아보고자 합니다. 깃허브는 자주 쓰이는 만큼 git을 바로 연동하는 방법이 있습니다. 1. 일단 깃허브의 본인 계정에서 repository를 생성해줍니다. smile-place.tistory.com 이클립스에서 깃허브와 연동해서 잘 사용하고 있었는데 갑자기 어느 날 다음과 같은 오류가 났습니다. Push를 시도하자 [rejected - non-fast-forward] 라는 메시지가 뜨면서 commit이 되지 않았습니다. 이럴 때 해결할 수 있는 방법을 소..
포장클래스 의미와 사용하는 이유 포장 객체란? 자바에서는 기본 타입과 참조 타입이 있다. 이 중 기본 타입의 값을 가지고 있는 객체를 생성할 수 있는데 이런 객체들이 바로 포장 객체이다. 이러한 포장 객체들을 사용하는 목적은 기본 타입의 값 변경이 아닌 객체로 생성하는 것이다. 기본타입과 포장 클래스 매치 기본 타입 포장 클래스 byte Byte char Character short Short int Integer long Long float Float double Double boolean Boolean 박싱 vs 언박싱 박싱 : 기본 타입의 값을 포장 객체로 만드는 것 언박싱 : 포장 객체에서 기본 타입의 값을 얻어내는 것 //박싱 Integer value1 = 1; //언박싱 int value2 = value1; 포장 클래스 사용..
깃허브&이클립스 연동하고 프로젝트 커밋하기 이번에는 깃허브와 이클립스를 연동하는 방법을 알아보고자 합니다. 깃허브는 자주 쓰이는 만큼 git을 바로 연동하는 방법이 있습니다. 1. 일단 깃허브의 본인 계정에서 repository를 생성해줍니다. repository를 만들었다면 위와 같은 화면에서 빨간 박스 부분에서 주소을 찾을 수 있습니다. 이 주소가 필요하니 미리 복사해두시면 됩니다. 2. 이클립스의 상단 메뉴에서 Window-Perspective-Open Perspectice-Other... 를 선택해줍니다. 3. 다음과 같이 Open Perspective 창이 떴다면 여기에서 Git을 선택한 후 Open 버튼을 눌러주세요. 4. 다음과 같이 왼쪽에 Git Repositories이 떠있는 걸 확인할 수 있습니다. 여기서 Clone a Git ..
백준 1008 JAVA 문제 풀이 전체적인 구성은 이전의 1000, 1001, 10998번과 동일하지만 출력값의 조건에 조금 차이가 있다. 문제를 보면 출력값에 절대오차 또는 상대오차에 대한 얘기가 있어서 소수점까지 출력을 해준다. 소수점 출력을 하기 위해서 정수가 아닌 실수 타입으로 A, B 변수를 받는다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); double A = sc.nextDouble(); double B = sc.nextDouble(); System.out.println((int)A/B); } }
백준 1000, 1001, 10998 JAVA 문제 풀이 1000, 1001, 10998 문제는 모두 같은 코드에 출력 부분에만 차이가 있어서 한 번에 정리했습니다. 이전 Hello World 이후에 처음 나오는 입력을 받는 문제라서 Scanner만 잘 사용하면 어렵지 않게 풀 수 있습니다. 1000 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int A = sc.nextInt(); int B = sc.nextInt(); System.out.println(A+B); } } 1001 import java.util.Scanner; public class Main { public static..
자바에서 구현과 상속을 동시에 사용하는 경우(implements, extends) 자바를 공부하다가 한 클래스에 대해서 extends와 implements를 동시에 사용가능한지에 대한 궁금증이 생겼다. 그래서 정리 해보는 내용! 결론부터 말하자면 둘 다 동시에 사용이 가능하다. 아래의 예시 소스 코드를 보자. //인터페이스 public interface TireInterface { } //상속받을 부모 클래스 public class TireClass { } //한 클래스 내에서 인터페이스 구현, 클래스 상속을 동시에 사용 public class Tire extends TireClass implements Tire { } 위의 내용과 같이 일반 클래스에서 인터페이스 구현과 클래스 상속을 동시에 할 수 있다. 표기할 때는 "extends 상속받을 클래스 implements 인터페이스" 방..
백준 2557 Hello World JAVA 문제 풀이 2557번 문제는 단계별로 풀어보기를 했을 때 가장 처음에 나오는 기본문제입니다. 그런데 생각보다 정답 비율이 낮아서 왜 그럴까 싶었습니다. 아무래도 클래스명이 Main이어야 한다던가 하는 기본 규칙을 몰라서 그런 것 같더라구요. 혹시라도 기본 규칙이나 시작하는 방법이 궁금한 분들은 아래의 포스팅을 참고해주세요. 백준 자바 코딩테스트 문제풀이 시작하는 방법 개발자를 준비하는 분이라면 백준 혹은 프로그래머스 등의 코딩 테스트를 위해 여러 알고리즘 문제를 풀어볼 수 있는 사이트를 들어보셨을겁니다. 저도 이번에 코테를 조금씩 공부해야겠다는 smile-place.tistory.com 아무튼 가장 쉬운 단계의 가장 첫 번째 문제는 아래와 같이 작성했습니다. public class Main{ public stati..

반응형