JAVA programming

김지원·2022년 5월 21일
0

Java

목록 보기
1/38

JAVA 프로그래밍

언어의 버전과 상관없이 자바를 이용해 컴퓨터 프로그램(절차)를 만드는 것.

  • 절차를 만들기 위한 자바 번역기 = 컴파일러

  • 구조적 -> 객제지향

  • 자바 코드 -> 바이트코드 -> 이셈블코드 -> 기계(이진)코드
    - JDK(Java Development Kit) - Complier, Debuger > JRE

    • JRE(Java Runtime Environment) : 실행 환경
      클래스가 보안에 문제 없는지 불필요한 메모리를 제거해주는 환경.

About 값

값의 종류와 표현방법

정수값 : 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)

정수 값의 크기와 범위

  • 1bit = 2(전구 켜짐, 꺼짐)
  • 8bit = 2^8 = 256
  • ...

8bit로 표현할수 있는 정수 범위
양수 : 0 ~ 255 /
음수 ~ 양수 : -128 ~ 12 (-2^7 ~ 2^7-1)

실수값의 크기와 범위.

변수 선언

선언 : 모든 키워드는 선언하고 사용해야함.
-> 변수 int kor;
-> 함수 void add(int x, int y);
-> 참조변수 animal 순심이;

변수 : 값을 담는 그릇.

  • 변수 앞에 타입명을 붙여주면 공간의 크기가 한정(한정사)이 된다.
  • 기본 값이 필요할 때만 값을 담으면 되는데, 값을 담으면서 변수를 선언하는 작업을 변수가 초기화된 값을 가지고 있다고 해서 "변수 초기화" 라고 함.

About 입력, 출력

입/출력 장치를 위한 인터페이스의 필요성
입/출력을 하기 위해서는 버퍼를 사용하는데
버퍼를 이용하는 함수틀을 API라고 함.

  • 출력을 위한 함수
System.out.write();
System.out.print();
System.out.println();
System.out.printf();
  • 입력을 위한 함수
System.in.read();
System.in.skip();
System.in.reset();
  • API함수가 함수형태로만 이루어져있는 것이 아니라
    Stream 객체(.out, .in)에 묶여있다.

출력 스트림(Output Stream)을 이용한 비동기 처리

  • 출력버퍼(OutputStream) -> stream(단방향) : 출력방향
    <-> 입력버퍼(InputStream) : 입력방향

  • 어플리케이션에 입,출력한 것들을 실행환경을 통해서
    동기화 되는 것을 막아주고 비동기 방식으로 할 수 있도록
    어플리케이션 -> 모니터에 직접 보내는 것이 아닌
    출력 버퍼(Stream)에 값을 담는다.

객체(Object) : 실존하는 것. = 실체
개채(Entity)
Object 가 있기 위해서 Entity라는 타입이 사용이 된다.

  • 객체는 이름을 가지어 식별을 할 수 있다.

  • Outputstream : 개체명

  • Outputstream을 생성한 객체명 : Out

  • Out이라는 객체로 출력을 하게 된다.

자바에서 어떠한 개체들을 객체화하기 위해 사용되는 연산자 : new
함수를 쓸때에는 객체를 통해서 쓴다.
ex) out.flush();

  • 사용자가 키를 누르면 그 해당 문자가 아닌
    KeyCode(키의 식별번호, ASCII 아스키코드)가 들어간다.
    그 코드에 해당하는 기호가 출력이 된다.

< 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
  • 문자열과 숫자를 함께 출력하려면...
    printf 포맷을 먼저 만들고 출력
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창에서 입력가능.

0개의 댓글

관련 채용 정보