728x90
반응형

● 환경 변수를 설정하는 이유

PATH는 파일이 있는 그 폴더가 아닌 다른 폴더에서 해당 폴더에 접근하기 위해 지정해 준다.

자바에서 PATH를 잡는 이유는 javac의 컴파일 때문이다.

JVM에 의해선 자바는 다른 폴더에서도 실행 되지만, 컴파일 할 때 필요한 javac는 PATH를 잡지 않으면 실행이 안된다. 즉, javac를 어디서든 사용하고 bin 디렉토리 내 모든 자바 전용 툴을 사용하기 위해 환경변수를 설정 해야만 한다.

시스템 변수 : 하나의 OS에 여러명의 사용자 계정이 있더라도 공통으로 적용

사용자 변수 : 하나의 OS에 여러명의 사용자 계정이 있을 경우 특정 사용자만 적용됨

 

● JAVA_HOME

자바 프로그램에서 JAVA_HOM을 인식하기 때문에 설정한다

자바로만 프로그래밍한다면 PATH, CLASSPATH만 잡아줘도 잘 작동하지만, 나중에 자바 버전을 변경할 때 JAVA_HOME만 변경하면 PATH와 CLASSPATH는 변경하지 않아도 되기 때무ㅜㄴ에 JAVA_HOME을 잡아 두는것이 좋다.

ex) C:\jdk\java11;

 

● PATH

OS환경변수의 하나로 실행파일 경로를 지정

javac에 대한 PATH를 설정해보자

PATH를 설정하면 해당 폴더 외 다른 폴더에서도 경로를 찾아 javac를 실행 할 수 있게 해준다.

ex) %JAVA_HOME%\bin;

 

● CLASSPATH

자바에서 사용하는 PATH. 자바는 CLASS를 사용

PATH와 비슷한 개념이지만 자바의 CLASS 파일들을 위한 환경변수이다. 편리하게  packge를 import할 수 있다.

ex) %JAVA_HOME%\lib;

728x90
반응형
728x90
반응형

class lotto1 {
    private final static int[] lottoResult = new int[6];
    /**
     * 이번주 로또 1등번호
     */
    public static int[] lottoResult() {
        for (int i = 0; i < lottoResult.length; i++) {
            lottoResult[i] = (int) ((Math.random() * 45) + 1);
            // 동일 번호 확인
            for (int j = 0; j < i; j++) {
                if (lottoResult[i] == lottoResult[j]) {
                    i--;
                }
            }
        }
        // 번호 정렬
        numSort(lottoResult, 0);
        for (int i = 0; i < lottoResult.length; i++) {
            System.out.println("이번주 1등 번호 = " + lottoResult[i]);
        }
        return lottoResult;
    }


    private static int[] purchaseNum = new int[6];
    /**
     * 구매한 로또 번호
     */
    public static int[] purchaseLotto() {
        for (int i = 0; i < purchaseNum.length; i++) {
            purchaseNum[i] = (int) ((Math.random() * 45) + 1);
            for (int j = 0; j < i; j++) {
                if (purchaseNum[i] == purchaseNum[j]) {
                    i--;
                }
            }
        }

// 일반 오름차순 정렬

Arrays.sort(purchaseNum);


        // 직접 구현한 버블 소트 번호 정렬 - 성능상 젤 구림
        numSort(purchaseNum, 0);
        for (int i = 0; i < purchaseNum.length; i++) {
            System.out.println("구매한 로또 번호 = " + purchaseNum[i]);
        }
        return purchaseNum;
    }


    /**
     * 이번 로또 몇개 사면 됬을까?
     */
    public static void resultCheck() {
        int[] oriNum = lottoResult;
        Integer cnt = 0;
        while (true) {
            Integer cn = cnt++;
            int[] purNum = purchaseLotto();
            boolean equals = Arrays.equals(oriNum, purNum);
            System.out.println(cn);
            if (equals == true) {
                break;
            }
        }
    }


    /**
     * 아래 두 메소드는 1차원 정렬 메소드

    * 버블 소트 정렬  성능상 젤 구림

     */
    public static void numSort(int[] arr, int start) {
        if (start < arr.length - 1) {
            int min_index = start;
            for (int i = start; i < arr.length; i++) {
                if (arr[i] < arr[min_index]) {
                    min_index = i;
                }
            }
            swap(arr, start, min_index);
            numSort(arr, start + 1);
        }
    }


    public static void swap(int[] arr, int index1, int index2) {
        int tmp = arr[index1];
        arr[index1] = arr[index2];
        arr[index2] = tmp;
    }
}

728x90
반응형

+ Recent posts