JAVA/이론 4

주석에 대하여(작성중)

필요성 문득 나는 코딩하면서 주석 적는 습관이 되어있나 생각해보게 되었어. 지금까지 대부분 주먹구구식의 개발이었고, 개인 프로젝트가 전부였던 내게 주석이란 굳이 필요가 없었던 것 같아. 그러나 개발을 학생으로 끝낼 생각이 전혀 없는 나는 개발자가 되기 위해 노력해야겠지. 그러려면 협업을 할 때, 다른 사람이 내가 짠 코드를 유지보수 할 때 주석이 반드시 필요할 것이라고 생각해. 서론이 길었는데, 맞아 이번엔 주석에 대해 공부를 좀 해보려고 해. 주석의 장점 1. 개발자 의도 파악할 수 있다. 2. 함수 제목, 변수명 등으로 표시하지 못하는 부분을 표현할 수 있다. 3. 기술적 제약을 간단히 기술해주면, 왜 이시점에서 이렇게 코딩 했는지 등을 알려줄 수 있다. 주석의 단점 1. 유지보수 과정에서 대부분 주..

JAVA/이론 2021.01.20

[JAVA] 추상클래스와 인터페이스(다형성)

1. 추상 클래스(Abstract class) 추상클래스는 미완성 도면이라고 생각하면 이해하기 쉬울거야. 예를 한 번 들어볼게. 1. A회사가 만든 문은 손으로 닫는 문 2. B회사가 만든 문은 자동으로 닫는 문 3. C회사가 만든 문은 양쪽으로 닫는 문 이상 A,B,C 회사 문은 닫히는 방법은 각기 다르지만 결국 '닫히다' 라는 공통점이 있어. '닫힌다' 라는 행위를 메소드라고 본다면, 공통된 메소드만 정의해 놓은 클래스가 바로 추상 클래스라고 할 수 있어. "추상 메서드를 선언하여 상속을 통해서 자손 클래스에서 완성하도록 유도하는 클래스" 이제는 이렇게 표현해도 이해할 수 있겠지? 추상 클래스가 가질 수 있는 것들은 다음과 같아. 1) 필드 2) 생성자 3) 추상메서드 생성자를 가지기 때문에 객체화가..

JAVA/이론 2021.01.05

[JAVA] String을 import 없이 사용할 수 있는 이유

원칙적으로 java.lang.String (변수명) 이런식으로 기술해야해. 그런데 우리는 왜 String을 import 없이 사용할 수 있을까? 우선 자바를 설치한 폴더를 찾아보자. C:\Program Files\Java\jdk-15.0.1\lib 나 같은 경우는 이 경로였어. lib 폴더를 들어가면, jrt-fs.jar 라는 파일이 보일거야! (구버전은 rt.jar) 바로 이 jar 파일 안에 JAVA에서 사용하는 클래스들이 압축되어 있어. String 같은 경우는 java/LANG 안에 String.class 형태로 저장되어 있지. 따라서 import를 이용해서 다음과 같이 써줄 수 있어 import java.lang.*;// 방법1 import java.lang.String;// 방법2 그러나 우리..

JAVA/이론 2021.01.05

[JAVA] JVM (자바가상머신)

JVM이란 JAVA Virtual Machine을 이르는 말이야. JVM은 코드를 실행하고 해당 코드에 대해 런타임 환경을 제공하는 소프트웨어 프로그램에 대한 사양이라고 하는데 그냥 쉽게 말해서 자바 프로그램을 실행하는 방법이라고 보면 돼. [실행 과정] 실행자가 자바 소스파일을 실행시키면 JAVA컴파일러가 .java파일을 .class파일로 변환시켜줘. 이렇게 변환된 class파일은 class loader를 만나게 되는데, 이 녀석은 class파일을 JVM에 할당된 메모리에 적재해주는 역할을 하고 있어. JVM이 시작되면 3개의 Class Loader가 사용돼. 1. 부트스트랩 클래스 로더 2. 확장 클래스 로더 3. 시스템 클래스 로더 방금 전에 class loader가 class파일을 메모리에 적재한..

JAVA/이론 2021.01.04