본문 바로가기
study_java/java_수강정리(~10.29)

[JAVA]9일차

by developer_j 2020. 5. 21.
728x90
반응형

< 9일차 수업 >

 

1. JVM

자바 가상머신은 운영체제에 상관없이 자바 프로그램을 실행시키기 위한 하나의 소프트웨어다. 자바 가상머신은 운영체제가 달라도 코드를 수정하지 않고 프로그램이 원활하게 실행될 수 있도록 지원한다. 이것이 자바가상머신의 핵심이자 최대장점이지만, 단점으로는 OS 위에 자바가상머신이 있어서 프로그램 수행이 조금 느리게 느껴질 수 있다.


2.생성자(Constructor)

이전 수업까지는 클래스형 변수를 초기화하는 메소드를 따로 선언을 했었다. 메인함수에서 변수를 초기화하는 메소드를 호출하여 변수의 기본 값들을 저장하고 그것을 가지고 나머지 함수로 연산을 진행했었다. 이를 대신 할 수 있는 것이 바로 "생성자"다.

ConstructorClass  cc  =  new  ConstructorClass();

이 코드에서, 함수명이 클래스명이랑 똑같다. 어제까지는 그냥 클래스  형태를 명시해주는 거라 생각했다. 근데 자세히 보니 함수처럼 생겼다.(함수 사용 시 → 함수명(매개변수);) 그러나 나는 저런 함수를 선언하지 않았다. 그럼 왜 컴파일했을 때 에러가 발생하지 않을까?

바로 ConstructorClass(); 코드가 디폴트 생성자를 나타내고 있기 때문이다.

즉, 디폴트 생성자호출하고 있다는 것이다!

우선 생성자는 인스턴스 생성 과정에서 초기화를 위해 자동으로 호출되는 일종의 메소드이다. 하지만, ①생성자의 이름은 클래스의 이름과 동일해야 한다는 점, ②반환값이나 반환형이 없다는 점에서 메소드와 차이가 있다. 생성자의 목적과 용도는 딱 하나, 객체의 초기화이다. 객체 안에 선언된 변수의 값을 한번에 초기화할 수 있다!

디폴트 생성자는 내용도 매개변수도 없는 기본 생성자를 말한다. 사용자가 매개변수나 내용이 포함된 생성자를 따로 선언해 준다면 디폴트 생성자가 생기지않는다. 디폴트 생성자는 사용자가 생성자를 따로 정의해주지 않았을 경우에, 컴파일러가 자동으로 내용이 비어있는 생성자를 만들어주는 것을 말한다. 생성자는 사용자의 편의에 따라 여러개를 선언할 수 있다.


+) 참조형 변수에 NULL값을 집어넣게 되면, 해당 변수가 원래 참조하고 있던 주소값이 제거되고 NULL 값이 들어가면서 본래 주소와는 연결이 끊어진다. 따라서 원래 참조되던 객체는 자신을 사용하던 변수와 연결이 끊어졌으므로, JVM은 이 객체를 메모리에서 정리할 수 있는 대상으로 간주하게 된다. (그치만 언제 제거할지는 모름)

728x90
반응형

'study_java > java_수강정리(~10.29)' 카테고리의 다른 글

[JAVA]11일차  (0) 2020.05.25
[JAVA]10일차  (0) 2020.05.22
[JAVA]8일차  (0) 2020.05.20
[JAVA]7일차  (0) 2020.05.19
[JAVA]6일차  (0) 2020.05.19