Java Queue

개발자/Java 2015. 7. 1. 14:20

package queue;


public class Queue {


private int front;

private int rear;

private String[] dataAr;

private final int arrayMax = 10;

public Queue() {

// TODO Auto-generated constructor stub

dataAr = new String[arrayMax];

put("push1");

peek();

get();

put("push2");

peek();

get();

put("push3");

peek();

get();

put("push4");

peek();

get();

get();

get();

put("push5");

peek();

}

private boolean empty() {

// TODO Auto-generated method stub

if(front == rear){

System.out.println("비었을 경우 = Underflow");

return true;

}

return false;

}

//front 데이터 출력

private void peek() {

// TODO Auto-generated method stub

System.out.println("peek() : " +  dataAr[front] + "front : " + front + " rear : " + rear);

}


private void put(String temp) {

// TODO Auto-generated method stub

dataAr[rear] = temp;

rear++;

}

private void get() {

// TODO Auto-generated method stub

if(!empty()){

String get = dataAr[front];

System.out.println("삭제  : " + get);

front++;

}

}


}



블로그 이미지

김진리

,

Java Stack

개발자/Java 2015. 7. 1. 13:30

package stack;


import java.util.Scanner;

import java.util.Vector;


public class Stack {

private int top =-1;

private Vector<String> vc = new Vector<String>();

public Stack() {

// TODO Auto-generated constructor stub

while(true){

String str = "";

System.out.println("1 : push , 2 : pop");

Scanner scan = new Scanner(System.in);

int k = scan.nextInt();

switch (k) {

case 1:

System.out.println(" 데이터 입력 ");

str = scan.next();

push(str);

peek();

break;

case 2:

peek();

pop();

break;

default:

break;

}

}

}

private void push(String data) {

// TODO Auto-generated method stub

vc.add(data);

top++;

}

private void pop() {

// TODO Auto-generated method stub

if(!empty()){

vc.remove(top);

top--;

}

}

private void peek() {

// TODO Auto-generated method stub

System.out.println("top : " + top);

if(!empty()){

String peek = vc.get(top);

System.out.println("peek : " + peek);

}else{

System.out.println("EmptyStackException");

}

}

private boolean empty() {

// TODO Auto-generated method stub

if (top < 0) {

return true;

}

return false;

}

}


블로그 이미지

김진리

,

net.sf.jasperreports.engine.util.JRFontNotFoundException: Font '바탕' is not available to the JVM. See the Javadoc for more details.


jasperreports 를 사용하면서 한글os -> 영문os  ,  영문os -> 한글os 간  사용을 하다보면 폰트가 존재하지 않는다고 에러가 나옵니다. 이럴 경우!!?


jasperreports-x.x.jar 파일의 옵션을 바꾸시면 되는데 가장 익숙한 이클립스를 사용하여 옵션을 수정해 보겠습니다.




먼저 이클립으로 java 빈 프로젝트를 생성해주시고


프로젝트 오른쪽 버튼에서 임포트기능!!


Archive File 을 선택하셔서 사용하시는 jasperreport,jar 파일을 추출합니다.


위와 같이 불러 오시구요 Finish를 합니다.



속성값에 : missing.font = true 로 수정해 주시면 됩니다


그리고 다시 jar파일로 묶는 과정입니다. 프로젝트를 오른쪽 눌르셔서 jar file로 하시구 이름을 jarperrerport.jar 과 같은 전에 사용하시던 파일 이름으로 덮어쓰시면됩니다.


그리고 다시 jar를 배포하셔서 테스트 하시면 끝!


블로그 이미지

김진리

,

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;



public class Test {


public static void main(String[] args) {

// TODO Auto-generated method stub

Date date = new Date();

Calendar cal = Calendar.getInstance();

cal.setTime(date);

long time = (cal.getTimeInMillis()-(long)(515)*(60*60*24*1000));

        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

System.out.println(format.format(time));

}


}


515부분에 원하시는 일수를 넣으시면 현재날짜로 부터 이전의 날짜를 구해줍니다.

블로그 이미지

김진리

,

wrong name 의 에러일 경우에



위에 패키지 경로 가 존재 하는데 현재 파일이름의 파일이


패키지 경로에 없어서 에러가 발생한다.


패키지 경로가 com.test.kk 이면

패키지 상위 폴더에서 java com.test.kk.파일이름class 로 실행하면 성공!


블로그 이미지

김진리

,

UI 구성과 시나리오를 짜야겠어요..


블로그 이미지

김진리

,

Swing 으로 비행기 게임을 만들어 보려고 합니다.




블로그 이미지

김진리

,

보통 <a href = "#" onclick"함수()"> 를 많이 쓰지만

#는 현재페이지를 가리키기 때문에  현재 페이지의 스크롤 하단을 보다가 페이지가 전환되면서 상단으로 바뀌는 상황이 나타 난다.

그래서 

<a href="javascript:;"> or <a href="javacript:void(0);"> 를 사용하여 아무 기능을 사용하지 않다고 정의해야한다.

블로그 이미지

김진리

,

UrlConnection 은 메모리에 모든 output data를 저장하고 , writting 작업이 끝나면 그때서야 네트워크로 보내기 때문에

UrlConnection.setChuckedStreamingMode() 를 사용해야 한다.

소켓관련등의 작업과 파일 입출력에서는 바이트 배열을 쓰게 되면 운영체제의 다이렉트 버퍼로 일단 한번 복사가 된다.

그리고 거기서 시스템콜에 의해서 실제 해당 버퍼로 전달됨.

 

아래 예제는 내부에 캐시하지말고 들어오는 대로 바로 보내는 설정 방식이다.

/* 
 * @Program that is used to enable streaming of a HTTP request body without 
    internal buffering, when the content length is not known in advance.
 * SetChunkedStreamingMode.java 
 * Author:-RoseIndia Team
 * Date:-25-Jun-2008
 */

import java.net.*;

public class SetChunkedStreamingMode {
 public static void main(String[] args) throws Exception {
        URL url = new URL("http://192.168.10.211:8080");
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        //enable streaming of a HTTP request body without internal buffering

        connection.setChunkedStreamingMode(1);

        System.out.println("HTTP request body without internal buffering is set");
 }
}

블로그 이미지

김진리

,

 JSTL 문법의 for문 사용법


<c:forEach items="${리스트가 받아올 배열이름}" var=$"{for문안에서 사용할 변수}" varStatus="status">



status 는 for문의 돌아가는 상태를 알 수 있게 체크하여 준다


#{status.current}   현재의 for문에 해당하는 번호

#{status.index} 0부터의 순서

#{status.count} 1부터의 순서

#{status.first}  현재 루프가 처음인지 확인

#{status.last}  현재 루프가 마지막인지 확인

#{status.begin} for문의 시작 값

#{status.end}   for문의 끝 값

#{status.step}  for문의 증가값


블로그 이미지

김진리

,