개발 (88) 썸네일형 리스트형 소스파일명과 동일한 클래스에만 public을 붙일 수 있는 이유 자바 언어를 배우면서 클래스의 이름은 소스파일명과 같아야 한다는 것은 지극히 당연한 일이죠? 한 소스파일 내에 클래스가 여러 개 있을 때는 소스파일명과 동일한 클래스에만 public이라는 접근제어자를 사용할 수 있는데 그 이유가 궁금해서 정리해봤습니다. 그 이유는 자바의 컴파일과 네임스페이스 관리 방식과 관련이 있기 때문입니다. 소스 파일명과 클래스 이름이 동일한 경우 컴파일러는 해당 클래스 파일의 이름을 소스 파일명과 동일하게 생성합니다. 이러한 방식은 자바의 일관성과 그 구조를 유지하는 데에 도움을 준다고 합니다. 또한 클래스의 접근성과 사용범위를 명확하게 유지할 수 있습니다. 그렇다면 한 소스 파일명에 여러 개의 클래스가 있는 경우 왜 다른 클래스에는 public 접근제어자를 사용할 수 없을까요? .. 자바에서의 메모리 누수를 데몬 스레드로 해결할 수 있을까? 데몬 스레드(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 .. 자바에서 구현과 상속을 동시에 사용하는 경우(implements, extends) 자바를 공부하다가 한 클래스에 대해서 extends와 implements를 동시에 사용가능한지에 대한 궁금증이 생겼다. 그래서 정리 해보는 내용! 결론부터 말하자면 둘 다 동시에 사용이 가능하다. 아래의 예시 소스 코드를 보자. //인터페이스 public interface TireInterface { } //상속받을 부모 클래스 public class TireClass { } //한 클래스 내에서 인터페이스 구현, 클래스 상속을 동시에 사용 public class Tire extends TireClass implements Tire { } 위의 내용과 같이 일반 클래스에서 인터페이스 구현과 클래스 상속을 동시에 할 수 있다. 표기할 때는 "extends 상속받을 클래스 implements 인터페이스" 방.. VSCODE에서 인코딩/자동저장/들여쓰기 이번에는 비주얼 스튜디오에서 사용하는 여러 설정 중에 유용하게 혹은 자주 쓰이는 설정들 몇 가지를 소개해드리려고 합니다. VSCODE에서 인코딩 설정하기 코드를 작성하다보면 한글이 포함된 소스코드를 실행해야하는 경우가 꽤 많습니다. 아무것도 건드리지 않아도 잘 된다면 문제가 없다면 가끔 아래와 같은 에러 메시지가 나올 때가 있습니다. 해당 에러는 말 그대로 위에서 ?옄 등으로 이상하게 나온 부분이 인코딩이 안되었다는 얘기인데 이 부분은 인코딩 설정을 바꾸는 것만으로도 간단하게 해결할 수 있습니다. VSCODE의 하단에 나와있는 글씨 중에 UFT-8이라고 되어 있는 부분을 클릭해주세요. 저는 현재 인코딩 설정이 UFT-8이라서 이렇게 나와있는데 다르게 설정된 분들은 다르게 나와있을 수 있습니다. 저와 같은.. 이클립스 입력값 주고 실행하는 방법 안녕하세요. 이번에는 간단하게 이클립스에서 임의의 매개값을 넣어서 실행하는 방법을 알아보겠습니다. 실행할 코드를 띄워놓고 이클립스 상단 메뉴에서 Run-Run Configurations... 를 클릭해주세요. 위와 같은 화면의 중앙에 탭으로 된 메뉴가 몇 가지 있습니다. 처음 실행한 분들은 Main이 선택되어 있을텐데 Main 오른쪽에 있는 Arguments를 선택해주세요. 다음과 같이 위와 아래에 입력하는 공간이 2개가 나옵니다. 여기서 위쪽에 있는 Program arguments 부분에 내가 매개값으로 입력할 값을 입력한 뒤에 오른쪽 하단의 Apply 버튼을 누르고 Run을 눌러서 실행합니다. 저같은 경우는 메인 메소드에서 바로 String 배열값을 받아서 실행해보겠습니다. public class A.. 이전 1 2 3 4 5 6 ··· 11 다음