출처 : www.hyoyoung.net/60 (문제시 자삭)

- 정렬하는데 쓰는 Interface 2가지가 있다.

1. Java.lang Interface Comparable<T>

2. Java.util Interface Comparator<T>


- Comparable Implements<T>

Implements Comparable 하면, public int compareTo(object o) {} 메서드가 생성이 되는데..

해당하는 객체로 타입을 변경하고, 정렬부분을 구현하면된다.(총 점수 내림차순)

Collections.srot();


- Implements Comarator<T>

Collections.sort(studentList, new ClassStudentNoComparator());

Collections.sort(studentList, new ClassTotalComparator());

'공부 > JAVA' 카테고리의 다른 글

JAVA_[Google URL Shortener API]  (0) 2017.11.22
JAVA_[SMTP mail 전송(Gmail)]  (0) 2015.05.06
JAVA_[ 제어자 ]  (0) 2015.02.10
JAVA_[ JVM의 메모리구조 ]  (0) 2015.02.10
JAVA_[Thread join()]  (0) 2015.02.09


* 이미지에요.(화면단에서 OptGroup Label 명은 선택되지 않는다)

'공부 > JSP' 카테고리의 다른 글

JSP_[ <init-param> & <context-param> ]  (0) 2015.02.12
JSP_[ forward 와 sendRedirect ]  (0) 2015.02.11
JSP_[ 첨부파일 유무확인 ]  (0) 2014.06.03
JSP_[ ServletConfig 와 ServletContext 차이점 ]  (0) 2014.06.02
JSP_[ EL 비교연산자 ]  (0) 2014.03.11

인터넷 펌

- toPrice(cipher)

: 엘리먼트의 value 에서 문자열을 제거한 숫자값에 3자리 콤마(,)

(cipher) 의 숫자를 넣으면 해당 숫자의 자릿수만큼 콤마로 자리수를 표시한다. 값을 넣지 않으면 기본 3자리

- getOnlyNumberic(data)

: 엘리먼트의 value 에서 문자열을 제거한 숫자만은 반환

 

- 파일 :

jquery.money.js

 

- 예제(함수) :

jQuery("#inputForm").keyup(function(event) {

jQuery(this).toPrice();

});

 

 

'공부 > JQuery' 카테고리의 다른 글

JQuery_[상태 필터 선택자]  (0) 2015.01.29
JQuery_[위치기반 필터 선택자]  (0) 2015.01.29
JQuery_[ $.param() / serialize() ]  (0) 2014.08.26
JQuery_[ Scroll 이벤트 ]  (0) 2014.08.25
JQuery_[ $.extend() ]  (0) 2014.08.25

▶ <init-param>

jsp 파일은 web.xml 파일에 등록하지 않아도, 웹 브라우저에서 호출할 수 있지만, 

초기화 파라미터를 기재하기 위해서는 web.xml 파일에 등록해야 한다.


- 등록

<webapp>

<servelt>

<servlet-name>DBName-jsp</servlet-name>

<jsp-file>/DBName.jsp</jsp-file>

<init-param>

<param-name>DB_NAME</param-name>

<param-value>Oracle</param-value>

</init-param>

</servlet>

<servlet-mapping>

<servlet-name>DBName-jsp</servlet-name>

<url-pattern>/DBName</url-pattenr>

</servlet-mapping>

</webapp>


- 호출

<url-pattern> 의 값으로 호출 (http://localhost:8080/DBName) 하고,

실제 jsp 파일은 <jsp-file> 에 입력한 /DBName.jsp 가 호출되며, 해당 jsp 내에서 <init-param>에 입력한

초기화 파라미터를 사용할 수 있다.


- 사용(/DBName.jsp 안에서 사용한다고 가정)

<%

String dbName = config.getInitParameter("DB_NAME");

%>



▶ <context-param>

웹 어플리케이션 전체에서 호출가능한 초기화 파라미터


- 등록

<webapp>

<context-param>

<param-name>DB_NAME</param-name>

<param-value>Oracle</param-value>

</context-param>

</webapp>


- 호출

<init-param> 와 같이 특정 서블릿(& JSP)에 속하는 초기화 파라미터뿐 아니라 웹 어플리케이션 전체에서 호출 및 사용가능


- 사용

<%

    String dbName = application.getInitParameter("DB_NAME");

%>

※ JSP 내 에서 익스프레션 'EL' 문으로도 사용가능하다

1. ${initParam["DB_NAME"]}

2. ${initParam.DB_NAME}

'공부 > JSP' 카테고리의 다른 글

JSP_[ SelectBox 그룹묶기(HTML) ]  (0) 2015.03.20
JSP_[ forward 와 sendRedirect ]  (0) 2015.02.11
JSP_[ 첨부파일 유무확인 ]  (0) 2014.06.03
JSP_[ ServletConfig 와 ServletContext 차이점 ]  (0) 2014.06.02
JSP_[ EL 비교연산자 ]  (0) 2014.03.11

▶ sendRedirect 는 URL 을 웹 브라우저로 보내서 간접적으로 웹 자원을 호출하지만, forward 메서드는 웹 서버쪽에서 호출

▶ sendRedirect 메서드를 이용하면 다른 웹 서버에 있는 웹 자원도 호출 가능 하지만, forward 메서드는 같은 웹 서버,

    같은 웹 어플리케이션 디렉터리 내에 있는 웹 자원만 호출 가능하다.

▶ sendRedirect 는 텍스트 데이터만 전달할 수 있지만, forward 메서드는 객체 형태의 모든 데이터를 전달할 수 있다.

▶ sendRedirect 는 한글 데이터를 전달하기 위해서는 URL 인코딩을 해야 하지만, forward 메서드는 그런 작업이 필요치 않다.

 

- ex)

