요청
OPTIONS /list/item1 HTTP/1.1
Host: Example.com
응답
HTTP/1.1 200 OK
Allow: GET, HEAD, PUT, DELETE
PUT /tomato HTTP/1.1
Host: example.com
Content-Type: text/plain; charset=utf-8
+50
HTTP/1.1 200 OK
Content-Type: application/xml
<error>
<code>1001</code>
<message>file not found</message>
</error>
Content-Type
헤더에 들어갈 알맞은 값은 무엇인가? (200~201p)Content-Length: 10
Transfer-Encoding: chunked
Content-Type: Text/plain; charset=utf-8
10
The brow fox ju
WWW-Authenticate: Basic realm="Example.com
를 클라이언트 입장에서 해석하시오. (207~208p)Expires
와 Cache-Control
의 유효기간 표시법 차이는 무엇인가? (221p)If-Modified-Since
와 If-None-Match
은 어떻게 구분하여 사용하는가? (226p)밑의 코드는 오른쪽에 있는 값을 설정하며 이전 값을 교체한다.
x = expression;
연산자 뒤에 =를 붙인 복합 할당 연산자는 연산자의 왼쪽과 오른쪽을 결합한 후 결과를 왼쪽에 할당한다.
amount -=10;
amount = amount - 10;
덧셈 +, 뺄셈 -, 곱셈 *, 나눗셈 / 로 나타내며, 수학에서 나오는 우선순위를 따른다. 나눗셈을 할때 operand의 type이 서로 다르다면 더 높은 수의 체계를 사용하여 표현한다. 17.0 / 5 = 3.4 이지만, 17/5는 3이다. 피연산자 모두가 정수라면, 결과값도 정수로 표현하며 나머지는 버린다.
모든 정수를 0으로 나눌 경우 예외가 일어난다. 이 예외를 잡지 않으면 프로그램을 종료한다.
부동 소수점을 0으로 나누면 예외가 일어나지 않고, 결과로 무한대 값이 나온다.
% 연산자는 나머지를 반환한다.
증가 연산자와 감소연산자가 존재한다. ++의 위치에 따라 서로 다른 값이 된다. 뒤에 연산자가 위치하면 증가 이전의 값을 반환하며 앞에 위치하면 증가 이후의 값을 반환한다.
n++;
n--;
자바에는 숫자를 제곱수로 만드는 연산자가 없으므로 Math.pow를 사용한다. 밑의 표현은 x의 y제곱을 나타낸다.
Math.pow(x,y)
x의 제곱은 구하는 메서드 squareRoot라고 한다.
Math.sqrt(x);
위와 같은 메서드를 static 메서드라고 하며 메서드 아에 static이 붙으며 클래스로 동일하다. 위의 Math.pow나 Math.sqrt는 정적 메서드이기 때문에 인스턴스를 사용해서는 호출이 불가능하다. 사실 Math의 생성자는 private으로 설정되어져 있기 때문에 인스턴스를 생성할 수 없다.
Math 함수에는 삼각함수나, 로그함수도 존재하며, Math.Pi나 Math.E(자연로그의 밑 값 e를 나타내며 약 2.718)같은 상수도 존재한다.
계산이 오버플로되면 잘못된 값을 리턴하는데 Math함수를 이용하면 오버플로가 났을 경우 예외를 잡아내거나 프로그램을 종료할 수 있다. 3*10억은 의도하지 않은 값이 나오는데 Math.multiplyExact(10억 * 3)을 했을 경우 예외를 잡거나 프로그램을 종료. 이것 이외에도 subtractExact, incrementExact 등이 존재한다.
수학 메서드는 다른 몇가지 클래스에도 존재하며 예를들어 Integer와 Long클래스에는 부호 없는 값을 다루는 compareUnsigened, dividedUnsigned, remainderUnsigned메서드가 존재한다.
자바의 목표중 하나는 portability(이식성)이다. 어떤 가상 머신에서 실행하더라도 계산 결과가 같아야 한다. 많은 최신 프로세서는 64 비트보다 큰 부동소수점 레지스터를 사용해 계산 과정에서 발생할 수 있는 오버플로 위험을 줋이고 부동소수점의 정밀도를 높힌다. IEEE의 규정을 따르는 float과 double은 32(지수 8비트), 64(지수 11비트) 비트를 사용하지만, double, float-exponent value set을 지원하여 사용할 수 있는 비트수를 늘렸다. 하지만 플랫폼 어떤 플랫폼은 지원하지 않는 경우도 있기 때문에 서로 플랫폼마다 다른 결과값을 불러올 수 있다. 그를 방지하고자 strictfp 제어자를 추가하여, IEEE에서 제공하는 부동소수점 방식을 사용하도록 지정하여 해결할 수 있다.
예를들어 다른 플랫폼에서 Double.MAX_VALUE를 쳐보면, 서로 다른 MAX값을 얻는것을 볼 수 있다.
자바에서 제공하는 다양한 operator를 공부했다.