(1) JVM

    1) JDK = jdk + jre
    2) 환경변수 : 고급시스템 설정 → 환경변수
   <1> JAVA_HOME

       새로만들기 → 변수이름 : JAVA_HOME

                                       변수 값 : java 경로 ex) C:\Program Files\Java\jdk1.8.0_281   
   <2> Path

       편집 새로만들기 %JAVA_HOME%\bin
   <3> classpath

       새로만들기   변수이름 : classpath 

                                        변수 값 : .


    3) API

   다운 후  does  api  index.html

   
(2) 실행 메커니즘

    1) 작성(java) -> 컴파일(javac.exe)  -> 실행(java.exe)

    2) .java(for Man) -> .class(for Com)

 

(3) 클래스의 구조

    1) 패키지 선언     

       ex) pakcage 디렉토리명 ;
    2) 임포트 구문     

       ex) import java.io.*;
    3) 클래스 선언 {   

       ex) class 클래스명{
   (4) 멤버변수   

       ex) int i; (멤버변수는 초기화가 됨.)
   (5) 생성자    

       ex) 클래스명( ) { } (defalut 생성자는 파라미터 생성자가 없을때 자동으로 생성된다.)
   (6) 메소드      

       ex) void m( ) {구문..}
       }

 

(4) 객체 지향 용어

    1) 클래스 : 객체를 정의하는 붕어빵 틀, 설계도
    2) 객체    : 인스턴스
    3) 생성자(Constructor) : 인스턴스 변수(필드 값 등)를 초기화 시키는 역할
    4) 메소드(Method) : 어떠한 특정 작업을 수행하기 위한 명령문의 집합
    5) 속성 : 데이터타입의 정의(?)
   

 (5) 변수(Variable)

    1) 유효범위
      <1> 멤버(전역)
    1> 클래스
    2> 객체
      <2> 지역
    1> 선언초기화
    2> 파라미터
    2) static
       <1> 클래스
       <2> 객체
    3) final
       <1> 변수
       <2> 상수
    4) 메모리
       <1> 기본형 8개
       <2> 참조형 (레퍼런스)


(6) 제어

     '실행의 흐름

      JVM -> main( ) -> ...main( ) -> JVM

 


(7) 제어문

     1) 조건문
        - if
        - switch

     2) 반복문
        - for(초기값;조건식;증감식)
        - while ( )
        - do{ }while( )


(8) 제어 : 예약어

     1) break : 해당 바디를 나간다  (반복문, switch)
     2) continue : 건너뛰어서 증감식으로 간다 (반복문)
     3) return : 자기를 호출했던 곳으로 되돌린다


(9) 배열(Array)

     데이터의 '저장소' 객체

     1) 선언
        ex) int is[ ];
     2) 생성
        ex) new int[갯수];
     3) 초기화
        ex) 방에 저장되는 첫 번째 값


(10) 컬렉션(collection) 계열 ( ==  자료구조 == 가변배열 )

      참조형 데이터를 저장하는 '저장소' 객체 

     1) 종류
       <1> Collection
              |      |
            List    Set
       <2> Map
     2) 특징
       <1> List
          - 순서 보존
          - 중복 허용
       <2> Set
          - 순서 보존 X
          - 중복 허용 X
       <3> Map
          - key와 value 쌍
          - key중복 X, value 중복 O
          - 순서 보존 X


(11) OOP(OOP, Object-Oriented Programming) 특성

     1) 상속성 - 강제형 변환(제자리로 돌아갈 때- 자식이 쌔니까)
     2) 다형성 - 오버라이딩(메소드 재정의, 생성자 X)으로 한 객체가 여러 가지 일을 할 수 있다. 
     3) 은닉성 - 멤버 변수값(속성 값, 데이터)을 감추는 것
     4) 캡슐화 - 내용을 몰라도 형태만 알면 가져다 쓸 수 있는 것


(12) (메소드) 오버라이딩

     부모 메소드를 자식에서 바꾸는 것

     1) 부모의 접근제한자 보다 자식의 접근 제한자가 같거나 넓어야 한다.
     2) 메소드 만
     3) 반환 타입도 같아야 한다.
     4) 파라미터도 종류 순서 모두 같아야 한다.


(13) 제한자

     1) 접근
        public > protected > default > private
     2) 소유
        static
     3) 수정
        final
     4) 추상
        abstract

        ex)  interface Runnable
              {
              public  abstract void run();
           }


(14) 예외 (Exception)

      정상적으로 동작하지 못하게 하는 '돌발상황'

      1) 목적
         '돌발상황' -> '정상적으로 작동'
      2) 계층도
         <1> CompileException( CheckedException)
         <2> RuntimeException
      3) 방법
         <1> 적극
              try {
              } catch(Exception e) { }
         <2> 소극
              throws Exception
      4) try 절에 2개 이상의 예외 발생
         <1> 상속 O
              자식 예외부터 catch절
         <2> 상속 X
              catch절 순서 X
      5) 2개 이상의 예외를 떠넘길 때
         throws AException, BException,...
      6) finally절
         <1> 항상 수행
         <2> try절 나오면...
              catch 절이나 finally 절이나...
              둘 다 나오거나 해야 함
         <3> return 만나도 finally는 수행하고 return 함
         <4> 얘는 못 이김

                   System.exit(정수);

 

 

(15) 쓰레드(Thread)

프로세스를 구성하는 '제어의 흐름'

      1) Process / Thread 
         - Process : 실행의 단위 (실행되는 있는 프로그램)
         - Thread  : Process를 구성하는 작업 단위
      2) 생성
         - java.lang.Thread 상속법

         - java.lang.Runnable 상속법

      3) 시작
         th.start();

      4) 비유 : '피고용인'
      5) LifeCycle
         - 5가지
         - '메소드', '스케쥴러', '시간'
      6) Priority
         - 우선순위 th.setPriority(10);
         - 1 ~ 10
         - MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
      7) 동기화
         - 멀티쓰레드에서 무결성을 보장하기 위해서
         - 비유: '화장실의 문고리'
         - schronized
         - 방법
           schronized void m( ) { }
   
           void m( ){
            로직 1
           schronized (this) {
             로직 2
            }
           }

'IT > Java' 카테고리의 다른 글

[자바] String Class  (0) 2021.05.11
[자바] Java 예약어(keyword, reserved word)  (0) 2021.04.24
[자바] MultiThread  (0) 2021.04.22
[자바] 은닉화/캡슐화  (0) 2021.04.21
[자바] 다형성  (0) 2021.04.21

+ Recent posts