- forward

RequestDispatcher dispatcher = request.getRequestDispatcher(url);
dispatcher.forward(request, response);

 

- sendRedirect

response.sendRedirect(url);

'공부 > JSP' 카테고리의 다른 글

JSP_[ SelectBox 그룹묶기(HTML) ]  (0) 2015.03.20
JSP_[ <init-param> & <context-param> ]  (0) 2015.02.12
JSP_[ 첨부파일 유무확인 ]  (0) 2014.06.03
JSP_[ ServletConfig 와 ServletContext 차이점 ]  (0) 2014.06.02
JSP_[ EL 비교연산자 ]  (0) 2014.03.11

- 제어자 분류

1. 접근제어자 : public, protected, default, private

2. 그외제어자 : static(클래스), final, abstract(추상), native, transient(직렬화 X), synchronized(동기화), volatile, strictfp


public - 접근제한이 전혀 없다.

protected - 같은 패키지 내에서, 그리고 다른패키지의 자손클래스에서 접근이 가능하다.

default - 같은 패키지내에서만 접근이 가능하다.

private - 같은 클래스 내에서만 접근이 가능하다.


private < default < protected < public 




- 제어자의 조합자

  

- 제어자 조합시 주의사항

1. 메서드에 static 과  abstract(추상) 함꼐 사용할 수 없다.

: static 메서드는 몸통(구현)있는 메서드만 사용 가능하다.

2. 클래스에 abstract(추상) 와 final 을 동시에 사용할 수 없다.

: 클래스에서 사용되는 final 은 확장할 수 없다는 의미이고, abstract 는 상속을 통해 완성해야한다는 의미로

  모순이다.

3. abstract(추상) 메서드의 접근제어자가 private 일 수 없다.

: abstract 메서드는 자손클래스에서 구현해 주어야 하는데 접근제어자가 private 이면, 자손클래스에서 접근할 수 없다.

4. 메서드에 private 와 final 을 같이 사용할 필요는 없다.

: 접근제어자가 private 인 메서드는 오버라이딩할 수 없기 때문이다.

'공부 > JAVA' 카테고리의 다른 글

JAVA_[SMTP mail 전송(Gmail)]  (0) 2015.05.06
JAVA_[ Collection.srot (리스트 정렬)]  (0) 2015.03.26
JAVA_[ JVM의 메모리구조 ]  (0) 2015.02.10
JAVA_[Thread join()]  (0) 2015.02.09
JAVA_[Thread start() & run()]  (0) 2015.02.06

- 응용프로그램이 실행되면, JVM 은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 JVM은 이 메모리를 용도   에 따라 여러 영역으로 나누어 관리한다.


1. 메서드 영역(Method Area)

- 프로그램 실행 중 어떤 클래스가 사용되면, JVM 은 해당 클래스의 *.class 읽어서 분석하여 클래스에 대한 정보를

  Method Area 에 저장한다. 이 때, 클래스 내의 클래스변수 도 이 영역에 함꼐 생성된다.


2. 힙(Heap)

- 인스턴스가 생성되는 공간.

  프로그램을 실행 중 생성되는 인스턴스 모두 이 곳에 생성된다. 즉, 인스턴스변수(Instance variable)들이 생성되는 공간


3. 호출스택(Call Stack 또는 Execution Stack)

