• 식별자
프로그램을 작성하다 보면 직접 이름을 주어야 하는 클래스 이름, 메소드 이름, 변수 등과 같은 이름을 식별자라고 한다.


• 예약어
자바 프로그래밍을 하는데 있어 특정한 의미가 미리 부여되어 이미 만들어진 식별자를 말한다. 

예약어에 등록되어 있는 것을 프로그래밍에서 식별자로 사용할 수 없다.
(const와 goto는 예약어로 등록만 되어 있을 뿐 사용되지 않는 예약어다)


[식별자 명명 규칙]


•사용자 정의 명칭 (클래스, Method, Field)
–첫 글자는 ‘_’, ‘$’, 영문 대,소문자 (한글 가능)
–글자수에 제한 없다.
–공백문자 및 특수 문자 사용 불가
–숫자는 첫 글자가 아닐 때 사용 가능
–예약어 사용 불가
–기타 단순 약속 (대, 소문자의 규칙)


•첫 문자 구별
–클래스, 생성자 대문자 시작
–메서드, 멤버변수 소문자
–두 개 이상 단어를 붙여 쓸 때 단어시작은 시작은 대문자
예) Hello, HelloWorld, HelloWorldJava

RequestDispatcher & sendRedirect ]

 

클라이언트의 요청에 객체를 던져준다 .. 

 

만약 클라이언트가 요청한 페이지에 sendRedirect 가 있다면 다음과 같이 동작하게된다.

 

 

[ HttpServeltRequest 의 sendRedirect 로 서버에 요청할 경우 ]

 

<a.jsp>




<%

     response.sendRedirect("b.jsp");

%>

 

< 순서 >

 

클라이언트 -> 서버로 요청 (a.jsp) 

 

서버에서 응답 -> 클라이언트(a.jsp)

 

클라이언트 -> 서버로요청 (b.jsp)




서버에서 응답 -> 클라이언트(b.jsp)




* 결국 두번의 반복된 동작으로 두번의 네트윅 트레픽이 발생하기때문에 속도가 늦어질수 있다.

 

 

[ RequestDispatcher 로요청할 경우 ]




<a.jsp>




?<%


RequestDispatcher rd = request.getServeltContext().getRequestDispacher("b.jsp");

rd.forward(request, response);

%>




< 순서 >




클라이어트에서 요청 -> 서버에서 응답함(a.jsp) -> 서버로 페이지요청하여 객체로 전달(b.jsp)

-> 클라이언트에게 응답(b.jsp)




* RequestDispatcher를 이용한 경우 한번의 요청으로 모든 작업이 서버에서 처리되기 때문에

실행속도는 sendRedirect 보다 빠르다 

Singleton은 객체 생성을 control 하기 위한 목적으로 사용됩니다. 
객체의 갯수를 오직 하나로 제한하죠. 한개의 Singleton instance가 있으면 
Singleton의 instance 필드들은 한개의 클래스에 한번만 발생하게 됩니다.
Static 필드와 비슷하죠. 
Singleton은 종종 데이터베이스 커넥션이나 socket 연결 등에 사용 됩니다.

예를 들어 데이터베이스에 한개의 connection만 가능할 때 JDBC로 
multithreading을 하다 보면 문제가 발생할 수 있습니다.
이 Singleton은 한번에 한개의 connection혹은 한개의 thread 만 만들어 지도록 관리를 할 수 있습니다.

 

**열거형 싱글톤 - 가장 좋은 방법

public enum Elvis {

     INSTANCE;

     public void leaveTheBuilding() { ... }

}


이 방법은 public 필드 방법과 기능적으로 동일하지만 더 간단하다. 
그리고 복잡한 직렬화나 리플렉션(reflection) 상황에서도 직렬화가 자동으로 지원되고, 
인스턴스가 여러 개 생기지 않도록 확실하게 보장해준다.

이 방법은 아직 널리 적용되지 않았지만 싱글톤을 구현하는 가장 좋은 방법이다.

(1) 클래스 정의
자바 프로그램은 확장자가 “java”인 소스 파일을 하나 만들어서 자바 문법에 맞는 내용을 기술해야 한다.
자바는 클래스를 하나의 단위로 프로그램을 작성하기에 자바 소스 파일 안에 클래스를 정의해야 한다.
제대로 동작하려면 자바 소스 파일명이 클래스명과 동일해야 한다.


(2) main 메소드 정의
프로그램의 진입점이 다.
프로그램을 실행시키면 main 함수 내부에 기술된 내용들을 순차적으로 수행한다.

 

(2) main 메소드 정의
 public static void main(String[] args)
❶ ❷ ❸ ❹ ❺
❶ public : 누구나 접근 가능하도록 하기 위한 예약어로 접근 지정자의 일종이다.
❷ static : static으로 선언된 메소드는 클래스만 존재하면 수행할 수 있도록 한다.
❸ void : 값을 갖지 않는다는 의미를 갖는 자료형태이다
❹ main
•자바는 JVM에 의해서 실행되는데 자바 애플리케이션을 실행시키면 JVM은 이름이 main 메소드를 찾아 이 내부에 기술된 내용들을 순차적으로 실행한다.
•그래서 main 메소드를 프로그램의 진입점이라고 한다.
❺ String[] args
•메소드를 실행시키기 위한 재료가 될 만한 데이터를 전달받아야 할 경우 메소드_이름 다음에 기술하는 ( )을 사용한다.
•( ) 안에 기술한 args가 메소드에 값을 전달했을 경우 이를 받아 올 수 있는 전달인자가 된다.

 

(3) 문장
main 메소드까지 정의했다면 이 메소드 안에 수행할 내용을 기술할 차례이다.
자바는 문장 단위로 프로그램을 작성해야 한다.
메소드 내부에 기술할 문장으로는 변수의 선언문이나 다른 메소드를 호출하는 문장들이 있다.
 JAM은 세미콜론으로 끝나면 이를 하나의 문장으로 인식한다.
반드시 문장의 끝을 세미콜론으로 마감해야 한다.

System.out.println("AAA"); 문장의 끝을 세미콜론(;) 으로 마감

 

(4) 출력을 위한 문장

 위 문장은 화면에 "Hello Java"를 출력하라는 내용이다.

System.out.println 메소드는 ”(큰 따옴표)로 둘러싸인 문자열을 화면에 출력하는 역할을 한다

 

+ Recent posts