자바프로그램 → JVM(자바 가상머신) → Host OS → 컴퓨터(물리머신)
패키지 : 클래스의 묶음 → 하나의 디렉토리(폴더), 물리적으로 하나의 디렉토리
클래스 : 유사한 특징을 지닌 객체들의 속성을 묶어 놓은 집합체, 객체를 생성하기 위한 틀
객체 : 클래스에 정의한 것들을 토대로 메모리에 할당된 것(실제 구현)
클래스에서 객체를 생성하는 과정을 인스턴스화라고 하며 생성된 객체를 인스턴스라고 한다
public static void main(String[] args)
main : 프로젝트 시작점을 의미
public : 접근 제어(외부접근가능) → 외에도 protected, private 등이 있음(실행되어야 함으로 어디서든 상속 참조가 가능한 public으로 쓰여야 함)
static : 시작과 동시에 호출 됨, 종료될때까지 계속 유지(즉 계속 참조가 가능) → 메인 메소드를 계속 실행시키기 위해서는 계속 살아있어야 함으로 static으로 선언
void : 리턴 값 없음 → 프로젝트 종료시까지 리턴되면 안됨(리턴되면 종료됨으로)
String[] args : 연속적인 문자열 데이터가 들어가는 저장 공간 → 프로그램실행시 외부값 가져와서 프로그램 안에서 사용할시 메모리에 저장공간 미리 선언
클래스 : 객체를 만들기 위한 설계도
객체 : 구현할 대상(클래스의 인스턴스라고도 부름)
클래스로부터 객체를 만드는 과정 : 클래스의 인스턴스화라고도함
클래스로부터 만들어진 객체 : 클래스의 인스턴스
객체는 모든 인스턴스를 포괄함
인스턴스 : 구현된 실체(메모리에 할당됨)
new 연산자를 이용해서 메모리를 생성 ⇒ 객체로 사용 가능(힙 메모리 영역에 생성)//사용자가 직접 관리하는 메모리 영역
new 연산자는 객체를 생성 시킨 후 객체 주소 리턴함
c++은 new를통해 생성하면 메모리 주소를 직접 넘겨줌
자바는 주소대신 참조값을 할당받음
따라서 자바에서 개체변수 = 참조변수라고 한다
Student studentLee = new Student();
//Studnet studnetLee = null; -> 객체변수 선언(메모리 생성전임으로 null)
//studentLee = new Student(); -> 객체변수에 대한 메모리 생성(new 키워드)
studentLee.name = “이순신”;
System.out.println(studentLee);
클래스명 변수명 = new 클래스명();
클래스 안에서 다른 매개변수를 갖는 두개 이상의 생성자를 구현하는 것을 말함
참고
자바 강의
https://dinfree.com/lecture/language/112_java_2.html#m1
자바 코딩 컨벤션
https://myeonguni.tistory.com/1596
psvm의 이해
https://blog.naver.com/crazydeicide/130114957734
객체
https://programmer-seva.tistory.com/76
생성자
https://velog.io/@foeverna/Java-클래스와-객체-생성자-생성자-오버로딩