언어의 버전과 상관없이 자바를 이용해 컴퓨터 프로그램(절차)를 만드는 것.
절차를 만들기 위한 자바 번역기 = 컴파일러
구조적 -> 객제지향
자바 코드 -> 바이트코드 -> 이셈블코드 -> 기계(이진)코드
- JDK(Java Development Kit) - Complier, Debuger > JRE
값의 종류와 표현방법
정수값 : 32bit = 4byte
실수값 : float, double / 3.14
문자값 : char / 'A' => 2btye
진리값 : true, false => 1bit
값의 진법 변환
10진수
00000001 = 1
00000010 = 2
00000100 = 4
...
2진수로 표현
7 -> 00000111 : 1 + 2 + 4
22 -> 00010110 : 2 + 4 + 16
16진수
0123456789ABCDEF 이용해 표현
값의 형식명칭과 변환
byte
short (2byte)
int (=integer, 4byte)
long (8byte)
정수 값의 크기와 범위
8bit로 표현할수 있는 정수 범위
양수 : 0 ~ 255 /
음수 ~ 양수 : -128 ~ 12 (-2^7 ~ 2^7-1)
실수값의 크기와 범위.
선언 : 모든 키워드는 선언하고 사용해야함.
-> 변수 int kor;
-> 함수 void add(int x, int y);
-> 참조변수 animal 순심이;
입/출력 장치를 위한 인터페이스의 필요성
입/출력을 하기 위해서는 버퍼를 사용하는데
버퍼를 이용하는 함수틀을 API라고 함.
System.out.write();
System.out.print();
System.out.println();
System.out.printf();
System.in.read();
System.in.skip();
System.in.reset();
출력 스트림(Output Stream)을 이용한 비동기 처리
출력버퍼(OutputStream) -> stream(단방향) : 출력방향
<-> 입력버퍼(InputStream) : 입력방향
어플리케이션에 입,출력한 것들을 실행환경을 통해서
동기화 되는 것을 막아주고 비동기 방식으로 할 수 있도록
어플리케이션 -> 모니터에 직접 보내는 것이 아닌
출력 버퍼(Stream)에 값을 담는다.
객체(Object) : 실존하는 것. = 실체
개채(Entity)
Object 가 있기 위해서 Entity라는 타입이 사용이 된다.
객체는 이름을 가지어 식별을 할 수 있다.
Outputstream : 개체명
Outputstream을 생성한 객체명 : Out
Out이라는 객체로 출력을 하게 된다.
자바에서 어떠한 개체들을 객체화하기 위해 사용되는 연산자 : new
함수를 쓸때에는 객체를 통해서 쓴다.
ex) out.flush();
< example >
System.out.write(3);
System.out.flush(); // 3 -> x
System.out.write(51);
System.out.flush(); // 3
3 != ('3'= 51) (홑따옴표를 이용)
write() + flush()
-> print(), println(), printf()
Escape 문자 : 문자열 사이에 꽂아 넣을 수 있는 명령어
\n : 새 행(new line) 삽입
\" : 이중 따옴표 삽입 (' 홑따옴표도 가능)
\ : 역슬래쉬 삽입
\b : 백스페이스 (backspace) - 마지막 한글자 지워짐
\t : 수평 탭 (horizontal tab) 삽입
\f : 폼피트 (form feed) 다음페이지로
\r : 캐리지리턴(carrage return) 제일 왼쪽 위치로
개행문자가 포함된 문자열 출력 -> System.out.println
숫자출력
System.out.print("국어 점수 : ");
System.out.print(50); // 국어 점수 : 50
System.out.printf("%d-%d-%d", 2022,05,20); // 2022-05-20
포맷 문자열과 형식 지정자
d : 정수(10진수)
x : 정수(16진수)
o : 정수(8진수)
f : 실수 (Float)
e : 지수형 실수
c : 문자 (Character)
s : 문자열 (String)
ex) printf("%s %d %f %c", "hello", 3, 2.3, 'A');
고정길이 출력하기
System.out.printf("%5.2f",87.98953231);
// 87.98 5:차지하는 공간이 5이다. 2: 소수점 2째자리까지 차리
< example >
int total;
float avg;
total = 190;
avg = total / 3;
정수 / 정수 = 무조건 정수가 나와야 하는데 avg의 타입은 float이다.
3을 double타입(3.0) 으로 바꿔주게 되더라도 연산값의 타입은
double이기 때문에 Error가 발생한다.
이런 경우에 avg = (float)(total / 3.0); float ( ->명시적 형변환 )
명시적으로 써서 형변환을 해주는 방법이 있다.
(소수점이 짤려도 괜찮으니 실행해줘)
avg = total / 3.0f; 으로도 작성 가능.
Console 입력
InputStream 과 객체 생성
read() + skip()
nextLine() 한번에 문자열 형태를 읽을 수 있는 함수.
next() 단어 단위로 끊어서 하나하나씩 읽어올 수 있음.
nextInt()
nextFloat()
nextDouble()
=> new Scanner( System.in );
system.in이라는 객체의 입력 stream을 이용하는 응용객체
이 객체를 생성해 원하는 이름을 참조해서 사용 가능
Scanner scan = new Scanner( System.in );
System.out.println("국어 점수는?");
kor1 = scan.nextInt();
console창에서 입력가능.