계속해서 String 클래스를 이어나갔다.
String 클래스에는 여러가지 메서드들이 정의되어있는데 그중 equals는 오버라이딩을 통해 재정의 후 사용하는데에 그 목적이 있다.
equals뿐만 아니라 다양한 메서드들을 오버라이딩해서 프로그램에 알맞게 사용할 수가 있다.
앞서 String클래스는 변경이 불가능한 클래스라고 소개했는데 이 String클래스를 좀더 유연하게 사용하고자 하는 것들이 바로 StringBuffer와 StringBuilder클래스이다.
이들은 성능향상을 목적으로 임시 저장소를 둔다.
StringBuffer는 기존의 String클래스와 비슷하지만 메서드를 연결지어 사용할수 있는 등 여러가지 장점들이 있다.
꽤 많은 메서드들이 정의되어 있지만 대표적으로 많이 사용되는 append()만 기억해두어도 된다.
String의 경우 한번 저장된 문자열은 그 주소값이 바뀌지 않지만 StringBuffer의 경우는 그 값을 변경한다.
횟수에서 엄청난 차이가 있음에도 불구하고 그 속도가 StringBuffer가 압도적으로 빠른것을 확인할 수 있다.
String타입의 str은 매번 새로운 문자열을 생성해 저장하지만 StringBuffer의 경우는 처음 하나에서 계속 변경해나가는 것이기 때문에 이런 결과가 나오는 것이다.
StringBuilder가 StringBuffer보다 근소하게 빠른데 이는 멀티스레드가 unsafe라 그렇다.
버퍼는 멀티스레드도 신경쓰지만 빌더는 신경쓰지 않아도 된다는 뜻인데 이는 후에 스레드를 배워야 이해할 수 있다.
Math클래스
기본적인 수학 계산에 유용한 메서드로 구성되어 있으며 random()과 round()등이 속해있다.
Math클래스에는 인스턴스 멤버가 하나도 없어 생성자자체의 접근제어자가 private이다.
자연로그의 밑인 E와 원주율 PI값만 상수로 선언되어있다.
이 외에도 ceil() : 올림 메서드, floor() : 버림 메서드도 이에 속해있다.
위의 예제는 호도법을 이용해 특정 각도에 대한 삼각함수의 값을 구한 것이다.
래퍼(wrapper)클래스
자바에서는 8개의 기본형을 객체로 다루지 않는데 때로는 기본형 변수도 어쩔 수 없이 객체로 다뤄야 하는 경우가 있다.
예를들어 매개변수로 객체를 요구할 떄, 기본형값이 아닌 객체로 저장해야할 때, 객체간의 비교가 필요할 때 등등의 경우에는 기본형 값들을 객체로 변환하여 작업을 수행해야 한다.
각 기본형들의 맨 앞 철자를 대문자로 쓴 것이 보통 래퍼클래스의 이름이며 예외가 두가지 있는데 char타입과 int타입이다.
char타입의 래퍼클래스는 Character이고 int타입의 래퍼클래스는 Integer이다.
JDK1.5 이전에는 기본형과 참조형 간의 연산이 불가능했기 때문에 래커플래스로 기본형을 객체로 만들어서 연산해야 했다.
그러나 이제는 기본형과 참조형간의 덧셈이 가능해졌는데, 규칙이 바뀐 것은 아니고, 컴파일러가 자동으로 변환하는 코드를 넣어준다.
여기서 기본형값을 래퍼클래스의 객체로 자동변환해주는 것을 오토박싱, 반대로 변환하는 것을 언박싱이라 한다.
위의 예제에서 객체와 기본형의 차이를 확실히 이해하고 넘어가야 한다.
마지막으로 String클래스의 메서드를 이용해 어떤 URL을 분석해보고자 한다.
URL이란 Uniform Resource Locator의 약자이다.
아무 URL이나 가져와서 String 메서드를 이용해 구분하였다.
우선 ://를 기점으로 왼쪽을 Protocol이라 한다. 기점이 되는 문자열을 정확히 알기 때문에 이를 기준으로 substring하였다.
여기서 프로토콜이란 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계이다. 즉 통신 규약 및 약속을 의미한다.
우리가 잘 아는 domain은 이 Protocol뒤부터 다음 /가 나오는 시점까지이다.
그리고 원래 이 뒤에 포트라는 것이 있는데 http의 기본은 80, https의 기본은 443이며 :80, :443와 같이 표기한다.
이 포트 다음으로 나오는 것이 file의 경로(path)이다. 위의 예제에서는 따로 경로가 존재하지 않았어서 임의로 추가했다.
경로 다음이 file의 이름인데 이는 /로 시작해 ?로 끝난다.
그 다음이 바로 파라미터이다. 이는 웹 서버에 제공하는 것으로 키값과 밸류값으로 이루어진 짝 리스트이다.
오늘은 여기까지!
HTML
웹에서 사용 가능한 이미지 파일로는 jpg, gif, png, bmp가 있다.
bmp를 제외한 나머지의 공통점은 (손실)압축 이미지로, bmp에 비해 압도적으로 용량이 적다.
jpg는 bit수를 조정 가능하다. 24bit속성에 비트수준을 보면 알수 있다.
gif의 비트수준은 8인데 이는 표현가능 색의 가지수가 2의 8제곱, 즉 256개임을 의미한다.
gif도 2비트씩 쪼개서 투명도 처리가 가능하고 여러개의 프레임을 기록해 움짤을 만들수 있지만 그 퀄리티는 좋지 못하다.
png의 비트수준은 32이며 00000000~FFFFFFFF 사이를 두개씩 끊어서 R, G, B, 투명도로 사용한다.
앞서 배운 이미지 링크는 하나의 이미지에 하나의 링크를 걸었으나 여러개의 링크를 걸 수도 있다.
즉 한 이미지상에서 클릭 위치에 따라 서로 다른 링크가 열리는 것인데 이를 이미지 맵이라고 한다.
<map> 태그를 이용해 이미지 맵을 만들고 <img>태그에서 usemap속성으로 이미지 맵을 지정한다.
<area>태그를 이용해 영역을 표시한다.
'과정평가형 정보처리산업기사' 카테고리의 다른 글
DAY - 24 (0) | 2022.02.24 |
---|---|
DAY - 37 SQL의 데이터타입, 자바스크립트의 함수 (0) | 2022.02.24 |
DAY - 22 (0) | 2022.01.31 |
DAY - 21 (0) | 2022.01.31 |
DAY - 20 (0) | 2022.01.31 |