ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JAVA WEP - 1
    Study 2023. 2. 10. 09:23

    JAVA

     

    1. 환경 설정

    JDK(Java Development Kit) 다운로드 및 설치
     오라클 http://oracle.com 접속

     

      무작정 최신 버전을 선택하기보다 LTS(Long Term support) 버전을 우선으로 선택하는 것이 좋다.

    2. PATH 설정(환경 변수 설정)

    변수 이름 : JAVA_HOME
    변수 값 : C:\Program Files\Java\jdk-17
      - java의 bin 폴더가 있는 디렉토리 경로

     

    Path 시스템 변수에 "%JAVA_HOME%\bin" 추가하고 최상단으로 위치 변경

     

    설정 확인 방법
     - 명령프롬프트에서 "javac -version"입력하여 javac의 버전이 잘 나오는지 확인
     - 명령프롬프트에서 "java -version"입력하여 java의 버전이 잘 나오는지 확인 

     

    ※ 앞에서 환경변수로 JAVA 경로를 설정했기 때문에 아무 위치에서든지 java 프로그램을 실행할 수 있다.

     

    확장자가 java인 파일을 javac 프로그램에서 컴퓨터가 이해할 수 있게 컴파일(compile)하여 .class 파일을 생성하고 java 프로그램으로 이 파일을 실행할 수 있다.

     

    javac.exe
     - java 파일을 컴파일해주는 프로그램​

     

    java.exe
     - class 파일을 실행하는 프로그램

    3. 이클립스 다운로드

    이클립스 사이트 http://eclipse.org 접속
      'Eclipse IDE for Enterprise Java and Web Developers'로 설치해야 java를 포함한 웹 어플리케이션 개발이 용이하다.
    ​워크스페이스 경로 : C:\oraclejava\workspace
    java 9 부터 module을 지원하여 java 프로젝트 생성 시 module-info 파일이 자동으로 생성되며, module을 사용하지 않는다면 삭제해도 무방하다.
    module은 pakage의 모음
    네이버 나눔고딕코딩 글꼴 설치
      - https://github.com/naver/nanumfont
     

    GitHub - naver/nanumfont

    Contribute to naver/nanumfont development by creating an account on GitHub.

    github.com

       - 개발자가 코딩할 때 가독성을 고려하여 자간과 영문/숫자 명확하게 구분한 무료 배포 폰트.
      - 알파벳 대문자 아이(I)와 알파벳 소문자 엘(l)과 숫자 1, 숫자 0과 알파벳 대문자 오(O)와 알파벳 소문자 오(o) 등 혼동되기 쉬운 문자들을 명확하게 구별될 수 있게 하여 원치 않는 코딩 오류를 최소화할 수 있습니다.
     
    이클립스 글꼴 변경
     - Window > Preferences > General > Appearance > Colors and Fonts > Basic > Text Font (더블 클릭 또는 'Edit' 클릭)​​
     
    ※ 이클립스 단축키
    Ctrl + M (소스 코드에 커서를 둔 상태에서)​ : 소스 편집기 최대화 
    F2 (변경하고자 하는 요소를 클릭한 상태에서) : 구성 요소(패키지 및 클래스 등) 이름 변경
    Ctrl + Shift + L (소스 코드에 커서를 둔 상태에서)​ : 단축키 목록
    Ctrl + D : 코드 한 줄 삭제
    Ctrl + Alt + ↑/↓ : 코드 한 줄 복사. 위 아래 방향키로 붙여넣기할 행 조정 가능
    Shift + F2 (메소드에 커서를 둔 상태에서) : Java API 문서 열람
    Ctrl + Shift + P : 짝이 되는 괄호로 이동
    Ctrl + Shift + F : 코드 정렬(블록 지정 시 지정한 부분만 정렬 가능)
    Alt + ↑/↓ : 커서 위치의 코드 한 줄을 이동
    Ctrl + Shift + C : 블록 지정한 코드를 한 줄 주석 처리 - 코드 유지
    Ctrl + Shift + / : 블록 지정한 코드를 멀티 라인 주석으로 처리 - 작성한 코드 스타일이 변경될 수 있어서 권장하지 않음
    Ctrl + Shift + \ : 블록 지정한 멀티 라인 주석을 해제
     이클립스에서 .java 파일을 저장하면 자동으로 컴파일하여 bin 폴더에 동일한 이름의 .class 파일을 생성한다.
     이클립스 초기화하는 방법
      - 이클립스를 닫은 상태에서 workspace 내부의 .metadata 폴더를 삭제하고 이클립스 실행.

    4. 자바의 특징

     1) 자바의 모토
      : 한 번 프로그램을 작성하면 어디에서든지 실행 가능
     
       플랫폼 독립적인 언어
        - 단, 해당 운영체제에 맞는 JDK가 설치가 되어 있어야 한다. (JRE에 JDK가 포함되어 있어서 JRE만 설치해도 실행 가능)
     
     2) 자바가상머신(JVM; Java Virtual Machine)
      : 컴파일된 바이트코드를 실행시킬 수 이는 소프트웨어
       소스코드 --------------------------> 바이트코드
       (Hello.java)    컴파일러(javac.exe)    (Hello.class)
     운영체제에 맞는 'Oracle Database 21c Express Edition' 다운로드
      oracle.com > resources > Downloads > Developer Downloads > Database Express Edition > Oracle Database 21c Express Edition
    플러그인할 수 있는 데이터베이스: localhost:1521/XEPDB1
    C:\Users\A>sqlplus/nolog
    SQL*Plus: Release 21.0.0.0.0 - Production on 수 2월 8 17:41:39 2023
    Version 21.3.0.0.0
    Copyright (c) 1982, 2021, Oracle.  All rights reserved.
    SQL> conn sys/oraclejava@localhost/xepdb1 as sysdba
    연결되었습니다.
    SQL>​

    5. 자료형(Data Type)

     : 데이터를 저장(표현)하는 기준
     1) 기본 자료형(Primitive Data Type)
      논리형 : boolean = true, false
       - 1 byte 단위로 저장 (자바의 메모리는 최소 단위가 byte이기 때문에 true, false(1 bit)만 표현하더라도 최소 단위인 byte(8 bite)로 메모리를 할당한다.)
      
      문자형 : char(2바이트 유니코드 기반 : 0~65535)
       - 유니코드를 기반으로 하여 영어 이외의 언어도 표현이 가능하다.
      정수형 : byte(1 바이트 : -128 ~ 127)
                short(2 바이트 : -32768 ~ 32767)
                int(4 바이트 : -2147483648 ~ 2147483647; 약 20억) 
                long(8 바이트 : 대략 ±900경)
      실수형 : float(4 바이트)
                 - dobule에 비해 소숫점 이하의 값의 정확도가 떨어진다.
                double(8 바이트)
     리터럴(Literal)
      - 정수형은 byte, short의 표현 범위를 넘어가면 int로 인식한다. long 타입으로 값을 부여하려면 값 뒤에 "L"을 붙여야 한다.
      - 실수형은 기본적으로 double로 인식한다. float 타입으로 값을 부여하려면 값 뒤에 "f"를 붙여야 한다.
     escape sequence : 특수문자로 키보드에서 제어기능을 담당하는 키들을 표현해주는 것
     지역변수(local variable)는 되도록 초기화해주는 것이 좋다.
     2) 참조 자료형(Reference Data Type) - 클래스, 인터페이스, 배열
      - 프로그래머가 정의한 데이터 타입(대문자로 시작)
    ***************************************
     변수 이름 작성 시 주의 사항
       1. 숫자로 시작 불가
       2. 특수 문자는 $와 _만 사용 가능
       3. 키워드 사용 불가
    ***************************************​

    6. 연산자(Operator)

     1) 산술 연산자
      "+", "-", "*", "/", "%"
     기본형 타입의 변수는 Stack 메모리에 저장된다. (call by value)
     객체는 Heap 메모리에 저장되고, 참조 변수는 Stack 메모리에 객체의 주소가 저장된다.
     정수와 문자열이 "+"로 결합되면 정수가 문자열로 변환된다.
     정수 나누기 정수는 결과도 정수이다.
     
     2) 관계 연산자
      - 관계 연산자의 결과는 boolean 타입이다. (true/false)
      - 비교는 항상 왼편을 기준으로 비교한다.
      - 부등호는 왼쪽에 작성한다. (<=, >=)
     3) 논리 연산자
       : 연산의 대상 및 결과가 참과 거짓 둘 개의 값 중 하나를 취하는 연산
        - AND, OR, NOT
        - 두 개의 조건을 하나로 만들 때 사용
    AND (둘 다 true일 때만 결과가 true)
    a b R
    T T T
    T F F
    F T F
    F F F
     
    OR (둘 중에 하나만 true여도 결과는 true)
    a b R
    T T T
    T F T
    F T T
    F F F
     4) 증감 연산자
      - 값을 일정하게 증가하거나 감소시키는 연산자
     5) 복합대입 연산자
      - 연산자를 2개 이상 사용
     6) 삼항(조건) 연산자
      - (true/false로 판별 가능한 조건식) ? (true일 때의 결과 값) : (false일 때의 결과값)
      - 첫 번째 항의 조건을 판별하여 true이면 두 번째 항을 결과로 취하고, false이면 세 번째 항을 결과로 취한다.
      - 엑셀의 IF() 함수의 사용법과 비슷하다.
     7) 형변환
      자바는 데이터 타입에 민감한 언어이다.
      데이터가 소실될 위험이 있는 경우에는 컴파일러가 자동 형변환하지 않음.
      데이터가 소실되더라도 형변환하려면 형변환 연산자를 사용하여 강제 형변환을 하면 된다.
       예) int i = (int) 3.141592;
     자바는 컴파일되어야 실행이 가능하고 이러한 프로그래밍 언어를 컴파일러 언어이다.
     난수 생성 방법
    0.0 <= Math.random() < 1.0
    0.99999999 * 6 ==> 5.99999999
    .
    .
    .
    .
    0.00000000 * 6 ==> 0.00000000
    1. 나올 수 있는 가지 수를 곱한 후, 강제 형변환으로 소수점 이하를 잘라낸다.
    2. 시작하는 숫자를 더한다.

    7. 제어문

    1) 조건문
        if
         if ~ else
         if ~ else if ~ else
         - 실행해야 할 코드가 한 줄이면 {}를 생략해도 무방하다.(하지만 가독성을 위해 써주는 것이 좋다.)
        switch~case
         - 동일한 코드를 수행하는 여러 개의 case는 마지막 case에만 수행 코드를 작성해도 된다.
          ex) case 9:
              case 10:
                  System.out.println("A");
                  break; 
    2) 반복문
        for
         for(초기식; 조건식; 증감식){
             조건식이 참일 때 수행하는 문장
         }
          1) 초기식 -> 조건식 -> true이면 코드 실행 -> 증감식 -> 2) 조건식 -> true이면 코드 실행 -> 증감식 -> 3) 조건식 -> true이면 코드 실행 -> 증감식​ -> ...
         - 증감식을 작성하지 않거나 조건식이 false인 경우가 발생하지 않으면 무한 루프에 빠지므로 주의!!!
     
        while
         (초기식)
         while(조건식) {
             조건식이 참일 때 수행하는 문장
             (증감식)
         }
          - 무한루프 발생하지 않도록 특히 주의!!
        do~while
    3) 기타
       continue
        : 반복문 내에 continue 이하의 문장들은 생략하고 증감식으로 GO~!
       break
        : 반복문 내에서 break문은 단독으로 사용하지 않고, if문과 함께 사용
       return

    8. 배열(Array)

     : 동일한 자료형의 연속적인 집합체(객체)
     Index가 0부터 시작
     자바 객체이므로 heap 메모리에 실제 값이 저장됨(stack 메모리에는 heap 메모리의 주소 값이 할당됨)
    2차원 배열
      int[][]
    이름  국어 영어 수학 철학
    손흥민 100 90 80 70
    이강인 90 80 70 60
    김민재 80 70 60 50
      2차원 배열의 길이는 내부의 1차원 배열의 개수이다. (위 2차원 배열의 길이는 3)
    ​​

    'Study' 카테고리의 다른 글

    JAVA WEB - 6  (0) 2023.02.15
    JAVA WEB - 5  (0) 2023.02.14
    JAVA WEB - 4  (0) 2023.02.13
    JAVA WEP - 3  (0) 2023.02.10
    JAVA WEP - 2  (0) 2023.02.10
Designed by Tistory.