본문 바로가기

Java

(41)
[Java] 생성자(Constructor) 생성자란? - 생성자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드'이다. 따라서 인스턴스 변수의 초기화 작업에 주로 사용되며, 인스턴스 생성 시에 실행되어야 할 작업을 위해서도 사용된다. - 인스턴스 초기화란, 인스턴스 변수들을 초기화하는 것을 뜻한다. - 생성자 역시 메서드처럼 클래스 내에 선언되며, 구조도 메서드와 유사하지만 리턴값이 없다는 점이 다르다. - 그렇다고해서 생성자 앞에 리턴값이 없음을 뜻하는 키워드 void를 사용하지는 않고, 단지 아무것도 적지 않는다. - 생성자의 조건 + 생성자도 메서드이기 때문에 리턴값이 없다는 의미의 void를 붙여야 하지만, 모든 생성자가 리턴값이 없으므로 void를 생략을 할 수 있게 하였다. - 연산자 new 가 인스턴스를 생성하는 것이지 생성..
[Java] 클래스 메서드(satic메서드)와 인스턴스 메서드 - 변수와 마찬가지로 메서드 앞에 static이 붙어 있으면 클래스 메서드이고 static이 붙어있지 않으면 인스턴스 메서드이다. - 클래스 메서드도 클래스변수처럼, 객체를 생성하지 않고도 '클래스이름.메서드이름(매개변수)'와 같은 식으로 호출이 가능하다. - 인스턴스 메서드는 객체를 생성해야만 호출할 수 있다. - 클래스는 '데이터(변수)'와 데이터에 관련된 메서드의 집합'이므로, 같은 클래스 내에 있는 메서드와 멤버변수는 아주 밀접한 관계가 있다. - 인스턴스 메서드는 인스턴스 변수와 관련된 작업을 하는, 즉 메서드의 작업을 수행하는데 인스턴스 변수를 필요로 하는 메서드이다. 그런데 인스턴스 변수는 인스턴스(객체)를 생성해야만 만들어지므로 인스턴스 메서드 역시 인스턴스를 생성해야만 호출할 수 있는 것..
[Java] 기본형 매개변수, 참조형 매개변수 + 참조형 반환타입 기본형 매개변수와 참조형 매개변수 - 자바에서는 메서드를 호출할 때 매개변수로 지정한 값을 메서드의 매개변수에 복사해서 넘겨준다. - 매개변수의 타입이 기본형(primitive type)일 때는 기본형 값이 복사되겠지만, 참조형(reference type)이면 인스턴스의 주소가 복사된다. - 메서드의 매개변수를 기본형으로 선언하면 단순히 저장된 값만 얻지만, 참조형으로 선언하면 값이 저장된 곳의 주소를 알 수 있기 때문에 값을 읽어 오는 것은 물론 값을 변경하는 것도 가능하다. 기본형 매개변수 변수의 값을 읽기만 할 수 있다. (read only) 참조형 매개변수 변수의 값을 읽고 변경할 수 있다. (read & write) example1) - change메서드에서 main메서드로부터 넘겨받은 d.x의..
[Java] JVM의 메모리 구조 응용 프로그램이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 JMV은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다. 1) 메서드 영역(Method Area) - 프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스파일(*.class)을 읽어서 분석하여 클래스에 대한 정보(클래스 데이터)를 이곳에 저장한다. 이 떄, 그 클래스의 클래스변수(class variable)도 이 영역에 함께 생성된다. 2) 힙(Heap) - 인스턴스가 생성되는 공간, 프로그램 실행 중 생성되는 인스턴스는 모두 이 곳에 생성된다. - 즉, 인스턴스 변수(intance variable)들이 생성되는 공간이다. 3) 호출 스택 (Call Stack 또는 Executio..
[Java] 메서드(Method) - method는 특정 작업을 수행하는 일련의 문장들을 하나로 묶은 것이다. - 기본적으로 수학의 함수와 유사하며, 어떤 값을 입력하면 이 값으로 작업을 수행해서 결과를 반환한다. - 예를 들어 제곱근을 구하는 메서드 'Math.sqrt()'는 4.0을 입력하면, 2.0을 결과로 반환한다. - 수학의 함수와 달리 메서드는 입력값과 또는 출력값이 없을 수도 있으며, 심지어는 입력값과 출력값이 모두 없을 수도 있다. - 그저 메서드가 작어븡ㄹ 수행하는데 필요한 값만 넣고 원하는 결과를 얻으면 될 뿐, 메서드가 내부적으로 어떤 과정을 거쳐 결과를 만들어내는지 전혀 몰라도 된다. - 메서드에 넣을 값과 반환하는 결과만 알면 된다. 그래서 메서드를 내부가 보이지 않는 '블랙박스'라고도 한다. 메서드를 사용하는 이..
[Java] 변수(Variable) 선언위치에 따른 변수의 종류 - 변수는 클래스변수, 인스턴스변수, 지역변수 모두 3종류가 있다. - 변수의 종류를 결정짓는 중요한 요소는 '변수의 선언된 위치'이므로 변수의 종류를 파악하기 위해서는 변수가 어느 영역에 선언되어있는지 확인해야 한다. - 멤버변수를 제외한 나머지 변수들은 모두 지역변수이며, 멤버변수 중 static이 붙은 것은 클래스변수, 붙지 않은 것은 인스턴스 변수이다. 변수의 종류 선언위치 생성시기 클래스 변수 (class variable) 클래스 영역 클래스가 메모리에 올라갔을 때 인스턴스 변수 (intance variable) 인스턴스가 생성되었을 때 지역 변수 (local variable) 클래스 영역 이외의 영역 (메서드, 생성자, 초기화 블럭 내부) 변수 선언문이 수행 되었을..
[Java] 클래스(Class)와 객체(Object) 정의와 용도 클래스(Class) - 클래스(Class)는 '객체(Object)를 정의해놓은 것' 또는 '객체의 설계도 또는 틀'. - 클래스는 객체를 생성하는데 사용되며, 객체는 클래스에 정의된 대로 생성된다. 클래스의 정의 : 클래스란 객체를 정의해 놓은 것이다. 클래스의 용도 : 클래스는 객체를 생성하는데 사용된다. 객체(Object) - 객체의 사전적인 정의는 '실제로 존재하는 것' - 우리가 주변에서 볼 수 있는 사물들이 곧 객체. - 객체지향이론에서는 사물과 같은 유형적인 것뿐만 아니라, 개념이나 논리와 같은 무형적인 것들도 객체로 간주한다. - 프로그래밍에서의 객체는 클래스에 정의된 내용대로 메모리에 생성된 것을 의미한다. 객체의 정의 : 실제로 존재하는 것. 사물 또는 개념. 객치의 용도 :..
[Servlet/JSP] Servlet 정리 서블릿이란? - 서블릿은 서버 쪽에서 실행되면서 클라이언트의 요청에 따라 동적으로 서비스를 제공하는 자바 클래스이다. - 서블릿은 자바로 작성되어 있으므로 자바의 일반적인 특징을 모두 가집니다. - 서블릿은 일반 자바 프로그램과 다르게 독자적으로 실행되지 못하고 Tomcat과 같은 JSP/Servlet 컨테이너에서 실행된다는 점에서 차이가 있다. - 서블릿은 서버에서 실행되다가 웹 브라우저에서 요청을 하면 해당 기능을 수행한 후 웹 브라우저에 결과를 전송한다. - 서버에서 실행되므로 보안과 관련된 기능도 훨씬 안전하게 수행할 수 있다. - 클라이언트가 웹 서버에 요청하면 웹 서버는 그 요청을 Tomcat과 같은 WAS에 위임한다. - WAS는 각 요청에 해당하는 서블릿을 실행한다. 그리고 서블릿은 요청에..
[Servlet/JSP] Apache와 Apache Tomcat 그리고 WebServer, WAS 1) Apache (Apache Http Server Project) - Apache Http Server는 오픈 소스 소프트웨어 그룹인 아파치 소프트웨어 재단에서 만드는 웹 서버 프로그램이다. - http 웹서버는 http 요청을 처리할 수 있는 웹서버이고, Apache Http Server는 http 요청을 처리하는 웹서버이다. (클라이언트가 GET/POST/DELETE 등의 기능을 이용해 요청을 하면 이 프로그램이 결과를 응답하는 기능을 한다.) - 정적인 데이터를 처리하는 웹서버이다. (정적인 HTML이나 이미지를 제공하는 서버를 웹서버라고 한다.) - 대표적인 웹서버에는 Apache와 NGINX와 Windows 전용 웹서버인 IIS가 있다. 2) Tomcat - Tomcat이 Apache의 기능..
[Servlet/JSP] Web Application 정리 정의 - 웹 애플리케이션(Web Application)이란 말 그대로 기존의 정적인 웹 애플리케이션의 기능을 그대로 사용하면서 서블릿(Servlet, 자바로 만든 CGI 프로그램), JSP, 자바 클래스들을 추가하여 사용자에게 동적인 서비스를 제공하는 프로그램을 말한다. CGI menu CGI란 무엇인가? 1. Web server와 Client 사이의 통신2 CGI 일반적으로 서버는 CGI 프로그램들이 있는 위치(일반적으로 `cgi-bin'디렉토리)를 정해놓고 있는데, 웹 사용자가 CGI 프로그램이 내장되어 있는 문서나 양식을 작성하여 서버에게 그 CGI 프로그램을 실행할 것을 요청하게 된다. 이 때 서버는 그 문서에 내장된 CGI 프로그램을 이미 설정된 디렉토리에서 실행하게 된다.CGI 프로그램 실행시..