●Feature of Java
⃝단순함 :포인터X, 메모리관리가 용이
⃝객체지향 언어 : class와 객체를 중심으로 프로그래밍
⃝시스템에 독립적 : 여러 플랫폼에서 실행 가능
⃝컴파일 후 번역 : 소스→.class(ByteCode), ByteCode←Interpreter(통역기)
●Java/ByteCode
⃝확장자 = .java/.class
⃝ByteCode=이진파일, Interpreter에 의해 실행되는 File
●Develop Environment
⃝JRE : 자바실행 환경 (Java Runtime Environment)
⃝JDK : 자바 프로그래밍을 위한 최소한의 환경(Java Development Environment)
⃝IDE : 통합개발 환경(Intergrated Develop Enviroment)
●Java Grammer
⃝Block : 중괄호로 나타내며 여러문장의 집합/class의 정의에도 이용/임의로 구성
⃝주석 : 프로그램에 영향X, 프로그램에 대한 설명 기입
○블록주석 : /* 주석 내용 */
○라인주석 : //주석내용
○도큐먼트주석 : /** 주석내용 */
⃝키워드 : 프로그래밍 언어에서 미리 정의해 놓은 단어 (예약어 라고도 함)
⃝식별자 : 프로그래머가 정의하여 사용하는 단어, 주로 클래스, 변수 이름에 사용
주로 대소문자, 알파벳, 숫자, 밑줄, $(달러기호)로 구성
⃝식별자 규칙
1.키워드는 식별자로 이용X 3.식별자는 대소문자 구분
2.식별자의 첫 문자로 숫자X 4.식별자로 한글 사용 가능(Java만)
⃝클래스(class) : 객체를 만드는 설계도, 프로그램의 단위
○class CLASSNAME {} 로 구성
⃝메소드(Method) : Class = Field(변수)+Method(함수), 작업 수행 및 출력 모듈
○Method Definition
1.public : 클래스 외부에서 접근 가능 2.static : 정적 메소드
3.void : 반환값 X 4.main 메소드 이름 (식별자)
5.String args[] : 매개변수(메소드가 외부에서 제공받는 저장 변수)
●자료형 구분/크기
분류 | 키워드 | 크기 | 최소~최대 | 지수형태 범위 |
논리형 | boolen | 1Byte | False,True | |
문자형 | char | 2Byte | \u0000~\uffff,[0~65535] | 0~2^16-1 |
정수형 |
Byte | 1Byte | -128~127 | -2^7~2^16-1 |
short | 2Byte | -32768~32767 | -2^15~2^15-1 | |
int | 4Byte | -2147483648~2147483647 | -2^31~2^31-1 | |
long | 8Byte | -2^63~2^63-1 | -2^63~2^63-1 | |
실수형 | float | 4Byte | (+,-)1.4E-45~3.34028235E38 | |
double | 8Byte | (+,-)4.9E-324~1.797…E308 |
●변수 : 프로그램이 사용하는 데이터를 일시적으로 저장하는 메모리 공간
⃝소속변수(=Field) : 클래스 내부에 소속된 변수, method외부에 선언
⃝지역변수 : method내부에서 선언, 내부에서 일시적으로 사용
●상수 : 소스에 그대로 표현할 수 있는 다양한 자료값
⃝정수 상수 : 숫자 앞의 0은=진수, 0x,0X=16진수, 0b1010=2진수
●산술연산자
연산 | 연산자 | 수학 연산식 | 자바 연산식 |
덧셈 | + | x+y | x+y |
뺄셈 | - | x-y | x-y |
곱셈 | * | xy, x*y | x*y |
나눗셈 | / | x/y, x÷y | x/y |
나머지 | % | x%y |
●데이터 입력
⃝Java Class Library : Scanner
○선언 명령어 : import java.util.Scanner;
○객체 생성 : Scanner (scanner name) = new Scanner(System.in);
○입력 : x = (scanner name).nextInt();
●데이터 출력
⃝System.out.println() : 문자열 출력 후 줄 바꿈 method
⃝System.out.print() : 문자열 출력 후 줄 바꿈 X
●오류의 종류
⃝Compile Error : 컴파일 시 발견되는 오류
○syntax error : 구문 오류
○semantic error : 의미 오류
⃝Run-time Error(실행에러)
○exception(예외)를 사용하여 처리
⃝Logical Error
○Debugging : 논리 오류를 찾고 고치는 과정
●연산자 종류와 우선순위
우선순위 | 연산자 이름 | 연산자 | 연산방향 |
1 | 후위단항 | var++ , var-- | → |
2 | 전위단항 | ++var, --var, +expr, -expr, ~ , ! | |
3 | 곱셈부류 | *, /, % | |
4 | 덧셈부류 | +, - | |
5 | 비트이동 | <<, >>, >>> | |
6 | 관계 | <, >, <=, >=, instanceof | |
7 | 동등 | ==, != | |
8 | 비트AND | & | |
9 | 비트 배타적OR | ^ | |
10 | 비트 OR | | | |
11 | 논리 AND | && | |
12 | 논리 OR | || | |
13 | 조건 삼향 | expr ? x:y | |
14 | 대입 | =, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>= | ← |
●축약대입연산자
연산자 | 연산 예 | 연산자 의미 |
+= | x+=y | x=x+y |
-= | x-=y | x=x-y |
*= | x*=y | x=x*y |
/= | x/=y | x=x/y |
%= | X%=y | x=x%y |
●증감연산자
연산자 위치 | 연산자 | 연산결과값 | 연산 후 n의 값 |
전위 | ++n | n+1 | 1 증가 |
--n | n-1 | 1 감소 | |
후위 | n++ | n(그대로 이전 n값) | 1 증가 |
n-- | n(그대로 이전 n값) | 1감소 |
●조건연산자
x ? a : b ⇒ x가 True이면 a, False이면 b
Ex)String str = (point%2==0) ? “짝수” : “홀수”;
●비트논리 연산자
x(비트1) | y(비트2) | x&y | x|y | x^y | ~x |
0 | 0 | 0 | 0 | 0 | 1 |
0 | 1 | 0 | 1 | 1 | 1 |
1 | 0 | 0 | 1 | 1 | 0 |
1 | 1 | 1 | 1 | 0 | 0 |
●비트이동 연산자
연산자 | 이름 | 사용 | 연산방법 | 새로 채워지는 비트 |
>> | Signed left shift | op1>>op2 | Op1을 op2비트만큼 오른쪽으로 이동 | 가장 왼쪽 비트인 부호 비트는 원래의 비트로 |
<< | Signed right shift | op1<<op2 | Op1을 op2비트 만큼 왼쪽으로 이동 | 가장 오른쪽 비트를 모두 0으로 채움 |
>>> | Unsigend right shift | op1>>>op2 | Op1을 오른쪽으로 op2비트만큼 이동 | 가장 왼쪽 비트인 부호 비트는 모두 0으로 채워짐 |
●반복문의 종류
⃝for : 카운트 제어 반복문
⃝while, do while : 이벤트 제어 반복문
⃝for, while : 사전 검사 반복
⃝do while : 사후 검사 반복