생성자 constructor 자바에서 생성자는 클래스가 생성될 때 호출되는 메서드와 유사한 코드 블럭 - 객체를 초기화하는 데 사용됨.(객체의 필드 값을 설정) - 클래스에 생성자가 없으면 Java 컴파일러가 default 생성자를 만듦. 📢 생성자 규칙 1. 생성자의 이름은 Class 이름과 동일해야 함. class Bike{ Bike(){} // 생성자 } 2. return 값이 없음. - void 등 return type을 명시하면 안 됨. 3. abstract, final, static 키워드를 붙일 수 없음. 📔 생성자의 종류 1. 기본 생성자 - 파라미터가 없는 생성자 2. 파라미터가 있는 생성자 기본 생성자 - 객체 인스턴스 변수의 타입에 따른 default 값(0이나 null 등)으로 설정..
자바 실행 과정 1. 자바 컴파일러를 통해 자바 소스 파일(.java)를 바이트코드(.class)로 변환 ➡️ 1차 컴파일 컴파일 명령어 : "javac 파일명.java" 2. JVM에 의해 바이트코드(.class) 파일을 메모리에 로딩하고 그와 동시에 운영체제 플랫폼에 맞게 리소스들을 다시 재컴파일 하여 실행 ➡️ 2차 컴파일 바이트코드 변환 후 실행 명령어 : "java 파일명" JVM(Java Virtual Machine) ❓Java 프로그램을 컴파일하여 만들어지는 바이트코드(.class)를 실행시키기 위한 가상 머신 자바 프로그램을 운영체제에 상관없이 실행할 수 있게 해주고 프로그램 메모리를 관리하고 최적화해줌. 자바는 exe가 아니기 때문에 더블 클릭하여 실행할 수 없음. 자바 소스 파일을 1차..
✔️ java.lang.Exception - 모든 예외 상황은 이 클래스를 상속받음. 특징 각각의 exception은 코드에서 잘못된 점을 알려줌. exception 이름 자체가 중요 단서를 제공하고 디버깅하는 과정을 도와줌. es) NoSuchElementException, NullPointerException Exception 클래스를 상속받은 새로운 exception을 만들면 코드를 개인화하고 디버깅을 쉽게 만듦. → 이 때도 이름이 중요 커스텀 Exception 만들기 pacakge exception; // 서로 관련 있는 것들은 묶어두는 것이 좋음. exception 패키지에 묶어두라. public class FileFormatException extends Exception { // Excep..
Generic Programming - 다양한 자료형의 객체에 대해 작성한 코드를 재사용한다는 객체 지향 기법 | 필요성 - Generic 프로그래밍이 없었다면 아래 코드에 대해 type이 달라질 때마다 매번 비슷한 코드를 추가로 만들어야 함. public class SS { // public Person[] superSort(Person[] array){ // public String[] superSort (String[] array){ public int[] superSort (int[] array){ // .... sort .... return array; } } → 위와 같이 코드를 짜면 int, String, Person 등 자료형이 달라질 때마다 동일한 method가 추가되어야 함. - 이와 ..
객체에 할당되는 메모리 사이즈 객체의 종류에 따라 달라짐. 객체에 메모리 할당 과정 아래 코드와 같이 객체를 선언 JVM이 4 bytes 블록을 s에 할당 할당된 블록이 heap에 있는 공간을 가리킴. heap에는 Student class에 필요한 메모리 양을 계산하여 그만큼 heap에 할당되어 있음. Student class 안에 선언된 모든 변수들을 계산하여 필요한 메모리 양 계산. JVM은 Student가 무엇인지, 어디서 온 것인지(어디서 상속된 것인지) 알아야 heap에 얼마의 공간을 할당할지 결정할 수 있음. Student s = new Student(); 상속 여러 개의 객체가 있으면 상속을 활용하여 객체 간의 관계를 나타낼 수 있음. 다음과 같은 구조를 이용하여 상속 받을 수 있음. * 아..