자바

  • 컴파일러 + 인터프리터

모든장치에서 돌아가는 단일한 실행 환경을 위해 만들어짐

모든 플랫폼에서 실행할 수있도록 코드를 만들기 위함

WORA : Write Once Run Anywhere (한번작성하면 모든곳에서 실행)

 

  • 자바소스파일 (.java)     →      바이트코드 파일 (.class)    →    기계어 변환    →    실행

 

코드작성

점점 실행코드가 길어지고 복잡해짐 -> 함수+클래스

클래스명 : 대문자로 시작, 파일명과 동일

들여쓰기 : 가독성

블럭만들기

 

 

세미콜론 ; 의 역할 

식과 식을 구분

한문장의 끝을 ; 으로 끝내야함

 

 

변수선언

어떠한 용도로 쓸것인지 선언

컴파일러에게 키워드를 알려주는것

컴파일러가 정의해놓은 키워드 : if, switch, for, while, case, break, +, - ,* , ...

사용자가 사용할 키워드 : x, y, z, menu, .. ->선언

 

  • 값의 형식명칭

 

값의 형식명칭 / 데이터타입

 

  • 정수형식과 변환

26(10진수) = 0x1A (16진수)

byte  = 8 bit

short = 2 byte = 16 bit

int    = 4 byte = 32 bit

long = 8 byte = 64 bit 

 

long x = 30; 

30은 정수 int타입 4 byte이다. 이것을 long타입 8byte에 담을 수있다.

 

byte x = (byte)30;

30은 정수 int타입 4byte이다. 이것을 byte타입 1byte에 담을때는 '(바꾸려는형식)' 으로 형변환을 해줘야한다.

int형을 byte로 형식변환할때는 손실되는 부분이 있기 때문에 형변환해야한다.

 

 

 

  • 정수값의 크기와 범위

음수,양수부분 모두 0을 포함하므로 -1

 

 

 

  • 고정소수점

실수를 표현하는 소수부의 자릿수를 미리 정해놓고 고정된 자릿수로 소수를 표현하는것

고정소수점은 32비트 실수를 고정 소수점방식으로 표현

1비트 부호, 15비트 정수, 16비트 소수부 방식으로 표현

정수부표현에 한계가있다.

정수부가 15비트로 이므로 -2^15 ~ 2^15 -1 = 32767까지만 정수부 표현가능.

 

 

  • 부동소수점(Float Point) 표현방식의 4바이트 실수

부동소수점이란 하나의 실수를 가수부와 지수부로 나누어 표현

부동소수점 방식은 고정 소수점방식보다 훨씬 많은 범위까지 표현가능

 

12.125 → 1.2125e1 (e:지수 exponent)

부호비트가 1일경우 음수

 

 

 

절차를 자르는 도구로써의 함수

함수내용이 바뀌면 함수사용하는입장에서는 모른다.(코드의 변화를 알 수가 없다) ->코드변화를 차단할수있음

인터페이스 : 안쪽의 구현을 바꿔도 그 이름을 쓰는 입장에서는 문제가 없다.
함수 :인터페이스역할 , 또다른역할

 

 

 

출력 스트림을 이용한 비동기처리

출력함수는 System.out이라는 객체에 묶여있다.

입력함수는 System.in 이라는 객체에 묶여있다.

 

어플리케이션에서 모니터에 어떤것을 출력할때, 실제로 함수가 모니터에 값을 전달하지않는다.

여러개의 프로그램이 동시에 돌아가고있다. 명령을 분산하고 동시에 사용하기 위해 버퍼를 이용한다.

마치 회사에 서류결제할 사람들이 여러명일때 결제함을 만들어 결제서류를 두고오면 본인일을 할 수있다.

자바에서는 출력버퍼를 OutputStream이라고 부른다. (단방향버퍼)

출력버퍼는 어플리케이션들이 동기화 되는것을 막아주고 비동기형식으로 어플리케이션이 출력값을 출력버퍼에 담는다.

함수 : 반복되는것을 함수화, 밑단의 코드가 달라져도 영향x, 단일화된 기능부여,코드변화 차단,대리자역할

 

  • 인터페이스 장점 : 장치가 달라지면 프로그램을 다 고쳐야한다 -> 문제발생 -> 장치코드가 달라져도 프로그램은 달라지지않게 - > 함수만듦 -> 함수사용자는 변동이없다(이름변동x) -> 함수는 그대로니까 - > interface
  • 함수는 인터페이스다 ( X ) :인터페이스는 함수능력중 하나.
    인터페이스는 함수다 ( X ) :과거 : ok, 현재 : 인터페이스 기능이 늘어났음

 

 


자바 실습

메모장에 소스코드 입력 → Hello.java 로 저장 cmd창에 소스코드경로지정 → javac Hello.java + 엔터  에러출력

에러 출력 이유 : 변수타입을 지정안함

 

 

변수타입 지정 → int , double 입력 → 출력을위한 함수입력 'System.out.printf() cmd창에 javac Hello.java + 엔터 → 총점출력됨

 


메모리구조 찾아볼것

+ Recent posts