(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 |