Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- aws #ec2 #instance #클라우드 #cloud #it
- 오류해결
- 개발자포트폴리오
- 클래스
- 인스턴스오류 #Tomcat #mysql
- Spring REST Docs #Swagger #JAVA #REST API
- sql린이#공부중
- dockerfile #dockerrun #빌드
- 바인딩
- 인터페이스
- 서터 세팅이 잘못인가
- 클래스명
- 서버이전
- 포트폴리오 작성
- WORK폴더
- Integer
- ArrayList
- ROLLUP#합계
- 자바프로그래밍
- Tomcat
- 클래스명과 파일명 동일한 이유
- brew #mariadb #Django #Python
- 근데왜지
- 나중에도 같은문제면 이렇게 시도해봐야겠다
- list
- Java
- 객체정렬 #Java8
- iBATIS
- JSON #javascript
- Spring #Scheduler #JAVA
Archives
- Today
- Total
HoneyBee
[JAVA공부] JAVA 클래스명과 파일명은 왜 같아야하는지? 본문
필자가 백준 1110번 문제를 정말 비효율적인 방식으로 풀어서 다시 나머지 연산을 이용해 풀게 되었다.
그러다 문득
어? 왜 자바명과 클래스 명은 왜 같아야 할까?
이런 질문이 떠오르게 되었다. 신입일지라도 JAVA개발자로서 일하는 사람이 이런것도 모르다니.. 하지만 낙담하지 않고 어느 누군가 말했던 항상 쓰던 것도 왜 쓰는지 다시 검색해보고 알아봐야한다고 들었기에 간단하게 조사를 하게 되었다.
번역
Q. 왜 자바 파일 명은 언제나 public class 명과 동일해야하나요?
Java에서 Java 파일 이름은 항상 공용 클래스 이름과 동일해야 합니다.
- Java 프로그램을 처음 작성하는 동안 " .java " 파일 로 저장되지만 컴파일될 때 " .class " 파일인 바이트 코드를 형성하므로 프로그램 파일을 클래스와 유사하게 만들면 우리가 모호함 없이 이해하는데에 용이할 것입니다. 클래스가 public이 아닌 경우에만 파일 이름에 대해 모든 이름을 사용할 수 있습니다. 공개 클래스의 경우 다른 파일 이름을 사용할 수 없습니다.
- 파일 이름은 해당 파일의 Public class 이름과 동일한 이름을 가져야 합니다. 이는 JVM에 이것이 진입점임을 알리는 방법입니다.
- 하나 이상의 클래스가 있는 프로그램을 만들고 Java 소스 파일을 컴파일한 후 프로그램에 있는 클래스와 동일한 수의 .class 파일을 생성한다고 가정합니다. 이 조건에서 우리는 자바 인터프리터가 해석해야 하는 클래스와 프로그램의 진입점을 포함하는 클래스를 쉽게 식별할 수 없습니다.
결국 위의 내용을 정리하자면
- public 아닌 경우에 파일명과 관련없이 class이름 선언 가능
- Public class와 파일명이 동일해야하는 이유는 JVM에서 진입점이 되기 때문에
- 만약 그렇게 하지 않을 경우 JAVA소스 파일을 컴파일 한 후 자바 인터프리터가 해석해야하는 클래스와 진입점 포함하는 클래스를 쉽게 식별할수가 없음.
위의 이유로 인해 JAVA 클래스명과 파일명이 동일해야한다.
JAVA개념에 대해서는 처음 요약하다보니 좀 길었지만 다음부터는 더욱 검수를 통해 글을 작성해봐야겠다.
P.S 번역도 은근 재밌네(구글 번역 + 나의 의역 감사해요)
https://cbw1030.tistory.com/39
'Language > Java' 카테고리의 다른 글
Spring 에서 배치 프로그램 사용해보기 (0) | 2024.02.27 |
---|---|
멀티 스레드 @Async 사용기, CompletableFuture (0) | 2024.02.26 |
JDK21의 신기능 Virtual Thread 알아보기(카카오 테크 밋업) (0) | 2024.02.26 |
[객체 리스트 정렬] 내림 차순으로 정렬하기 (0) | 2023.09.25 |
[JAVA 개념공부] List와 ArrayList의 차이 (0) | 2021.10.25 |