예제코드에서 다운로드는 첫 페이지참조
각각의 실습코드는 SUB에 해당하는 폴더를 참조하세요.

기초문법a_BasicType

기본규칙A-B

출력문C

변수D[ 링크 : 2진수 이해하기 ]

변수별 Byte
종류 내용
정수형 byte 1 바이트 short 2 바이트
int 4 바이트 long 8 바이트
소수 float 4 바이트 double 8 바이트
문자 char 2 바이트

강제 형변환E

(변환될 타입)변수

알려진 문제

10진수는 2진수로 완벽하게 표현되지 않기 때문에 발생하는 문제 재현하기F1
2진수의 비트 표현F2

연산자b_Operation

연산자 종류별 분류
분류 연산자 실습
괄호 () A
사칙연산 +, -, *, /, % A
대입연산 =, +=, -=, *=, /=, %=, <<=,>>=, &=, |=, ^= B
증감연산 ++, -- C
논리연산 !, &&, || D
비트연산 ~, &, |, ^, <<,>>, >>> E
비교연산
(부등호)
<,>, <=,>=, ==, != D
논리표
p q 표현 Not And Or Xor If Iff
수학 ~p p ∧ q p ∨ q p ⊕ q p → q p ↔ q
공학 !p, ~p* p & q p | q p ^ q p >= q** p == q
F F T F F F T T
F T F T T T F
T F F F T T F F
T T T T F T T
비고 p가 아님 모두T면 T 하나라도T면 T T가 홀수면 T p⊂q가 성립하면 T p=q가 성립하면 T

*   ~는 비트연산에서 not [true | flase] ( =1의 보수, 0 → 1, 1 → 0)을 의미합니다.
**   의미상 포함관계를 뜻합니다. 객체지향에서 "q instanceof p"로 표현됩니다.

연산순서 전혀 몰라도 상관이 없습니다. 잘 모르거나, 잘 알아도, 괄호를 사용하십시오. 언어별, 버전별, 제조사별 차이가 발생할 수 있습니다. 하나하나 완벽하게 대응하겠다는 전략보다, 모두에게 확실한 방법을 선택하는 것이 현명해 보입니다.

연산자 우선순위
우선순위 연산자 비고
1 [],. 주소
2 ++, -- 후위연산
3 !, ~ NOT연산
+, - 부호
++, -- 전위연산
(TypeCast) 형변환
4 *, /, % 산술연산
5 +, -
6 <<,>>,>>> >>> 부호 미포함
7 <, <=,>, >= 비교
8 ==, !=
9 , 10, 11 &, ^, | 비트
12, 13 &&, || 논리
14 ? 삼항
15 = (+=, -=, *=….)

제어문c_Control

입출력 예제A

제어(Control)란 상황(예, 입력)에 따라 다른 동작(출력 또는 결과)을 하는 것을 의미합니다. 제어문에 앞서 입력된 예제를 학습합니다.

  1. system.in.read() // 문자 하나를 읽습니다.
  2. scan = new Scanner(System.in);
    str = scan.next(); // 문자열을 읽습니다.
  3. String input = JOptionPane.showInputDialog(msg); // 다이얼로그를 통해서 읽습니다.
      
    

제어문

제어문B, C

  1. if(조건) {...} // 조건이 참일 때 ...를 수행합니다.
  2. if(조건) {...} else {,,,} // 그리고, 거짓일 때는 ,,,를 수행합니다.
  3. if(조건) {...} else if(조건2) {...2} ... else {,,,} // 그리고, 조건n일때 n을 수행합니다.
switch(변수) { // break;가 있어야 멈춥니다.
  case 조건1: ...1; break; // 조건이 1일 때 ...1를 수행합니다.
  case 조건2: ...2; break; // 조건이 2일 때 ...2를 수행합니다.
  ...
  case 조건n: ...n; break; // 조건이 n일 때 ...n를 수행합니다.
  default: ...m; // 조건이 없을 때 ...m를 수행합니다.
}

반복문D

  1. while(조건){...} // 조건이 참이면 계속 ...수행합니다.
  2. do{...}while(조건); // 조건이 참이면 계속 ...수행합니다.(최소1회 보장)
  3. for(초기값;조건식;증감식) {...} // 조건이 참이면, ...을 수행한 뒤 증감하여 조건을 변경합니다.

강제이동E

  1. break; // 수행중인 ... 를 중단하고 {}를 나갑니다.
  2. countinue; // 수행중인 ...를 중단하고 {}의 최초로 돌아갑니다.
제어문 정리
제어문 반복문 강제이동
if(조건) {
  ...
}
while(조건) {
  ...
}
{
  break;
}
if(조건) {
  ...
}else{
  ...
}
do {
  ...
} while(조건);
{
  break;
}
if(조건1) {
  ...
}else if(조건2) {
  ...
}else if(조건3) {
  ...
}else if(조건4) {
  ...
}
switch(변수) {
  case 조건1:
    ...
    break;
  case 조건2:
    ...
    break;
  case 조건3:
    ...
    break;
  default:
}
for(초기값; 조건식; 증감식) {
  ...
}
int[] myArray = {1, 2, 3}
for(int 변수 : myArray) {
  ...
}

배열d_Array

열거체e_Enum

응용:
      
    

함수f_Method

함수를 java에서 method라고 부릅니다.


기본형A

다양한 선언과 호출B-D

local변수와 static변수E

오버로딩(overloading)F

 같은 함수명으로 여러개의 함수를 선언 하는 방법

재귀함수(recursive)G

 선언 내에서, 자기 자신을 호출하는 함수
int myFunc(int value){
  return myFunc(value);
}

mian함수(recursive)H

java.exe f_Method.H_Main 변수1 변수2 변수3
      
    

Main_EUCKR은 cmd에서 실행하기 위해 ANSI(euc-kr)로 저장하였습니다.

컴파일을 수행하면 Main_EUCKR.class가 생성됩니다. BasicCode\Syntax\f_Method폴더에서 수행되었습니다.

컴파일 명령
javac Main_EUCKR.java
실행 명령
java Main_EUCKR main argument test 123
실행 결과
1: main
2: argument
3: test
4: 123

예외처리g_Exception

예외처리A

예외처리는 에러로 인해서 시스템이 비정상적으로 종료 또는 오동작하는 것을 방지하기 위한 코드 입니다.

try { 
  ...  // 에러가 염려되는 코드
} catch(에러조건1) {
  ...  // 에러1이 발생했을 때, 대응코드
} catch(에러조건2) {
  ...  // 에러2이 발생했을 때, 대응코드
} catch(Exception e) {
  ...  // 해당사항이 없는 에가러 발생했을 때, 대응코드
}
자주사용되는 예외상황B
예외 명 내용
ArithmeticException 0으로 나누는 상황
ClassCastException 예상할 수 없는 타입변환
ArrayIndexOutOfBoundsException 접근할 수 없는 배열주소
NullPointerException 0주소 접근

다양한 예외처리

try {
  ...  // 에러가 염려되는 코드
  try {
    throw new Exception(); // 이벤트 강제 발생1
  } catch(Exception e) {
    ...  // 이벤트1
  }
  throw new Exception(); // 이벤트 강제 발생2
} catch(Exception e) {
  ...  // 이벤트2
}