java 19

[JAVA] 재귀 - 이진 탐색 트리(Binary Search Tree)의 삽입 - (1)

1. 이진트리, 이진탐색트리란? 각 노드의 자식노드 수가 최대 2개까지만 존재하는 트리이다.글로만 쓰면 이해가 안가므로, 그림 투척!위의 트리는 맨 밑 노드(리프노드 - Leaf Node)를 제외한 모든 각 노드가 자식노드를 2개씩 갖고있는데, 이런 트리를 완전트리 라고 한다. 완전트리가 아니더라도 자식노드가 2개 이하이면 이진트리이다. 아래 트리처럼!!요런 모양을 편향트리? 왼쪽 경사 트리? 변질 트리? 등으로 부른다.어쨌든, 이진트리에 대한 정의는 이정도이다. 그렇다면, 이진탐색트리(Binary Search Tree)는 무엇인가? 저 위의 그림들이 바로 이진탐색트리이다. 위에 있는 트리를 보면 숫자가 들어있다.루트노드의 왼쪽 아래에는 루트보다 작은 숫자가, 루트노드의 오른쪽 아래에는 루트보다 큰 숫자..

[JAVA] 재귀 기초 - 피보나치 (Fibonacci)

재귀에 대한 이해도가 전혀 없다면 http://marobiana.tistory.com/79 fibo(2-2) + fibo(2-1) else문의 첫번째 메소드인 fibo(2-2)가 호출 된다. 3) fibo(2-2)n은 0이므로 if문에서 0리턴하고 종료 fibo(2-2) + fibo(2-1) => 0 + fibo(2-1) 4) 스택에 있던 fibo(2)로 다시 돌아가서, fibo(2-1)이 실행된다.n이 1이므로 1을 리턴하고 종료된다. 5) 스택에 있던 fibo(2)에서는 fibo(2-2) + fibo(2-1) => 0 + 1 else문에서 각각 리턴된 0과 1을 더한 1을 리턴하고 종료된다. 현재, 아래와 같이 출력된 상황임. 11 6) main 함수에서는 i는 3이 되어, fibo(3)이 호출된다...

[JAVA] 재귀 기초 - 팩토리얼 (Factorial)

오랜만에 재귀 문제를 풀다보니 헷갈려져서 정리한번 해보겠음.재귀 중에 가장 쉬운 팩토리얼부터.. 1. 재귀함수란? 함수 내에서 자기 자신을(함수)를 계속적으로 콜 하면서 풀어가는 방식이다.스택(Stack)이라고 생각할 수 있다.함수가 콜 되면서 최근에 자신을 부른 원래 함수가 스택에 차곡차곡 쌓이게 됨.중요한건 처음 불려진 함수에서(스택 맨 밑에있는 메소드) return 되는 값이 최종 return 값이 된다 2. 팩토리얼이란? 3! = 3*2*1 = 64! = 4*3*2*1 = 245! = 5*4*3*2*1 = 120 3. 재귀 예제 문제 : 특정 숫자의 팩토리얼 구하기 간단하게 소스 투척 public class Factorial {public static void main(String[] args) ..

listener를 사용한 servlet 객체 공유하는 법

초기화 파라미터로 쓸 수 있는것은 String 밖에 없기 때문에, 객체를 초기화 파라미터로 사용하기 위해서는 Listener를 써야한다. 여러 서블릿간에 특정 객체를 공유할 때 다음과 같이한다. (서블릿마다 객체를 각각 생성하지 않는) 1. web.xml 에서 Servlet과 Listener 설정 First FirstServlet Second SecondServlet ContextListener 2. 리스너 (ContextListener.java) 웹 어플리케이션이 생성될 때 발생하는 이벤트를 처리하는 리스너 : ServletContextListener public class ContextListener implements ServletContextListener { public void contextI..

개발/JAVA 2013.06.11

Java HttpClient 호출시 파라미터 있을 경우

HttpClient는 브라우저가 어떤 URL에 요청하면 서버를 통해 웹페이지를 뿌려주듯이 내가 브라우저의 역할을 하고, URL을 보내면 서버가 나를 브라우저라 생각하고 결과를 날려준다. 예제는 인터넷에 많이 있으니 파라미터가 있을 경우의 요점만 정리하겠음 일단 GET인지 POST인지 method 종류를 알려주어야한다. 1. GET 일 경우 String url = "http://marobiana.tistory.com"; HttpClient client = new HttpClient(); GetMethod method = new GetMethod(url); client.executeMethod(method); 만약 id=marobiana, password=1234 라는 파라미터를 더 붙여야할 경우, meth..

개발/JAVA 2013.04.09

Java와 jqgrid 기초!!

전 블로그에 써놓은 글은... 다시 읽어보니까 뭔소린지 모르겠어서 다시 차근차근 정리한다.ㅋㅋㅋ 처음 하는 무언가를 배울 때는 큰 흐름을 먼저 알아야 한다! 알아보기 쉽게 소스와 함께 흐름을 정리 하겠음. .. 1. JQGrid 라이브러리 다운받기 http://www.trirand.com/blog/?page_id=6 2. 그리드를 뿌릴 페이지(jsp)와 컨트롤러(액션)를 만든다. Controller @RequestMapping("/main") public String view() { return "view"; // view.jsp } 3. 그리드를 뿌릴 페이지 view.jsp 버전은 업데이트 됐을지도 모른다. 3.1 라이브러리 include하기 이름을 끼워맞춰서 순서대로. 꼭 아래와 같은 순서대로 넣을 ..

개발/Javascript 2012.09.12

Java에서 CSV 파일 생성,다운로드. 한글 인코딩~

DB에서 받아온 데이터를 웹페이지에서 CSV 파일로 다운받게 하기.아래는 한글 깨지는것도 처리 해놓은 방법임! 이렇게하면 CSV파일을 어딘가에 저장하지 않고도 바로 다운로드 할 수 있음. 옛~날에 PHP로 해봤으면서 왜 자바에서는 흐름도 못잡고 몇일을 삽질 했을까ㅠㅠㅠㅠㅠ 1. HTML 페이지에서 다운로드 링크를 건다. 엑셀파일다운로드 2. Controller (Action) 1번에서 링크 클릭하면 타고 들어오는 액션.. @RequestMapping("/total") public ResponseEntity getTotalList() { List totalList = totalService.getTotal(); // DB에서 가져온 데이터리스트 HttpHeaders header = new HttpHeade..

개발/Spring 2012.09.12

날짜 구하기

날짜는 계산해야될 때 마다 매번 또찾아보고 또찾아보고 귀차늠자주 갖다 쓰는것만 정리함 - 요다타임 조다타임 joda 타임 으로 오늘날짜 구하기 String date = new DateTime().toString(DateTimeFormat.forPattern("yyyyMMddHHmmss"); - Calendar로 오늘 날짜 구하기 요다타임은 내가 잘 못찾는건지.. 잘 모르겠고, 대부분 이게 많이 나와서 이게 익숙하다. SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");Calendar c = Calendar.getInstance(); // 오늘날짜String date = sdf.format(calendar.getTime()); // sdf가 Str..

개발/JAVA 2012.08.09