- 호출스택은 메서드의 작업에 필요한 메모리 공간을 제공한다.

  메서드가 호출되면, 호출스택에 호출된 메서드를 위한 메모리가 할당되며, 이 메모리는 메서드가 작업을 수행하는 동안 

  지역변수(매개변수)들과 연산의 중간결과 등을 저장하는데 사용된다. 그리고, 메서드가 작업을 마치게 되면 할당되었던 메모리

  공간은 반환되어 비워진다.

  

  각 메서드별 메모리상의 작업공간은 서로 구별되며, 호출된 메서드는 작업공간에 쌓이게 되는데, 순차적으로 쌓이게 되며,

  젤 최근에 호출된 메서드 작업공간이 가장위에 쌓인다.

  - 언제나 호출스택의 제일 위에 있는 메서드가 현재 실행 중인 메서드이다.

  - 아래에 있는 메서드가 바로 위의 메서드를 호출한 메서드이다.

  


'공부 > JAVA' 카테고리의 다른 글

JAVA_[ Collection.srot (리스트 정렬)]  (0) 2015.03.26
JAVA_[ 제어자 ]  (0) 2015.02.10
JAVA_[Thread join()]  (0) 2015.02.09
JAVA_[Thread start() & run()]  (0) 2015.02.06
JAVA_[ 리눅스 권한변경 ]  (0) 2014.12.26

▶ join()

- 지정된 시간동안 쓰레드가 실행되도록 한다. 지정된 시간이 지나거나 작업이 종료되면, join() 을 호출한 쓰레드로 다시 돌아와

  실행을 계속한다.


- ex (th1 start() 후에 th1.join() 하면 th1 쓰레드가 종료되기전까지 main 메서드가 대기중으로 th2 쓰레드를 실행하지 않고 대기)

public class Thread_Ex14 {


    public static void main(String args[]) {

        ThreadEx14_1 th1 = new ThreadEx14_1();

        ThreadEx14_2 th2 = new ThreadEx14_2();


        th1.start();

        try {

            th1.join();

        } catch (InterruptedException e) {

            e.printStackTrace();

        }

        th2.start();

    }

}


class ThreadEx14_1 extends Thread {

    @Override

    public void run() {

        for (int i = 0; i < 300; i++) {

            System.out.println("-");

        }

    }

}


class ThreadEx14_2 extends Thread {

    @Override

    public void run() {

        for (int i = 0; i < 300; i++) {

            System.out.println("|");

        }

    }

}

'공부 > JAVA' 카테고리의 다른 글

JAVA_[ 제어자 ]  (0) 2015.02.10
JAVA_[ JVM의 메모리구조 ]  (0) 2015.02.10
JAVA_[Thread start() & run()]  (0) 2015.02.06
JAVA_[ 리눅스 권한변경 ]  (0) 2014.12.26
JAVA_[ map의 Key, Value Iterator 으로 자동으로 불러오기 ]  (0) 2014.12.10

● Run()

- run()을 호출하는 것은 생성된 쓰레드를 실행시키는 것이 아니라 단순히 클래스내에 속한 메서드 하나를 호출하는 것이다.


● Start()

- start()는 run()과 달리 쓰레드가 작업을 실행하는데 필요한 호출스택(Call Stack)을 생성한 다음,

  run()을 호출해서, 생성된 호출스택에  run() 이 첫 번째로 저장되게 한다.

 모든 쓰레드는 독립적인 작업을 수행하기 위해 자신만의 호출스택을 필요로 하기 때문에, 새로운 쓰레드를 생성하고 

 실행시킬 때 마다 새로훈 호출스택이 생성되고 쓰레드가 종료되면 작업에 사용된 호출프택은 소멸된다.

1) main 메서드에서 쓰레드의 start 메서드 호출

2) start 메서드는 쓰레드가 작업을 수행하는데 사용될 새로운 호출스택을 생성

3) 생성된 호출스택에 run 메서드를 호출해서 쓰레드가 작업을 수항하도록 한다.

4) 이제는 호출스택이 2개이기 때문에 스케쥴러가 정한 순서에 의해서 변갈아 가면서 실행된다.


※ 결론은 start() 를 쓰는게 확실함.


'공부 > JAVA' 카테고리의 다른 글

JAVA_[ JVM의 메모리구조 ]  (0) 2015.02.10
JAVA_[Thread join()]  (0) 2015.02.09
JAVA_[ 리눅스 권한변경 ]  (0) 2014.12.26
JAVA_[ map의 Key, Value Iterator 으로 자동으로 불러오기 ]  (0) 2014.12.10
JAVA_[ EJB란? ]  (0) 2014.11.05

+ Recent posts